Style Dashboard by rules

This commit is contained in:
mr
2024-11-22 09:39:04 +01:00
parent 7fea931b63
commit e73ca6b532
4 changed files with 56 additions and 15 deletions

View File

@@ -87,15 +87,15 @@ final WorflowService _service = WorflowService();
if (objAbs.topic == "compute" ) {
var compute = objAbs as ComputeItem;
if (compute.technology == 0) {
return Icon(FontAwesomeIcons.docker, size: 18);
return Icon(FontAwesomeIcons.docker, size: 16);
} else if (compute.technology == 1) {
return Icon(FontAwesomeIcons.lifeRing, size: 18);
return Icon(FontAwesomeIcons.lifeRing, size: 16);
} else if (compute.technology == 2) {
return Icon(FontAwesomeIcons.cubes, size: 18);
return Icon(FontAwesomeIcons.cubes, size: 16);
} else if (compute.technology == 3) {
return Icon(FontAwesomeIcons.hardDrive, size: 18);
return Icon(FontAwesomeIcons.hardDrive, size: 16);
} else if (compute.technology == 4) {
return Icon(FontAwesomeIcons.v, size: 18);
return Icon(FontAwesomeIcons.v, size: 16);
}
}
return null;
@@ -105,15 +105,15 @@ final WorflowService _service = WorflowService();
var objAbs = obj as AbstractItem?;
if (objAbs == null) { return null; }
if (objAbs.topic == "processing" ) {
return Icon(FontAwesomeIcons.gear) ;
return Icon(FontAwesomeIcons.gear, size: 16);
} else if (objAbs.topic == "data" ) {
return Icon(FontAwesomeIcons.file);
return Icon(FontAwesomeIcons.file, size: 16);
} else if (objAbs.topic == "storage" ) {
return Icon(FontAwesomeIcons.database);
return Icon(FontAwesomeIcons.database, size: 16);
} else if (objAbs.topic == "compute" ) {
return Icon(FontAwesomeIcons.microchip);
return Icon(FontAwesomeIcons.microchip, size: 16);
} else if (objAbs.topic == "workflows" ) {
return Icon(FontAwesomeIcons.diagramProject);
return Icon(FontAwesomeIcons.diagramProject, size: 16);
}
return null;
}
@@ -290,6 +290,32 @@ final WorflowService _service = WorflowService();
dash.infoItemWidget = getForms;
dash.infoWidget = getDashInfoForms;
dash.widthOffset = 50;
dash.arrowStyleRules = [
(dash) {
for (var arrow in dash.arrows) {
var from = dash.elements.firstWhere((element) => arrow.fromID.contains(element.id)).element;
var to = dash.elements.firstWhere((element) => arrow.toID.contains(element.id)).element;
if ((from is ProcessingItem && to is ComputeItem) || (to is ProcessingItem && from is ComputeItem)) {
arrow.params.color = Colors.orange;
arrow.params.dashSpace = 2;
arrow.params.dashWidth = 2;
} else if ((from is ProcessingItem && to is StorageItem) || (to is ProcessingItem && from is StorageItem)) {
arrow.params.color = redColor;
arrow.params.dashSpace = 2;
arrow.params.dashWidth = 2;
} else if ((from is ProcessingItem && to is DataItem) || (to is ProcessingItem && from is DataItem)) {
arrow.params.color = Colors.blue;
arrow.params.dashSpace = 2;
arrow.params.dashWidth = 2;
} else {
arrow.params.color = Colors.black;
arrow.params.dashSpace = 0;
arrow.params.dashWidth = 0;
}
}
return dash.arrows;
}
];
dash.saveRules = [
(dash) {
dash.error = null;

View File

@@ -115,10 +115,10 @@ class SchedulerFormsWidgetState extends State<SchedulerFormsWidget> {
if (end.isBefore(DateTime.now())) {
// get difference between now and start
delayed = end.difference(DateTime.now());
Future.delayed(delayed, () {
WorkflowFactory.key.currentState?.setState(() { });
});
}
Future.delayed(delayed, () {
WorkflowFactory.key.currentState?.setState(() { });
});
}
List<GlobalKey<FormFieldState>> formKeys = [GlobalKey<FormFieldState>(), GlobalKey<FormFieldState>(), GlobalKey<FormFieldState>(), GlobalKey<FormFieldState>()];
var shallow = ShallowTextInputWidget(