]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkVertexNode.java
Move remaining profiles to visualisations for perf
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / nodes / DistrictNetworkVertexNode.java
index 51ae30e07f58113363020d4f34b248b10c4ad331..b1bb1468dd63653ee1c423a9653fbc307088bc8e 100644 (file)
@@ -7,6 +7,7 @@ import java.awt.RenderingHints;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
+import java.util.Optional;
 
 import org.simantics.district.network.ui.adapters.DistrictNetworkVertex;
 import org.simantics.maps.MapScalingTransform;
@@ -67,6 +68,8 @@ public class DistrictNetworkVertexNode extends G2DParentNode implements ISelecti
         if (t != null && !t.isIdentity()) {
             //ot = g2d.getTransform();
             ot = (AffineTransform) g2d.getRenderingHint(G2DRenderingHints.KEY_TRANSFORM_UNDER_SPATIAL_ROOT);
+            if (ot == null)
+                ot = g2d.getTransform();
             g2d.transform(t);
 
             if (scaleStroke) {
@@ -177,6 +180,10 @@ public class DistrictNetworkVertexNode extends G2DParentNode implements ISelecti
         updateBounds();
     }
 
+    public DistrictNetworkVertex getVertex() {
+        return vertex;
+    }
+
     @Override
     public boolean hover(boolean hover, boolean isConnectionTool) {
         // Only react to hover when the connection tool is active
@@ -239,4 +246,25 @@ public class DistrictNetworkVertexNode extends G2DParentNode implements ISelecti
     public void setHidden(Boolean value) {
         this.hidden = value;
     }
+
+    public void setStaticInformation(Optional<String> staticInformation) {
+        DistrictNetworkStaticInfoNode child = getOrCreateNode(DistrictNetworkStaticInfoNode.NODE_KEY, DistrictNetworkStaticInfoNode.class);
+        Point2D calculatePoint2D = DistrictNetworkNodeUtils.calculatePoint2D(vertex.getPoint(), null);
+        child.setLocation(calculatePoint2D, new Point2D.Double(1.0, 0.0));
+        if (staticInformation.isPresent()) {
+            child.setInfo(staticInformation.get());
+        } else {
+            child.setInfo(null);
+        }
+    }
+    
+    public void setInSimulation(Optional<Boolean> isInSimulation) {
+        if (!isInSimulation.isPresent()) {
+            removeNode(NotInSimulationNode.NODE_NAME);
+        } else {
+            NotInSimulationNode child = getOrCreateNode(NotInSimulationNode.NODE_NAME, NotInSimulationNode.class);
+            child.setZIndex(1000);
+            child.setIsInSimulation(isInSimulation.get());
+        }
+    }
 }