X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fnodes%2FDistrictNetworkVertexNode.java;h=feb217b0ce8c9ac792d2ebc57acc435a7aa48fb4;hb=e18075e5fda3ef81c260e4dd9f1211f468344a3c;hp=1639d5712b8abaaf3fc8e542d74d9d9110444a4b;hpb=4d0c114c0f53694180f808747b63d64fcefb0932;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkVertexNode.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkVertexNode.java index 1639d571..feb217b0 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkVertexNode.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkVertexNode.java @@ -7,6 +7,8 @@ import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.util.List; +import java.util.Optional; import org.simantics.district.network.ui.adapters.DistrictNetworkVertex; import org.simantics.maps.MapScalingTransform; @@ -44,6 +46,7 @@ public class DistrictNetworkVertexNode extends G2DParentNode implements ISelecti private Color color; private transient Color dynamicColor; + private transient Color eventColor; private Rectangle2D bounds; private transient Point2D point; @@ -91,7 +94,7 @@ public class DistrictNetworkVertexNode extends G2DParentNode implements ISelecti } Color oldColor = g2d.getColor(); - Color newColor = dynamicColor != null ? dynamicColor : color; + Color newColor = eventColor != null ? eventColor : dynamicColor != null ? dynamicColor : color; boolean changeColor = !oldColor.equals(newColor); double scaleRecip = viewScaleRecip * nodeSize; @@ -179,6 +182,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 @@ -237,8 +244,46 @@ public class DistrictNetworkVertexNode extends G2DParentNode implements ISelecti this.dynamicColor = color; } + @PropertySetter(value = "eventColor") + public void setEventColor(Color colorr) { + this.eventColor = colorr; + } + @PropertySetter(value = "hidden") public void setHidden(Boolean value) { this.hidden = value; } + + public void setStaticInformation(Optional 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 isInSimulation) { + if (!isInSimulation.isPresent()) { + removeNode(NotInSimulationNode.NODE_NAME); + } else { + NotInSimulationNode child = getOrCreateNode(NotInSimulationNode.NODE_NAME, NotInSimulationNode.class); + child.setZIndex(1000); + child.setIsInSimulation(isInSimulation.get()); + } + } + + public void setConnectionLinePoints(List points) { + if (points == null) { + removeNode(ConnectionLineNode.NODE_NAME); + } else { + ConnectionLineNode child = getOrCreateNode(ConnectionLineNode.NODE_NAME, ConnectionLineNode.class); + child.setZIndex(0); + child.setStrokeWidth(2.f); + child.setPoints(points); + } + } + }