]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/visualisations/DynamicVisualisationsUI.java
Dynamic visualisations interval and disable support
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / visualisations / DynamicVisualisationsUI.java
index 38b57a93f616ed0fac8bfdea659280e9594fd6b3..c4afb80e5090be6f69b85521fbfe808cb2ceedb3 100644 (file)
@@ -119,6 +119,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 +173,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 +242,28 @@ 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(4).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);
+
     }
     
     private void initializeHideElements(Composite parent) {
@@ -498,10 +517,6 @@ public class DynamicVisualisationsUI {
         };
     }
 
-    protected void disableUpdates() {
-        
-    }
-
     protected void removeVisualisationTemplate(String name, Optional<Resource> of) {
         if (of.isPresent()) {
             Resource visualisation = of.get();
@@ -595,6 +610,16 @@ public class DynamicVisualisationsUI {
         boolean dynamicSymbolsValves = dynamicSymbolsValvesButton.getSelection();
         boolean dynamicSymbolsPumpingStations = dynamicSymbolsPumpingStationsButton.getSelection();
         
+        boolean disabled = disableUpdatesButton.getSelection();
+        Long interval;
+        try {
+            interval = Long.parseLong(intervalText.getText());
+        } catch (NumberFormatException e) {
+            // ignore
+            interval = 2000L;
+        }
+        long ii = interval;
+        
         Simantics.getSession().asyncRequest(new WriteRequest() {
             
             @Override
@@ -605,6 +630,7 @@ public class DynamicVisualisationsUI {
                 } else {
                     exist = DynamicVisualisations.createVisualisation(graph, parentResource, templateName);
                 }
+                DynamicVisualisations.setIntervalAndDisabled(graph, exist, ii, disabled);
                 DynamicVisualisations.setColorContributions(graph, exist, colorCollect);
                 DynamicVisualisations.setColorBarOptions(graph, exist, colorBarOptions);
                 DynamicVisualisations.setSizeContributions(graph, exist, sizeCollect);
@@ -1397,6 +1423,9 @@ public class DynamicVisualisationsUI {
                     }
                 }
                 
+                intervalText.setText(Long.toString(visualisation.getInterval()));
+                disableUpdatesButton.setSelection(visualisation.disabled());
+                
                 Map<String, DynamicColorContribution> colorContributions = visualisation.getColorContributions();
                 for (Entry<String, DynamicColorContribution> entry : colorContributions.entrySet()) {