|
@@ -10,6 +10,7 @@ import 'package:flutter/foundation.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
|
|
|
import 'item_feature.dart';
|
|
|
+import 'top_item.dart';
|
|
|
|
|
|
abstract class MeasureItem<T extends MeasureItemFeature> extends IMeasureItem {
|
|
|
late final ItemMeta _meta;
|
|
@@ -118,7 +119,23 @@ abstract class MeasureItem<T extends MeasureItemFeature> extends IMeasureItem {
|
|
|
}
|
|
|
|
|
|
@override
|
|
|
- void cancelOnce() {}
|
|
|
+ void cancelOnce() {
|
|
|
+ if (this is TopMeasureItem) {
|
|
|
+ final that = this as TopMeasureItem;
|
|
|
+ for (var item in that.childItems) {
|
|
|
+ item.cancelOnce();
|
|
|
+ item.measuredFeatures.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ feature = null;
|
|
|
+ state = ItemStates.waiting;
|
|
|
+ onCancelingOnce();
|
|
|
+ doFeatureUpdate();
|
|
|
+ }
|
|
|
+
|
|
|
+ @protected
|
|
|
+ void onCancelingOnce() {}
|
|
|
|
|
|
@protected
|
|
|
void doFeatureUpdate() {
|
|
@@ -131,7 +148,6 @@ abstract class MeasureItem<T extends MeasureItemFeature> extends IMeasureItem {
|
|
|
feature!.isActive = false;
|
|
|
measuredFeatures.add(feature!);
|
|
|
calculator?.finishOnce();
|
|
|
- _recordHistory();
|
|
|
}
|
|
|
feature = null;
|
|
|
state = ItemStates.finished;
|
|
@@ -154,9 +170,4 @@ abstract class MeasureItem<T extends MeasureItemFeature> extends IMeasureItem {
|
|
|
int assignId() {
|
|
|
return application.recorder.newRecordId();
|
|
|
}
|
|
|
-
|
|
|
- void _recordHistory() {
|
|
|
- final recorder = application.recorder;
|
|
|
- recorder.recordMeasureItem(meta.name);
|
|
|
- }
|
|
|
}
|