X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fvisualisations%2FDynamicVisualisationsUI.java;h=bb608eaad11b3bc5ce9cd07cd14eef0b46cb7b46;hb=63bc9deadd3754affc9543a465eb8d05300f008d;hp=38b57a93f616ed0fac8bfdea659280e9594fd6b3;hpb=69e98093792a681afeb31589ee162b6b36d59471;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/visualisations/DynamicVisualisationsUI.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/visualisations/DynamicVisualisationsUI.java index 38b57a93..bb608eaa 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/visualisations/DynamicVisualisationsUI.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/visualisations/DynamicVisualisationsUI.java @@ -98,6 +98,9 @@ public class DynamicVisualisationsUI { private Composite parent; private Button disableUpdatesButton; + private Button resetVisualisationButton; + private Button hoveringVertexEnabledButton; + private Button hoveringEdgesEnabledButton; private List>> edgeArrowSuppliers; @@ -119,6 +122,8 @@ public class DynamicVisualisationsUI { private Button dynamicSymbolsValvesButton; private Button dynamicSymbolsPumpingStationsButton; + private Text intervalText; + public DynamicVisualisationsUI(Composite parent) { this.parent = parent; ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL); @@ -171,6 +176,11 @@ public class DynamicVisualisationsUI { } }); + Composite intervalElementsComposite = new Composite(parent, SWT.NONE); + GridDataFactory.fillDefaults().grab(true, false).applyTo(intervalElementsComposite); + GridLayoutFactory.fillDefaults().numColumns(1).applyTo(intervalElementsComposite); + initializeIntervalElements(intervalElementsComposite); + Composite hideElementsComposite = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, false).applyTo(hideElementsComposite); GridLayoutFactory.fillDefaults().numColumns(1).applyTo(hideElementsComposite); @@ -235,16 +245,39 @@ public class DynamicVisualisationsUI { removeVisualisationTemplate(visualisation.getName(), Optional.of(visualisation.getVisualisationResource())); } }); + } + + private void initializeIntervalElements(Composite parent) { + Group group = new Group(parent, SWT.NONE); + group.setText("Interval"); + GridDataFactory.fillDefaults().grab(true, false).applyTo(group); + GridLayoutFactory.fillDefaults().numColumns(6).margins(5, 5).applyTo(group); - disableUpdatesButton = new Button(buttonBarsComposite, SWT.CHECK); + createIntervalElements(group); + } + + private void createIntervalElements(Composite parent) { + + Label label = new Label(parent, SWT.NONE); + label.setText("Generic"); + intervalText = new Text(parent, SWT.BORDER); + addSelectionListener(intervalText); + + disableUpdatesButton = new Button(parent, SWT.CHECK); disableUpdatesButton.setText("Disable updates"); - disableUpdatesButton.addSelectionListener(new SelectionAdapter() { - - @Override - public void widgetSelected(SelectionEvent e) { - disableUpdates(); - } - }); + addSelectionListener(disableUpdatesButton); + + resetVisualisationButton = new Button(parent, SWT.CHECK); + resetVisualisationButton.setText("Reset Visualisation"); + addSelectionListener(resetVisualisationButton); + + hoveringVertexEnabledButton = new Button(parent, SWT.CHECK); + hoveringVertexEnabledButton.setText("Vertex Key Variables on Hover"); + addSelectionListener(hoveringVertexEnabledButton); + + hoveringEdgesEnabledButton = new Button(parent, SWT.CHECK); + hoveringEdgesEnabledButton.setText("Edge Key Variables on Hover"); + addSelectionListener(hoveringEdgesEnabledButton); } private void initializeHideElements(Composite parent) { @@ -498,10 +531,6 @@ public class DynamicVisualisationsUI { }; } - protected void disableUpdates() { - - } - protected void removeVisualisationTemplate(String name, Optional of) { if (of.isPresent()) { Resource visualisation = of.get(); @@ -595,6 +624,20 @@ public class DynamicVisualisationsUI { boolean dynamicSymbolsValves = dynamicSymbolsValvesButton.getSelection(); boolean dynamicSymbolsPumpingStations = dynamicSymbolsPumpingStationsButton.getSelection(); + boolean disabled = disableUpdatesButton.getSelection(); + boolean resetVisualisation = resetVisualisationButton.getSelection(); + Long interval; + try { + interval = Long.parseLong(intervalText.getText()); + } catch (NumberFormatException e) { + // ignore + interval = 2000L; + } + final long finalInterval = interval; + + boolean hoverVertex = hoveringVertexEnabledButton.getSelection(); + boolean hoverEdges = hoveringEdgesEnabledButton.getSelection(); + Simantics.getSession().asyncRequest(new WriteRequest() { @Override @@ -605,6 +648,7 @@ public class DynamicVisualisationsUI { } else { exist = DynamicVisualisations.createVisualisation(graph, parentResource, templateName); } + DynamicVisualisations.setIntervalAndDisabled(graph, exist, finalInterval, disabled, resetVisualisation); DynamicVisualisations.setColorContributions(graph, exist, colorCollect); DynamicVisualisations.setColorBarOptions(graph, exist, colorBarOptions); DynamicVisualisations.setSizeContributions(graph, exist, sizeCollect); @@ -631,6 +675,7 @@ public class DynamicVisualisationsUI { dynamicSymbolsValves, dynamicSymbolsPumpingStations ); + DynamicVisualisations.setKeyVariablesHover(graph, exist, hoverVertex, hoverEdges); } }); } @@ -1397,6 +1442,12 @@ public class DynamicVisualisationsUI { } } + intervalText.setText(Long.toString(visualisation.getInterval())); + disableUpdatesButton.setSelection(visualisation.disabledUpdates()); + + hoveringVertexEnabledButton.setSelection(visualisation.isKeyVariablesVertexHover()); + hoveringEdgesEnabledButton.setSelection(visualisation.isKeyVariablesEdgesHover()); + Map colorContributions = visualisation.getColorContributions(); for (Entry entry : colorContributions.entrySet()) {