|
@@ -1,20 +1,11 @@
|
|
|
import 'package:fis_i18n/i18n.dart';
|
|
|
-import 'package:fis_jsonrpc/rpc.dart';
|
|
|
-import 'package:fis_measure/interfaces/process/items/item_metas.dart';
|
|
|
-import 'package:fis_measure/interfaces/process/player/play_controller.dart';
|
|
|
-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_data_controller.dart';
|
|
|
import 'package:fis_measure/process/workspace/measure_handler.dart';
|
|
|
import 'package:fis_measure/view/measure/measure_config/measure_configuation_page.dart';
|
|
|
import 'package:fis_measure/view/measure/measure_config/widgets/measure_configuration_style.dart';
|
|
|
-import 'package:fis_measure/view/player/controller.dart';
|
|
|
import 'package:fis_theme/theme.dart';
|
|
|
import 'package:fis_ui/index.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
-import 'package:vid/us/vid_us_mode.dart';
|
|
|
-import 'package:vid/us/vid_us_unit.dart';
|
|
|
|
|
|
|
|
|
class MeasureSelectModel {
|
|
@@ -59,7 +50,7 @@ class LeftSiderHold extends StatelessWidget implements FWidget {
|
|
|
],
|
|
|
),
|
|
|
_LeftSiderTabBar(),
|
|
|
- const _LeftMeasureTools(),
|
|
|
+
|
|
|
|
|
|
|
|
|
],
|
|
@@ -156,227 +147,6 @@ class _LeftSiderTabBarState extends State<_LeftSiderTabBar> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-class _LeftMeasureTools extends StatefulWidget implements FWidget {
|
|
|
- const _LeftMeasureTools();
|
|
|
-
|
|
|
- @override
|
|
|
- State<_LeftMeasureTools> createState() => _LeftMeasureToolsState();
|
|
|
-}
|
|
|
-
|
|
|
-class _LeftMeasureToolsState extends State<_LeftMeasureTools> {
|
|
|
- late final application = Get.find<IApplication>();
|
|
|
- late final measureHandler = Get.find<MeasureHandler>();
|
|
|
- final playerController = Get.find<IPlayerController>() as VidPlayerController;
|
|
|
-
|
|
|
-
|
|
|
- late final measureData = Get.find<MeasureDataController>();
|
|
|
-
|
|
|
- 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) {
|
|
|
- setAvailableModes(e.mode.modeType.toString().split('.')[1]);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- void comboList() {
|
|
|
- List<ItemMeta> itemMetaList = [];
|
|
|
-
|
|
|
- for (var element in measureData.itemMetaList) {
|
|
|
- if (measureData.getMeasureApplicationList.contains(element.name)) {
|
|
|
- List<ItemOutputMeta> itemOutputMeta = [];
|
|
|
- String? multiMethod;
|
|
|
- List<OutputItemMetaDTO> availableOutputs =
|
|
|
- element.calculator?.availableOutputs ?? [];
|
|
|
- for (var element in availableOutputs) {
|
|
|
- itemOutputMeta.add(
|
|
|
- ItemOutputMeta(
|
|
|
- element.name ?? '',
|
|
|
- element.description ?? '',
|
|
|
- VidUsUnitMap.getUnit(element.unit),
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
- List<ItemMeta> childItemMetas = [];
|
|
|
-
|
|
|
- if (element.multiMethodItems?.isNotEmpty ?? false) {
|
|
|
- ChildItemMetaDTO? itemMeta = element.multiMethodItems!
|
|
|
- .firstWhereOrNull((element) => element.isWorking == true);
|
|
|
- multiMethod = itemMeta?.name ?? '';
|
|
|
- List<ChildItemMetaDTO> childItems = itemMeta?.childItems ?? [];
|
|
|
-
|
|
|
-
|
|
|
- for (var element in childItems) {
|
|
|
- childItemMetas.add(
|
|
|
- ItemMeta(
|
|
|
- element.name ?? '',
|
|
|
- description: element.description ?? '',
|
|
|
- outputs: itemOutputMeta,
|
|
|
- childItems: childItemMetas,
|
|
|
- multiMethod: multiMethod,
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- itemMetaList.add(
|
|
|
- ItemMeta(
|
|
|
- element.name ?? '',
|
|
|
- description: element.description ?? '',
|
|
|
- outputs: itemOutputMeta,
|
|
|
- childItems: childItemMetas,
|
|
|
- multiMethod: multiMethod,
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- measureData.getItemMetaList = itemMetaList;
|
|
|
- }
|
|
|
-
|
|
|
- void setAvailableModes(String name) {
|
|
|
- var models = measureData.availableModes;
|
|
|
- measureData.currentMode = name;
|
|
|
- if (models.isNotEmpty) {
|
|
|
-
|
|
|
- var groups = models
|
|
|
- .firstWhereOrNull(
|
|
|
- (element) => element.modeName == measureData.currentMode)
|
|
|
- ?.availableGroups;
|
|
|
-
|
|
|
- if (groups != null && groups.isNotEmpty) {
|
|
|
-
|
|
|
- var folders = groups[0].availableFolders;
|
|
|
- if (folders != null && folders.isNotEmpty) {
|
|
|
- measureData.getMeasureApplicationList =
|
|
|
- folders[0].workingItemNames ?? [];
|
|
|
- if (folders[0].availableItems != null) {
|
|
|
- measureData.itemMetaList = folders[0].availableItems!.toList();
|
|
|
- comboList();
|
|
|
- }
|
|
|
- if (measureData.getMeasureApplicationList.isNotEmpty) {
|
|
|
- changeItem(measureData.getItemMetaList[0]);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- setState(() {});
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- void initState() {
|
|
|
- super.initState();
|
|
|
- measureData.applicationModesChanged.addListener(applicationModesChanged);
|
|
|
- application.visualAreaChanged.addListener(visualAreaChanged);
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- void dispose() {
|
|
|
- super.dispose();
|
|
|
- measureData.applicationModesChanged.removeListener(applicationModesChanged);
|
|
|
- application.visualAreaChanged.removeListener(visualAreaChanged);
|
|
|
- }
|
|
|
-
|
|
|
- @override
|
|
|
- FWidget build(BuildContext context) {
|
|
|
- return FContainer(
|
|
|
- width: 300,
|
|
|
- height: 50,
|
|
|
- alignment: Alignment.topCenter,
|
|
|
- padding: const EdgeInsets.symmetric(vertical: 8),
|
|
|
- child: FGridView.count(
|
|
|
- shrinkWrap: true,
|
|
|
- crossAxisCount: 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: () {
|
|
|
- setAvailableModes(e.value.type.name);
|
|
|
- setState(() {});
|
|
|
- },
|
|
|
- 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(),
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-class _LeftSelectInput extends StatelessWidget implements FWidget {
|
|
|
- @override
|
|
|
- FWidget build(BuildContext context) {
|
|
|
- return FContainer(
|
|
|
- child: FRow(
|
|
|
- children: [
|
|
|
- FExpanded(
|
|
|
- child: FContainer(
|
|
|
- child: FRow(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
- children: [
|
|
|
- FBorderInput(
|
|
|
- hintSize: 16,
|
|
|
- contentSize: 16,
|
|
|
- maxLength: 20,
|
|
|
- borderColor: const Color.fromARGB(255, 187, 180, 180),
|
|
|
- suffixIcon: FMaterial(
|
|
|
- color: Colors.transparent,
|
|
|
- child: FIconButton(
|
|
|
- onPressed: () {},
|
|
|
- icon: const FIcon(
|
|
|
- Icons.search,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- hintText: i18nBook.common.search.t,
|
|
|
- onChanged: (value) {},
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- );
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
class _LeftPulldown extends StatelessWidget implements FWidget {
|
|
|
@override
|
|
|
FWidget build(BuildContext context) {
|