123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- 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/interfaces/enums/operate.dart';
- /// 当前选中的图像
- class CurrImageInfo {
- /// 图片地址
- final String? imageUrl;
- /// 图像编码
- final String? remedicalCode;
- CurrImageInfo(
- 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<CurrImageInfo> onImageChanged;
- /// 测量方式选择
- late FEventHandler<MeasureModeSelection> onMeasureModeSelectionChanged;
- /// 测量方式提交
- late FEventHandler<MeasureModeSubmit> onMeasureModeSubmitChanged;
- /// 测量还是注释tab
- late FEventHandler<MeasureOperateType> onOperateTypeChanged;
- /// 注释箭头还是标签
- late FEventHandler<AnnotationType> onChangedAnnotationType;
- /// 拖拽状态发生改变
- late FEventHandler<bool> onDragStateChanged;
- /// 鼠标右键取消测量
- late FEventHandler<bool> onRightClickFinishMeasure;
- /// 图片加载loadding
- late FEventHandler<bool> onNewImageLoadStatueChanged;
- /// 通过 remedicalCode 切换图片
- late FEventHandler<String> changeImageByRemedicalCode;
- /// 更新图片列表
- late FEventHandler<List<RemedicalInfoDTO>> changeImageList;
- // late FEventHandler<RemedicalInfoDTO> onChangeImageByIndex =
- // FEventHandler<RemedicalInfoDTO>();
- late FEventHandler<bool> onChangeFullScreenState;
- late FEventHandler<bool> onToolPanelStateChanged;
- late FEventHandler<void> annotationsLoaded;
- late final FEventHandler<bool> canMeasureDrawingChanged;
- /// 切换图像传递数据
- CurrImageInfo get currSelectedImage;
- set currSelectedImage(CurrImageInfo value);
- /// 切换图像测量方式变更数据
- MeasureModeSelection get measureModeChanged;
- set measureModeChanged(MeasureModeSelection value);
- /// 测量方式变更提交
- MeasureModeSubmit get measureModeSubmitChanged;
- set measureModeSubmitChanged(MeasureModeSubmit value);
- /// 切换Tab
- MeasureOperateType get currOperateType;
- set currOperateType(MeasureOperateType value);
- /// 切换注释
- AnnotationType get changedAnnotationType;
- set changedAnnotationType(AnnotationType value);
- /// 切换图片
- bool get newImageLoading;
- set newImageLoading(bool value);
- /// 全屏状态
- bool get fullScreenState;
- set fullScreenState(bool value);
- /// 工具面板状态
- bool get toolPanelState;
- set toolPanelState(bool value);
- /// 测量是否可绘制
- bool get canMeasureDrawing;
- set canMeasureDrawing(bool value);
- }
- class MeasureHandler implements IMeasureHandler {
- CurrImageInfo _currSelectedImage = CurrImageInfo(null, null);
- MeasureModeSelection _measureModeChanged =
- MeasureModeSelection(null, null, null);
- MeasureModeSubmit _measureModeSubmitChanged =
- MeasureModeSubmit(null, null, null, null);
- MeasureOperateType _currOperateType = MeasureOperateType.measure;
- bool _newImageLoading = true;
- bool _fullScreenState = false;
- bool _toolPanelState = true;
- bool _canMeasureDrawing = true;
- AnnotationType _changedAnnotationType = AnnotationType.label;
- @override
- var onImageChanged = FEventHandler<CurrImageInfo>();
- @override
- var onMeasureModeSelectionChanged = FEventHandler<MeasureModeSelection>();
- @override
- var onMeasureModeSubmitChanged = FEventHandler<MeasureModeSubmit>();
- @override
- var onOperateTypeChanged = FEventHandler<MeasureOperateType>();
- @override
- var onChangedAnnotationType = FEventHandler<AnnotationType>();
- @override
- var onDragStateChanged = FEventHandler<bool>();
- @override
- var onRightClickFinishMeasure = FEventHandler<bool>();
- @override
- FEventHandler<bool> onNewImageLoadStatueChanged = FEventHandler<bool>();
- @override
- FEventHandler<String> changeImageByRemedicalCode = FEventHandler<String>();
- // @override
- // FEventHandler<RemedicalInfoDTO> onChangeImageByIndex =
- // FEventHandler<RemedicalInfoDTO>();
- @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
- FEventHandler<bool> canMeasureDrawingChanged = FEventHandler<bool>();
- @override
- CurrImageInfo get currSelectedImage => _currSelectedImage;
- @override
- MeasureModeSelection get measureModeChanged => _measureModeChanged;
- @override
- MeasureModeSubmit get measureModeSubmitChanged => _measureModeSubmitChanged;
- @override
- MeasureOperateType get currOperateType => _currOperateType;
- @override
- AnnotationType get changedAnnotationType => _changedAnnotationType;
- @override
- bool get newImageLoading => _newImageLoading;
- @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
- bool get canMeasureDrawing => _canMeasureDrawing;
- @override
- set canMeasureDrawing(bool value) {
- if (value != _canMeasureDrawing) {
- _canMeasureDrawing = value;
- canMeasureDrawingChanged.emit(this, _canMeasureDrawing);
- }
- }
- @override
- set newImageLoading(bool value) {
- if (value != _newImageLoading) {
- _newImageLoading = value;
- _onNewImageLoadStatueChanged();
- }
- }
- @override
- set currOperateType(MeasureOperateType value) {
- if (value != _currOperateType) {
- _currOperateType = value;
- _onOperateTypeChanged();
- }
- }
- @override
- set changedAnnotationType(AnnotationType value) {
- if (value != _changedAnnotationType) {
- _changedAnnotationType = value;
- _onChangedAnnotation();
- }
- }
- @override
- set currSelectedImage(CurrImageInfo value) {
- if (value != _currSelectedImage) {
- _currSelectedImage = 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, currSelectedImage);
- }
- void _onMeasureModeSelectionChanged() {
- onMeasureModeSelectionChanged.emit(this, measureModeChanged);
- }
- void _onMeasureModeSubmitChanged() {
- onMeasureModeSubmitChanged.emit(this, measureModeSubmitChanged);
- }
- void _onOperateTypeChanged() {
- onOperateTypeChanged.emit(this, currOperateType);
- }
- void _onNewImageLoadStatueChanged() {
- onNewImageLoadStatueChanged.emit(this, newImageLoading);
- }
- void _onChangeFullScreenState() {
- onChangeFullScreenState.emit(this, fullScreenState);
- }
- void _onToolPanelStateChanged() {
- onToolPanelStateChanged.emit(this, toolPanelState);
- }
- void _onChangedAnnotation() {
- onChangedAnnotationType.emit(this, changedAnnotationType);
- }
- void onAnnotationsLoaded() {
- annotationsLoaded.emit(this, null);
- }
- }
|