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;
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());
}
}
+ 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;