]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DynamicVisualisationContributionsParticipant.java
Move remaining profiles to visualisations for perf
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / participants / DynamicVisualisationContributionsParticipant.java
index 36eaaf619f618e8e0bd9d572018e8ce7a251e2c2..8ddb04916cefa70da43cc3d49079e233a24f7cee 100644 (file)
@@ -2,6 +2,9 @@ package org.simantics.district.network.ui.participants;
 
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
@@ -21,6 +24,7 @@ import org.simantics.district.network.ui.nodes.DeferredRenderingNode;
 import org.simantics.district.network.ui.nodes.DistrictNetworkEdgeArrayNode;
 import org.simantics.district.network.ui.nodes.DistrictNetworkHoverInfoNode;
 import org.simantics.district.network.ui.nodes.DynamicVisualisationContributionsNode;
+import org.simantics.district.network.ui.nodes.ElevationServerNode;
 import org.simantics.district.network.ui.styles.DistrictNetworkHoverInfoStyle;
 import org.simantics.district.network.ui.styles.DistrictNetworkHoverInfoStyle.StyleResult;
 import org.simantics.district.network.visualisations.model.ColorBarOptions;
@@ -31,6 +35,7 @@ import org.simantics.district.network.visualisations.model.SizeBarOptions;
 import org.simantics.g2d.canvas.ICanvasContext;
 import org.simantics.g2d.canvas.impl.AbstractCanvasParticipant;
 import org.simantics.g2d.canvas.impl.SGNodeReflection.SGInit;
+import org.simantics.maps.elevation.server.SingletonTiffTileInterface;
 import org.simantics.scenegraph.INode;
 import org.simantics.scenegraph.g2d.G2DParentNode;
 import org.simantics.scenegraph.g2d.events.EventHandlerReflection.EventHandler;
@@ -64,6 +69,8 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
     private DistrictNetworkHoverInfoNode hoverInfoNode;
     private DeferredRenderingNode deferredEdgeArrowRendererNode;
 
+    private ElevationServerNode showElevationServerBoundingBoxNode;
+
     public DynamicVisualisationContributionsParticipant(AffineTransform tr) {
         this.transform = tr;
     }
@@ -75,6 +82,7 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
         getHintStack().addKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_COLOR_BAR_OPTIONS, hintListener);
         getHintStack().addKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_SIZING_OBJECTS, hintListener);
         getHintStack().addKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_SIZE_BAR_OPTIONS, hintListener);
+        getHintStack().addKeyHintListener(getThread(), DistrictDiagramViewer.KEY_SHOW_ELEVATION_SERVER, hintListener);
     }
 
     @Override
@@ -88,6 +96,7 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
         getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_COLOR_BAR_OPTIONS, hintListener);
         getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_SIZING_OBJECTS, hintListener);
         getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_SIZE_BAR_OPTIONS, hintListener);
+        getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_SHOW_ELEVATION_SERVER, hintListener);
         super.removedFromContext(ctx);
     }
 
@@ -105,6 +114,9 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
         
         Pair<String, Class<DeferredRenderingNode>> dearn = DistrictNetworkEdgeArrayNode.renderer();
         deferredEdgeArrowRendererNode = parent.addNode(dearn.first, dearn.second);
+        
+        showElevationServerBoundingBoxNode = parent.addNode(ElevationServerNode.ID, ElevationServerNode.class);
+        showElevationServerBoundingBoxNode.setTransform(transform);
     }
 
     @EventHandler(priority = 0)
@@ -121,6 +133,15 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
         node.setColorBarOptions(getColorBarOptions());
         node.setDynamicSizingObjects(getDynamicSizingObjects());
         node.setSizeBarOptions(getSizeBarOptions());
+        
+        showElevationServerBoundingBoxNode.setRectangles(getRectangles());
+    }
+
+    private Collection<Rectangle2D> getRectangles() {
+        Boolean enabled = getHint(DistrictDiagramViewer.KEY_SHOW_ELEVATION_SERVER);
+        if (enabled != null && enabled)
+            return SingletonTiffTileInterface.getBoundingBoxes();
+        return Collections.emptyList();
     }
 
     private Map<String, DynamicColorContribution> getDynamicColoringObjects() {