Parcourir la source

update(measure): 拆分箭头注释按钮 Review by baka

gavin.chen il y a 2 ans
Parent
commit
faba1d670a
2 fichiers modifiés avec 103 ajouts et 93 suppressions
  1. 101 0
      lib/view/measure/arrow_annotation_button.dart
  2. 2 93
      lib/view/measure/measure_view.dart

+ 101 - 0
lib/view/measure/arrow_annotation_button.dart

@@ -0,0 +1,101 @@
+import 'package:fis_i18n/i18n.dart';
+import 'package:fis_measure/interfaces/enums/annotation.dart';
+import 'package:fis_measure/interfaces/enums/operate.dart';
+import 'package:fis_measure/interfaces/process/workspace/application.dart';
+import 'package:fis_measure/process/workspace/measure_handler.dart';
+import 'package:fis_measure/view/measure/tool_chest_title.dart';
+import 'package:fis_ui/index.dart';
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+
+/// 箭头注释按钮
+class ArrowAnnotationButton extends FStatefulWidget {
+  const ArrowAnnotationButton({
+    Key? key,
+  }) : super(key: key);
+  @override
+  FState<ArrowAnnotationButton> createState() => ArrowAnnotationButtonState();
+}
+
+class ArrowAnnotationButtonState extends FState<ArrowAnnotationButton> {
+  final measureHandler = Get.find<MeasureHandler>();
+
+  bool get isArrowMeasureAnnotationType =>
+      measureHandler.changedAnnotationType == AnnotationType.arrow &&
+      isAnnotationMode;
+
+  bool get isAnnotationMode =>
+      Get.find<IApplication>().currentOperateType ==
+      MeasureOperateType.annotation;
+  void _onChangedAnnotationType(
+    Object sender,
+    AnnotationType? e,
+  ) {
+    setState(() {});
+  }
+
+  void _onChangedTab(
+    Object sender,
+    TabEnum? e,
+  ) {
+    setState(() {});
+  }
+
+  @override
+  void initState() {
+    measureHandler.onChangedAnnotationType
+        .addListener(_onChangedAnnotationType);
+    measureHandler.onChangedTab.addListener(_onChangedTab);
+    super.initState();
+  }
+
+  @override
+  void dispose() {
+    measureHandler.onChangedAnnotationType
+        .removeListener(_onChangedAnnotationType);
+    measureHandler.onChangedTab.removeListener(_onChangedTab);
+    super.dispose();
+  }
+
+  @override
+  FWidget build(BuildContext context) {
+    return FContainer(
+      height: 60,
+      width: 300,
+      child: FCenter(
+        child: FColumn(
+          children: [
+            FInk(
+              child: FInkWell(
+                onTap: () {
+                  measureHandler.changedAnnotationType = AnnotationType.arrow;
+                  final application = Get.find<IApplication>();
+                  application.switchAnnotation(AnnotationType.arrow);
+                  setState(() {});
+                },
+                child: FIcon(
+                  Icons.call_made_rounded,
+                  color:
+                      isArrowMeasureAnnotationType ? Colors.blue : Colors.white,
+                  size: 30,
+                ),
+              ),
+            ),
+            FText(
+              i18nBook.measure.arrow.t,
+              style: isArrowMeasureAnnotationType
+                  ? const TextStyle(
+                      color: Colors.blue,
+                      fontSize: 14,
+                    )
+                  : const TextStyle(
+                      color: Colors.white,
+                      fontSize: 14,
+                    ),
+            ),
+          ],
+        ),
+      ),
+    );
+  }
+}

+ 2 - 93
lib/view/measure/measure_view.dart

@@ -1,7 +1,6 @@
 import 'package:fis_i18n/i18n.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/enums/annotation.dart';
-import 'package:fis_measure/interfaces/enums/operate.dart';
 import 'package:fis_measure/interfaces/process/player/play_controller.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
 import 'package:fis_measure/interfaces/process/workspace/exam_info.dart';
@@ -12,8 +11,8 @@ import 'package:fis_measure/process/workspace/measure_controller.dart';
 import 'package:fis_measure/process/workspace/measure_data_controller.dart';
 import 'package:fis_measure/process/workspace/measure_handler.dart';
 import 'package:fis_measure/process/workspace/measure_3d_view_controller.dart';
