123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 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/operate_type_change_button.dart';
- import 'package:fis_measure/view/measure/measure_panel_head.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 _onOperateTypeChanged(
- Object sender,
- MeasureOperateType? e,
- ) {
- setState(() {});
- }
- @override
- void initState() {
- measureHandler.onChangedAnnotationType
- .addListener(_onChangedAnnotationType);
- measureHandler.onOperateTypeChanged.addListener(_onOperateTypeChanged);
- super.initState();
- }
- @override
- void dispose() {
- measureHandler.onChangedAnnotationType
- .removeListener(_onChangedAnnotationType);
- measureHandler.onOperateTypeChanged.removeListener(_onOperateTypeChanged);
- 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,
- ),
- ),
- ],
- ),
- ),
- );
- }
- }
|