123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- import 'dart:core';
- import 'package:fis_common/event/event_type.dart';
- import 'package:fis_jsonrpc/rpc.dart';
- import 'package:fis_measure/interfaces/enums/annotation.dart';
- import 'package:fis_measure/view/measure/tool_chest_title.dart';
- class ChangeImageInfo {
- /// 图片地址
- final String? imageUrl;
- /// 图像编码
- final String? remedicalCode;
- ChangeImageInfo(
- this.imageUrl,
- this.remedicalCode,
- );
- }
- class MeasureModeSelection {
- /// 应用名称:读取Vid获取应用
- final String? applicationName;
- /// 分类名称:读取Vid获取应用分类名称
- final String? categoryName;
- /// 测量模式集合:读取Vid获取应用的模式集合,返回对应测量数据
- final List<String>? measureModes;
- MeasureModeSelection(
- this.applicationName,
- this.categoryName,
- this.measureModes,
- );
- }
- class MeasureModeSubmit {
- /// 版本号
- final String? version;
- /// 应用名称,读取Vid获取应用
- final String? applicationName;
- /// 分类名称:读取Vid获取应用分类名称
- final String? categoryName;
- /// 测量模式
- final UserDefinedMeasureModeDTO? workingMode;
- MeasureModeSubmit(
- this.version,
- this.applicationName,
- this.categoryName,
- this.workingMode,
- );
- }
- abstract class IMeasureHandler {
- /// 测量切换图片事件
- late FEventHandler<ChangeImageInfo> onImageChanged;
- /// 测量方式选择
- late FEventHandler<MeasureModeSelection> onMeasureModeSelectionChanged;
- /// 测量方式提交
- late FEventHandler<MeasureModeSubmit> onMeasureModeSubmitChanged;
- /// 测量还是注释tab
- late FEventHandler<TabEnum> onChangedTab;
- /// 注释箭头还是标签
- late FEventHandler<AnnotationType> onChangedAnnotationType;
- /// 拖拽状态发生改变
- late FEventHandler<bool> onDragStateChanged;
- /// 鼠标右键取消测量
- late FEventHandler<bool> onRightClickFinishMeasure;
- /// 图片加载loadding
- late FEventHandler<bool> onChangeImageLoaded;
- /// 通过 remedicalCode 切换图片
- late FEventHandler<String> changeImageByRemedicalCode;
- /// 更新图片列表
- late FEventHandler<List<RemedicalInfoDTO>> changeImageList;
- late FEventHandler<bool> onChangeFullScreenState;
- late FEventHandler<bool> onToolPanelStateChanged;
- late FEventHandler<void> annotationsLoaded;
- /// 切换图像传递数据
- ChangeImageInfo get imageChanged;
- set imageChanged(ChangeImageInfo value);
- /// 切换图像测量方式变更数据
- MeasureModeSelection get measureModeChanged;
- set measureModeChanged(MeasureModeSelection value);
- /// 测量方式变更提交
- MeasureModeSubmit get measureModeSubmitChanged;
- set measureModeSubmitChanged(MeasureModeSubmit value);
- /// 切换Tab
- TabEnum get changedTab;
- set changedTab(TabEnum value);
- /// 切换注释
- AnnotationType get changedAnnotationType;
- set changedAnnotationType(AnnotationType value);
- /// 切换图片
- bool get changeImageLoaded;
- set changeImageLoaded(bool value);
- /// 全屏状态
- bool get fullScreenState;
- set fullScreenState(bool value);
- /// 工具面板状态
- bool get toolPanelState;
- set toolPanelState(bool value);
- }
- class MeasureHandler implements IMeasureHandler {
- ChangeImageInfo _imageChanged = ChangeImageInfo(null, null);
- MeasureModeSelection _measureModeChanged =
- MeasureModeSelection(null, null, null);
- MeasureModeSubmit _measureModeSubmitChanged =
- MeasureModeSubmit(null, null, null, null);
- TabEnum _changedTab = TabEnum.tabMeasureTool;
- bool _changeImageLoaded = true;
- bool _fullScreenState = false;
- bool _toolPanelState = true;
- AnnotationType _changedAnnotationType = AnnotationType.label;
- @override
- var onImageChanged = FEventHandler<ChangeImageInfo>();
- @override
- var onMeasureModeSelectionChanged = FEventHandler<MeasureModeSelection>();
- @override
- var onMeasureModeSubmitChanged = FEventHandler<MeasureModeSubmit>();
- @override
- var onChangedTab = FEventHandler<TabEnum>();
- @override
- var onChangedAnnotationType = FEventHandler<AnnotationType>();
- @override
- var onDragStateChanged = FEventHandler<bool>();
- @override
- var onRightClickFinishMeasure = FEventHandler<bool>();
- @override
- FEventHandler<bool> onChangeImageLoaded = FEventHandler<bool>();
- @override
- FEventHandler<String> changeImageByRemedicalCode = FEventHandler<String>();
- @override
- FEventHandler<List<RemedicalInfoDTO>> changeImageList =
- FEventHandler<List<RemedicalInfoDTO>>();
- @override
- FEventHandler<bool> onChangeFullScreenState = FEventHandler<bool>();
- @override
- FEventHandler<bool> onToolPanelStateChanged = FEventHandler<bool>();
- @override
- var annotationsLoaded = FEventHandler<void>();
- @override
- ChangeImageInfo get imageChanged => _imageChanged;
- @override
- MeasureModeSelection get measureModeChanged => _measureModeChanged;
- @override
- MeasureModeSubmit get measureModeSubmitChanged => _measureModeSubmitChanged;
- @override
- TabEnum get changedTab => _changedTab;
- @override
- AnnotationType get changedAnnotationType => _changedAnnotationType;
- @override
- bool get changeImageLoaded => _changeImageLoaded;
- @override
- bool get fullScreenState => _fullScreenState;
- @override
- set fullScreenState(bool value) {
- if (value != _fullScreenState) {
- _fullScreenState = value;
- _onChangeFullScreenState();
- }
- }
- @override
- bool get toolPanelState => _toolPanelState;
- @override
- set toolPanelState(bool value) {
- if (value != _toolPanelState) {
- _toolPanelState = value;
- _onToolPanelStateChanged();
- }
- }
- @override
- set changeImageLoaded(bool value) {
- if (value != _changeImageLoaded) {
- _changeImageLoaded = value;
- _onChangeImageLoaded();
- }
- }
- @override
- set changedTab(TabEnum value) {
- if (value != _changedTab) {
- _changedTab = value;
- _onChangedTab();
- }
- }
- @override
- set changedAnnotationType(AnnotationType value) {
- if (value != _changedAnnotationType) {
- _changedAnnotationType = value;
- _onChangedAnnotation();
- }
- }
- @override
- set imageChanged(ChangeImageInfo value) {
- if (value != _imageChanged) {
- _imageChanged = value;
- _onImageChanged();
- }
- }
- @override
- set measureModeChanged(MeasureModeSelection value) {
- if (value != _measureModeChanged) {
- _measureModeChanged = value;
- _onMeasureModeSelectionChanged();
- }
- }
- @override
- set measureModeSubmitChanged(MeasureModeSubmit value) {
- if (value != _measureModeSubmitChanged) {
- _measureModeSubmitChanged = value;
- _onMeasureModeSubmitChanged();
- }
- }
- void _onImageChanged() {
- onImageChanged.emit(this, imageChanged);
- }
- void _onMeasureModeSelectionChanged() {
- onMeasureModeSelectionChanged.emit(this, measureModeChanged);
- }
- void _onMeasureModeSubmitChanged() {
- onMeasureModeSubmitChanged.emit(this, measureModeSubmitChanged);
- }
- void _onChangedTab() {
- onChangedTab.emit(this, changedTab);
- }
- void _onChangeImageLoaded() {
- onChangeImageLoaded.emit(this, changeImageLoaded);
- }
- void _onChangeFullScreenState() {
- onChangeFullScreenState.emit(this, fullScreenState);
- }
- void _onToolPanelStateChanged() {
- onToolPanelStateChanged.emit(this, toolPanelState);
- }
- void _onChangedAnnotation() {
- onChangedAnnotationType.emit(this, changedAnnotationType);
- }
- void onAnnotationsLoaded() {
- annotationsLoaded.emit(this, null);
- }
- }
|