]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/breakdown/DistrictNetworkBreakdownPanel.java
Add refresh to context menu in district network breakdown view
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / breakdown / DistrictNetworkBreakdownPanel.java
index b3e6d6bbecad2d55ded30fa868829ec51fb959ae..c8db5165f497ba4964979917c6e7df599c6c4a1f 100644 (file)
@@ -1,7 +1,9 @@
 package org.simantics.district.network.ui.breakdown;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -147,6 +149,15 @@ public class DistrictNetworkBreakdownPanel extends Composite {
                 if (sel.size() > 0 && fromSameDiagram(sel)) {
                     manager.add(new ShowSubnetworkAction(sel));
                 }
+                Set<NetworkDiagram> diagrams = new HashSet<>();
+                if (sel.size() > 0) {
+                    for (Subgraph graph : sel) {
+                        diagrams.add(graph.parent);
+                    }
+                }
+                if (diagrams.isEmpty())
+                    diagrams.addAll(subgraphs.keySet());
+                manager.add(new RefreshAction(diagrams));
                 //manager.add(new DeleteAction());
             }
 
@@ -445,6 +456,24 @@ public class DistrictNetworkBreakdownPanel extends Composite {
 
     }
 
+    private class RefreshAction extends Action {
+
+        private Set<NetworkDiagram> diagram;
+
+        public RefreshAction(Set<NetworkDiagram> diagrams) {
+            super("Refresh");
+            this.diagram = diagrams;
+        }
+
+        @Override
+        public void run() {
+            diagram.forEach(d -> {
+                subgraphs.remove(d);
+                tree.refresh();
+            });
+        }
+    }
+
     private static class ShowSubnetworkAction extends Action {
 
         private final List<Subgraph> subgraphs;