Răsfoiți Sursa

修正组合测量项子项切换异常

gavin.chen 9 luni în urmă
părinte
comite
a320ed1488

+ 2 - 0
lib/process/items/item.dart

@@ -193,7 +193,9 @@ abstract class MeasureItem<T extends MeasureItemFeature> extends IMeasureItem {
       calculator?.finishOnce();
     }
     feature = null;
+    print("当前 MeasureItem ${this.hashCode} 状态为 ${state}  状态设置为 finished");
     state = ItemStates.finished;
+    print("当前 MeasureItem ${this.hashCode} 状态为 ${state}");
   }
 
   @protected

+ 1 - 0
lib/process/primitives/urm_location.dart

@@ -43,6 +43,7 @@ class URMLoaction extends Location {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_measure/urm_curvature_trace_measure.dart

@@ -67,6 +67,7 @@ class URMCurvatureTraceMeasure extends Trace {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_measure/urm_curve_curvature_line_measure.dart

@@ -53,6 +53,7 @@ class URMCurveCurvatureLineMeasure extends Trace {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_measure/urm_ellipse_measure.dart

@@ -156,6 +156,7 @@ class URMEllipseMeasure extends Ellipse {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
     doFeatureFinish();

+ 1 - 0
lib/process/primitives/urm_measure/urm_location_vel.dart

@@ -59,6 +59,7 @@ class URMLocationVelMeasure extends Location {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 6 - 1
lib/process/primitives/urm_measure/urm_rect_measure.dart

@@ -90,7 +90,11 @@ class URMRectMeasure extends MeasureItem<URMRectFeature> {
 
   @override
   bool onExecuteMouse(PointInfo args) {
+    print("当前 MeasureItem ${this.hashCode} 状态为 ${state}");
     if (waitingResult) return false;
+    if (state == ItemStates.running && feature == null) {
+      state = ItemStates.waiting;
+    }
     if (state == ItemStates.finished) {
       if (args.pointType == PointInfoType.mouseDown) {
         state = ItemStates.waiting;
@@ -123,11 +127,13 @@ class URMRectMeasure extends MeasureItem<URMRectFeature> {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }
 
   void _recordSharp() {
+    if (feature == null) return;
     UrmSharpCopyBoard.recordSharp(
       UrmSharpCopyDataType.rect,
       [feature!.startPoint, feature!.endPoint],
@@ -155,7 +161,6 @@ class URMRectMeasure extends MeasureItem<URMRectFeature> {
         feature!.hostVisualArea = args.hostVisualArea;
       }
     }
-
     state = ItemStates.running;
   }
 }

+ 1 - 0
lib/process/primitives/urm_measure/urm_shell_measure.dart

@@ -139,6 +139,7 @@ class URMShellMeasure extends Trace {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_measure/urm_straight_curvature_line_measure.dart

@@ -71,6 +71,7 @@ class URMStraightCurvatureLineMeasure extends StraightLine {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_measure/urm_trace_measure.dart

@@ -137,6 +137,7 @@ class URMTraceMeasure extends Trace {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_measure/urm_vessel_measure.dart

@@ -67,6 +67,7 @@ class URMVesselMeasure extends StraightLine {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }

+ 1 - 0
lib/process/primitives/urm_trace.dart

@@ -48,6 +48,7 @@ class URMTrace extends Trace {
     waitingResult = true;
     await doCalculateAsync();
     doFeatureFinish();
+    doFeatureUpdate(); // 若不执行,子测量将无法自动切换
     PromptBox.dismiss();
     waitingResult = false;
   }