1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import 'package:fis_measure/interfaces/process/workspace/measure_3d_view_controller.dart';
- import 'package:fis_measure/process/workspace/measure_3d_view_controller.dart';
- import 'package:fis_measure/process/workspace/measure_data_controller.dart';
- import 'package:fis_measure/view/3d_view/measure_3d_view.dart';
- import 'package:fis_measure/view/measure/measure_main_view.dart';
- import 'package:fis_ui/index.dart';
- import 'package:fis_ui/widgets/layout/offstage.dart';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- class MeasureRightBoard extends StatefulWidget implements FWidget {
- const MeasureRightBoard({Key? key}) : super(key: key);
- @override
- State<StatefulWidget> createState() => _MeasureRightBoardState();
- }
- class _MeasureRightBoardState extends State<MeasureRightBoard> {
- /// 数据
- final measureData = Get.find<MeasureDataController>();
- final measure3DViewController = Get.find<Measure3DViewController>();
- bool get isShell => measure3DViewController.isShell;
- bool get ifExist3DData => measure3DViewController.exist3DData;
- ///是否开启3D窗口
- bool enableMeasure3DView = false;
- @override
- void initState() {
- super.initState();
- measure3DViewController.updatePlayerMode.addListener(_onModeChanged);
- enableMeasure3DView =
- measure3DViewController.curMeasureMode == MeasureMode.carotid3DMode;
- }
- /// 模式改变触发更新
- void _onModeChanged(Object s, MeasureMode mode) {
- switch (mode) {
- case MeasureMode.vidMode:
- setState(() {
- enableMeasure3DView = false;
- });
- break;
- case MeasureMode.carotid2DMode:
- setState(() {
- enableMeasure3DView = false;
- });
- break;
- case MeasureMode.carotid3DMode:
- setState(() {
- enableMeasure3DView = true;
- });
- break;
- }
- }
- @override
- FWidget build(BuildContext context) {
- return FContainer(
- padding: const EdgeInsets.all(8).copyWith(left: 0),
- child: buildView(),
- );
- }
- FWidget buildView() {
- return FStack(
- children: [
- if (isShell) ...[
- FOffstage(
- offstage: !enableMeasure3DView,
- child: ifExist3DData
- ? Measure3DView(
- key: ValueKey(measureData.itemCurrentImage),
- )
- : FContainer(),
- ),
- FOffstage(
- offstage: enableMeasure3DView,
- child: MeasureMainView(
- key: ValueKey(measureData.itemCurrentImage),
- )),
- ] else ...[
- MeasureMainView(
- key: ValueKey(measureData.itemCurrentImage),
- )
- ]
- ],
- );
- }
- @override
- void dispose() {
- super.dispose();
- measure3DViewController.updatePlayerMode.removeListener(_onModeChanged);
- }
- }
|