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=c8d34072bfca8c5f01edccd937b57f255417a797;hb=refs%2Fchanges%2F81%2F3881%2F2;hp=38b57a93f616ed0fac8bfdea659280e9594fd6b3;hpb=62a5efb315bb09b3493c41763187e687e5253006;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..c8d34072 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,12 @@ public class DynamicVisualisationsUI { private Composite parent; private Button disableUpdatesButton; + private Button resetVisualisationButton; + private Button hoveringVertexEnabledButton; + private Button hoveringEdgesEnabledButton; + private Button elevationServerEnabledButton; + private Button notInSimulationButton; + private Button showConnectedComponentsButton; private List>> edgeArrowSuppliers; @@ -119,6 +125,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); @@ -157,20 +165,33 @@ public class DynamicVisualisationsUI { String item = templateSelectionCombo.getItem(templateSelectionCombo.getSelectionIndex()); for (NamedResource template : visualisations) { if (item.equals(template.getName())) { - Simantics.getSession().asyncRequest(new WriteRequest() { - - @Override - public void perform(WriteGraph graph) throws DatabaseException { - Resource vf = DynamicVisualisations.getVisualisationFolder(graph, parentResource); - DynamicVisualisations.setActiveVisualisation(graph, vf, template.getResource()); - } - }); - break; + if (parentResource != null) { + Resource res = parentResource; + Simantics.getSession().asyncRequest(new WriteRequest() { + + @Override + public void perform(WriteGraph graph) throws DatabaseException { + Resource vf = DynamicVisualisations.getVisualisationFolder(graph, res); + DynamicVisualisations.setActiveVisualisation(graph, vf, template.getResource()); + } + }); + break; + } } } } }); + Composite intervalElementsComposite = new Composite(parent, SWT.NONE); + GridDataFactory.fillDefaults().grab(true, false).applyTo(intervalElementsComposite); + GridLayoutFactory.fillDefaults().numColumns(1).applyTo(intervalElementsComposite); + initializeIntervalElements(intervalElementsComposite); + + Composite hoverElementsComposite = new Composite(parent, SWT.NONE); + GridDataFactory.fillDefaults().grab(true, false).applyTo(hoverElementsComposite); + GridLayoutFactory.fillDefaults().numColumns(1).applyTo(hoverElementsComposite); + initializeHoverElements(hoverElementsComposite); + Composite hideElementsComposite = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, false).applyTo(hideElementsComposite); GridLayoutFactory.fillDefaults().numColumns(1).applyTo(hideElementsComposite); @@ -235,16 +256,63 @@ public class DynamicVisualisationsUI { removeVisualisationTemplate(visualisation.getName(), Optional.of(visualisation.getVisualisationResource())); } }); + } + + private void initializeIntervalElements(Composite parent) { + Group group = new Group(parent, SWT.NONE); + group.setText("Generic"); + GridDataFactory.fillDefaults().grab(true, false).applyTo(group); + GridLayoutFactory.fillDefaults().numColumns(2).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("Interval (seconds)"); + intervalText = new Text(parent, SWT.BORDER); + GridDataFactory.fillDefaults().grab(true, false).applyTo(intervalText); + 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); + + notInSimulationButton = new Button(parent, SWT.CHECK); + notInSimulationButton.setText("Not in Simulation"); + addSelectionListener(notInSimulationButton); + + elevationServerEnabledButton = new Button(parent, SWT.CHECK); + elevationServerEnabledButton.setText("Elevation Server Bounding Box"); + addSelectionListener(elevationServerEnabledButton); + + showConnectedComponentsButton = new Button(parent, SWT.CHECK); + showConnectedComponentsButton.setText("Show Connected Components"); + addSelectionListener(showConnectedComponentsButton); + } + + private void initializeHoverElements(Composite parent) { + Group group = new Group(parent, SWT.NONE); + group.setText("Hover"); + GridDataFactory.fillDefaults().grab(true, false).applyTo(group); + GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).applyTo(group); + + createHoverElements(group); + } + + private void createHoverElements(Composite parent) { + 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) { @@ -410,15 +478,14 @@ public class DynamicVisualisationsUI { Combo variableCombo = new Combo(parent, SWT.READ_ONLY); variableCombo.setItems(arrowContributions.keySet().toArray(new String[arrowContributions.size()])); - - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(variableCombo); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(variableCombo); Text gainText = new Text(parent, SWT.BORDER); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(gainText); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(gainText); addSelectionListener(gainText); Text biasText = new Text(parent, SWT.BORDER); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(biasText); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(biasText); addSelectionListener(biasText); Button defaultButton = new Button(parent, SWT.CHECK); @@ -498,10 +565,6 @@ public class DynamicVisualisationsUI { }; } - protected void disableUpdates() { - - } - protected void removeVisualisationTemplate(String name, Optional of) { if (of.isPresent()) { Resource visualisation = of.get(); @@ -595,6 +658,26 @@ public class DynamicVisualisationsUI { boolean dynamicSymbolsValves = dynamicSymbolsValvesButton.getSelection(); boolean dynamicSymbolsPumpingStations = dynamicSymbolsPumpingStationsButton.getSelection(); + boolean disabled = disableUpdatesButton.getSelection(); + boolean resetVisualisation = resetVisualisationButton.getSelection(); + Long interval; + try { + // inteval is in milliseconds but shown as seconds + + interval = (long)(Double.parseDouble(intervalText.getText()) * 1000); + } catch (NumberFormatException e) { + // ignore + interval = 2000L; + } + final long finalInterval = interval; + + boolean hoverVertex = hoveringVertexEnabledButton.getSelection(); + boolean hoverEdges = hoveringEdgesEnabledButton.getSelection(); + + boolean elevationServerBoundingBox = elevationServerEnabledButton.getSelection(); + boolean notInSimulation = notInSimulationButton.getSelection(); + boolean showConnectedComponents = showConnectedComponentsButton.getSelection(); + Simantics.getSession().asyncRequest(new WriteRequest() { @Override @@ -605,6 +688,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 +715,11 @@ public class DynamicVisualisationsUI { dynamicSymbolsValves, dynamicSymbolsPumpingStations ); + DynamicVisualisations.setKeyVariablesHover(graph, exist, hoverVertex, hoverEdges); + + DynamicVisualisations.setElevationServerBoundingBox(graph, exist, elevationServerBoundingBox); + DynamicVisualisations.setNotInSimulation(graph, exist, notInSimulation); + DynamicVisualisations.setShowConnectedComponents(graph, exist, showConnectedComponents); } }); } @@ -867,21 +956,21 @@ public class DynamicVisualisationsUI { Combo variableCombo = new Combo(parent, SWT.READ_ONLY); variableCombo.setItems(colorContributions.keySet().toArray(new String[colorContributions.size()])); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(variableCombo); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(variableCombo); Text minText = new Text(parent, SWT.BORDER); - GridDataFactory.fillDefaults().grab(true, false).hint(150, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(minText); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(minText); addSelectionListener(minText); Text maxText = new Text(parent, SWT.BORDER); - GridDataFactory.fillDefaults().grab(true, false).hint(150, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(maxText); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(maxText); addSelectionListener(maxText); Text unit = new Text(parent, SWT.READ_ONLY); - GridDataFactory.fillDefaults().grab(true, false).align(SWT.CENTER, SWT.CENTER).applyTo(unit); + GridDataFactory.fillDefaults().grab(true, false).hint(30, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(unit); Combo colorMapCombo = new Combo(parent, SWT.READ_ONLY); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(colorMapCombo); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(colorMapCombo); colorMapCombo.setItems(colorMaps.keySet().toArray(new String[colorMaps.keySet().size()])); addSelectionListener(colorMapCombo); @@ -1029,22 +1118,21 @@ public class DynamicVisualisationsUI { Combo variableCombo = new Combo(parent, SWT.READ_ONLY); variableCombo.setItems(sizeContributions.keySet().toArray(new String[sizeContributions.size()])); - - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(variableCombo); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(variableCombo); Text minText = new Text(parent, SWT.BORDER); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(minText); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(minText); addSelectionListener(minText); Text maxText = new Text(parent, SWT.BORDER); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(maxText); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(maxText); addSelectionListener(maxText); Label unit = new Label(parent, SWT.NONE); - GridDataFactory.fillDefaults().grab(true, false).align(SWT.CENTER, SWT.CENTER).applyTo(unit); + GridDataFactory.fillDefaults().grab(true, false).hint(30, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(unit); Combo sizeMapCombo = new Combo(parent, SWT.READ_ONLY); - GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(sizeMapCombo); + GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).align(SWT.CENTER, SWT.CENTER).applyTo(sizeMapCombo); sizeMapCombo.setItems(sizeMaps.keySet().toArray(new String[sizeMaps.keySet().size()])); addSelectionListener(sizeMapCombo); @@ -1309,13 +1397,17 @@ public class DynamicVisualisationsUI { private void updateListening() { if (visualisationsListener != null) visualisationsListener.dispose(); - visualisationsListener = new VisualisationsListener(this); - Simantics.getSession().asyncRequest(new DynamicVisualisationsRequest(parentResource), visualisationsListener); + if (parentResource != null) { + visualisationsListener = new VisualisationsListener(this); + Simantics.getSession().asyncRequest(new DynamicVisualisationsRequest(parentResource), visualisationsListener); + } if (listener != null) listener.dispose(); - listener = new VisualisationListener(this); - Simantics.getSession().asyncRequest(new ActiveDynamicVisualisationsRequest(parentResource), listener); + if (parentResource != null) { + listener = new VisualisationListener(this); + Simantics.getSession().asyncRequest(new ActiveDynamicVisualisationsRequest(parentResource), listener); + } } private static class VisualisationsListener implements Listener> { @@ -1397,6 +1489,23 @@ public class DynamicVisualisationsUI { } } + intervalText.setText(Double.toString(((double)visualisation.getInterval()) / 1000.0)); + disableUpdatesButton.setSelection(visualisation.disabledUpdates()); + + hoveringVertexEnabledButton.setSelection(visualisation.isKeyVariablesVertexHover()); + hoveringEdgesEnabledButton.setSelection(visualisation.isKeyVariablesEdgesHover()); + + showConnectedComponentsButton.setSelection(visualisation.showConnectedComponents()); + notInSimulationButton.setSelection(visualisation.isInSimulation()); + elevationServerEnabledButton.setSelection(visualisation.isShowElevationServerBoundingBox()); + + hideConsumersButton.setSelection(visualisation.isHideConsumers()); + hideEdgesButton.setSelection(visualisation.isHideEdges()); + hideProducersButton.setSelection(visualisation.isHideProducers()); + hideValvesButton.setSelection(visualisation.isHideValves()); + hidePumpingStationsButton.setSelection(visualisation.isHidePumpingStations()); + hidePointsButton.setSelection(visualisation.isHidePoints()); + Map colorContributions = visualisation.getColorContributions(); for (Entry entry : colorContributions.entrySet()) { @@ -1458,6 +1567,10 @@ public class DynamicVisualisationsUI { break; } } + + pointsStaticPropertiesButton.setSelection(visualisation.isStaticPropertiesPoints()); + networkBranchesStaticPropertiesButton.setSelection(visualisation.isStaticPropertiesNetworkBranches()); + consumersStaticPropertiesButton.setSelection(visualisation.isStaticPropertiesConsumers()); } }); }