123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import 'package:fis_measure/interfaces/process/visuals/visual_area.dart';
- import 'package:fis_measure/interfaces/process/workspace/application.dart';
- 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/view/measure/measure_view_controller.dart';
- import 'package:fis_ui/index.dart';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:fis_theme/theme.dart';
- import 'package:vid/us/vid_us_mode.dart';
- /// 测量方法
- class LeftMeasureTools extends StatefulWidget implements FWidget {
- const LeftMeasureTools();
- @override
- State<LeftMeasureTools> createState() => _LeftMeasureToolsState();
- }
- class _LeftMeasureToolsState extends State<LeftMeasureTools> {
- late IApplication application = Get.find<IApplication>();
- late final measureHandler = Get.find<MeasureHandler>();
- /// 数据
- late final measureData = Get.find<MeasureDataController>();
- late final measureController = Get.find<MeasureController>();
- /// 测量项控制器
- final measureMetaController = Get.find<MeasureMetaController>();
- // void changeItem(ItemMeta itemMeta) {
- // application.switchItem(itemMeta);
- // if (mounted) {
- // setState(() {});
- // }
- // }
- void applicationModesChanged(sender, List<VidUsMode> e) {
- if (mounted) {
- setState(() {});
- }
- }
- void visualAreaChanged(sender, IVisualArea e) {
- if (mounted) {
- setState(() {});
- }
- measureMetaController
- .setAvailableModes(e.mode.modeType.toString().split('.')[1]);
- }
- @override
- void initState() {
- super.initState();
- measureData.applicationModesChanged.addListener(applicationModesChanged);
- application.visualAreaChanged.addListener(visualAreaChanged);
- measureController.imageLoaded.addListener((sender, e) {
- application.visualAreaChanged.removeListener(visualAreaChanged);
- application = Get.find<IApplication>();
- application.visualAreaChanged.addListener(visualAreaChanged);
- });
- }
- @override
- void dispose() {
- super.dispose();
- measureData.applicationModesChanged.removeListener(applicationModesChanged);
- application.visualAreaChanged.removeListener(visualAreaChanged);
- }
- @override
- FWidget build(BuildContext context) {
- final mediaQuery = MediaQuery.of(context);
- //屏幕缩放比例
- final devicePixelRatio = mediaQuery.devicePixelRatio;
- return FContainer(
- width: 300 / devicePixelRatio,
- height: 50,
- alignment: Alignment.topCenter,
- padding: const EdgeInsets.symmetric(horizontal: 15),
- child: FGridView.count(
- shrinkWrap: true,
- crossAxisCount: devicePixelRatio > 1.25
- ? 2
- : devicePixelRatio > 1
- ? 3
- : 4,
- crossAxisSpacing: 10,
- mainAxisSpacing: 10,
- childAspectRatio: 1 / 0.5,
- children: measureData.applicationModes.asMap().entries.map(
- (e) {
- final bool isACtiveModes =
- measureData.currentMode == e.value.type.name;
- return FInkWell(
- onTap: () {
- measureMetaController.setAvailableModes(e.value.type.name);
- setState(() {});
- application.switchMode(e.value.displayName);
- // application.switchItem(measureData.getItemMetaList[0]);
- },
- child: FContainer(
- alignment: Alignment.center,
- decoration: BoxDecoration(
- border: isACtiveModes
- ? Border.all(
- color: FTheme.ins.colorScheme.primary,
- )
- : Border.all(
- color: Colors.grey,
- ),
- borderRadius: BorderRadius.circular(4),
- color: isACtiveModes
- ? FTheme.ins.colorScheme.primary
- : Colors.grey,
- ),
- child: FText(
- e.value.displayName,
- style: const TextStyle(
- color: Colors.white,
- ),
- ),
- ),
- );
- },
- ).toList(),
- ),
- );
- }
- }
|