X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fadapters%2FDistrictNetworkVertexElement.java;h=3e64bc3193957d249df2d6371cc5dfbcbc422d65;hb=16ee01dc5a40981c58fd5b478b89552e5814e8bb;hp=339d51d4149d8f2664a2b154d87c4b48a5bd2a0e;hpb=9dace20146d19dd0541480a80fd289de45b6cfc8;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkVertexElement.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkVertexElement.java index 339d51d4..3e64bc31 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkVertexElement.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkVertexElement.java @@ -1,78 +1,79 @@ -package org.simantics.district.network.ui.adapters; - -import java.awt.Dimension; -import java.awt.geom.AffineTransform; -import java.awt.geom.Rectangle2D; - -import org.simantics.district.network.ui.nodes.DistrictNetworkVertexNode; -import org.simantics.g2d.element.ElementClass; -import org.simantics.g2d.element.ElementUtils; -import org.simantics.g2d.element.IElement; -import org.simantics.g2d.element.SceneGraphNodeKey; -import org.simantics.g2d.element.handler.InternalSize; -import org.simantics.g2d.element.handler.SceneGraph; -import org.simantics.g2d.element.handler.impl.DefaultTransform; -import org.simantics.scenegraph.g2d.G2DParentNode; -import org.simantics.utils.datastructures.hints.IHintContext.Key; -import org.simantics.utils.datastructures.hints.IHintContext.KeyOf; - -public class DistrictNetworkVertexElement { - - public static final Key KEY_DN_VERTEX = new KeyOf(DistrictNetworkVertex.class, "DN_VERTEX"); - public static final Key KEY_DN_VERTEX_NODE = new SceneGraphNodeKey(DistrictNetworkVertexNode.class, "DN_VERTEX_NODE"); - - public static final ElementClass CLASS = - ElementClass.compile( - DefaultTransform.INSTANCE, - DNVertexInternalSize.INSTANCE, - DNVertexSceneGraph.INSTANCE - ).setId(DistrictNetworkVertexElement.class.getSimpleName()); - - static final class DNVertexSceneGraph implements SceneGraph { - - public static final DNVertexSceneGraph INSTANCE = new DNVertexSceneGraph(); - - private static final long serialVersionUID = 8894367073815556871L; - - @Override - public void init(IElement edgeElement, G2DParentNode parent) { - DistrictNetworkVertex vertex = edgeElement.getHint(KEY_DN_VERTEX); - if (vertex == null) { - cleanup(edgeElement); - } else { - DistrictNetworkVertexNode node = edgeElement.getHint(KEY_DN_VERTEX_NODE); - if (node == null) { - node = parent.addNode(ElementUtils.generateNodeId(edgeElement), DistrictNetworkVertexNode.class); - edgeElement.setHint(KEY_DN_VERTEX_NODE, node); - } - node.setVertex(vertex); - - AffineTransform at = ElementUtils.getTransform(edgeElement); - if(at != null) - node.setTransform(at); - } - } - - @Override - public void cleanup(IElement edge) { - ElementUtils.removePossibleNode(edge, KEY_DN_VERTEX_NODE); - edge.removeHint(KEY_DN_VERTEX_NODE); - } - } - - static final class DNVertexInternalSize implements InternalSize { - - public static final DNVertexInternalSize INSTANCE = new DNVertexInternalSize(); - - private static final long serialVersionUID = 2625702114278956461L; - - @Override - public Rectangle2D getBounds(IElement e, Rectangle2D size) { - if (size == null) - size = new Rectangle2D.Double(); - size.setFrame(-0.5, -0.5, 1, 1); - return size; - } - - } -} +package org.simantics.district.network.ui.adapters; + +import java.awt.geom.AffineTransform; +import java.awt.geom.Rectangle2D; + +import org.simantics.district.network.ui.nodes.DistrictNetworkVertexNode; +import org.simantics.g2d.element.ElementClass; +import org.simantics.g2d.element.ElementUtils; +import org.simantics.g2d.element.IElement; +import org.simantics.g2d.element.SceneGraphNodeKey; +import org.simantics.g2d.element.handler.InternalSize; +import org.simantics.g2d.element.handler.SceneGraph; +import org.simantics.g2d.element.handler.impl.DefaultTransform; +import org.simantics.g2d.element.handler.impl.SimpleElementLayers; +import org.simantics.scenegraph.g2d.G2DParentNode; +import org.simantics.utils.datastructures.hints.IHintContext.Key; +import org.simantics.utils.datastructures.hints.IHintContext.KeyOf; + +public class DistrictNetworkVertexElement { + + public static final Key KEY_DN_VERTEX = new KeyOf(DistrictNetworkVertex.class, "DN_VERTEX"); + public static final Key KEY_DN_VERTEX_NODE = new SceneGraphNodeKey(DistrictNetworkVertexNode.class, "DN_VERTEX_NODE"); + + public static final ElementClass CLASS = + ElementClass.compile( + DefaultTransform.INSTANCE, + DNVertexInternalSize.INSTANCE, + DNVertexSceneGraph.INSTANCE, + SimpleElementLayers.INSTANCE + ).setId(DistrictNetworkVertexElement.class.getSimpleName()); + + static final class DNVertexSceneGraph implements SceneGraph { + + public static final DNVertexSceneGraph INSTANCE = new DNVertexSceneGraph(); + + private static final long serialVersionUID = 8894367073815556871L; + + @Override + public void init(IElement edgeElement, G2DParentNode parent) { + DistrictNetworkVertex vertex = edgeElement.getHint(KEY_DN_VERTEX); + if (vertex == null) { + cleanup(edgeElement); + } else { + DistrictNetworkVertexNode node = edgeElement.getHint(KEY_DN_VERTEX_NODE); + if (node == null) { + node = parent.addNode(ElementUtils.generateNodeId(edgeElement), DistrictNetworkVertexNode.class); + edgeElement.setHint(KEY_DN_VERTEX_NODE, node); + } + node.setVertex(vertex); + + AffineTransform at = ElementUtils.getTransform(edgeElement); + if(at != null) + node.setTransform(at); + } + } + + @Override + public void cleanup(IElement edge) { + ElementUtils.removePossibleNode(edge, KEY_DN_VERTEX_NODE); + edge.removeHint(KEY_DN_VERTEX_NODE); + } + } + + static final class DNVertexInternalSize implements InternalSize { + + public static final DNVertexInternalSize INSTANCE = new DNVertexInternalSize(); + + private static final long serialVersionUID = 2625702114278956461L; + + @Override + public Rectangle2D getBounds(IElement e, Rectangle2D size) { + if (size == null) + size = new Rectangle2D.Double(); + size.setFrame(-0.5, -0.5, 1, 1); + return size; + } + + } +}