-import 'package:fis_measure/utils/prompt_box.dart';
 import 'package:fis_measure/view/gesture/positioned_cursor.dart';
+import 'package:fis_measure/view/measure/arrow_annotation_button.dart';
 import 'package:fis_measure/view/measure/drag_delete_area.dart';
 import 'package:fis_measure/view/measure/measure_config/widgets/measure_configuration_style.dart';
 import 'package:fis_measure/view/measure/measure_images_bar.dart';
@@ -26,7 +25,6 @@ import 'package:fis_measure/view/measure/measure_tools_title.dart';
 import 'package:fis_measure/view/measure/measure_view_controller.dart';
 import 'package:fis_measure/view/measure/tool_chest_title.dart';
 import 'package:fis_measure/view/player/control_board/operate_bar.dart';
-import 'package:fis_ui/base_define/page.dart';
 import 'package:fis_ui/index.dart';
 import 'package:fis_ui/interface/interactive_container.dart';
 import 'package:fis_ui/widgets/layout/offstage.dart';
@@ -570,7 +568,7 @@ class _MeasureLeftBoardState extends State<_MeasureLeftBoard> {
         ),
         FOffstage(
             offstage: hideMeasureItems || hideCommentTab || isDragging,
-            child: _MeasureArrow()),
+            child: const ArrowAnnotationButton()),
         FOffstage(
           offstage: !hideMeasureItems,
           child: FContainer(
@@ -611,92 +609,3 @@ class _MeasureLeftBoardState extends State<_MeasureLeftBoard> {
     );
   }
 }
-
-/// 箭头注释按钮
-class _MeasureArrow extends FStatefulWidget {
-  @override
-  FState<_MeasureArrow> createState() => _MeasureArrowState();
-}
-
-class _MeasureArrowState extends FState<_MeasureArrow> {
-  final measureHandler = Get.find<MeasureHandler>();
-
-  bool get isArrowMeasureAnnotationType =>
-      measureHandler.changedAnnotationType == AnnotationType.arrow &&
-      isAnnotationMode;
-
-  bool get isAnnotationMode =>
-      Get.find<IApplication>().currentOperateType ==
-      MeasureOperateType.annotation;
-  void _onChangedAnnotationType(
-    Object sender,
-    AnnotationType? e,
-  ) {
-    setState(() {});
-  }
-
-  void _onChangedTab(
-    Object sender,
-    TabEnum? e,
-  ) {
-    setState(() {});
-  }
-
-  @override
-  void initState() {
-    measureHandler.onChangedAnnotationType
-        .addListener(_onChangedAnnotationType);
-    measureHandler.onChangedTab.addListener(_onChangedTab);
-    super.initState();
-  }
-
-  @override
-  void dispose() {
-    measureHandler.onChangedAnnotationType
-        .removeListener(_onChangedAnnotationType);
-    measureHandler.onChangedTab.removeListener(_onChangedTab);
-    super.dispose();
-  }
-
-  @override
-  FWidget build(BuildContext context) {
-    return FContainer(
-      height: 60,
-      width: 300,
-      child: FCenter(
-        child: FColumn(
-          children: [
-            FInk(
-              child: FInkWell(
-                onTap: () {
-                  measureHandler.changedAnnotationType = AnnotationType.arrow;
-                  final application = Get.find<IApplication>();
-                  application.switchAnnotation(AnnotationType.arrow);
-                  setState(() {});
-                },
-                child: FIcon(
-                  Icons.call_made_rounded,
-                  color:
-                      isArrowMeasureAnnotationType ? Colors.blue : Colors.white,
-                  size: 30,
-                ),
-              ),
-            ),
-            FText(
-              i18nBook.measure.arrow.t,
-              style: isArrowMeasureAnnotationType
-                  ? const TextStyle(
-                      color: Colors.blue,
-                      fontSize: 14,
-                    )
-                  : const TextStyle(
-                      color: Colors.white,
-                      fontSize: 14,
-                    ),
-            ),
-          ],
-        ),
-      ),
-    );
-  }
-}