X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Felements%2FSVGNode.java;h=bccba4aa769ad96ebcc47080187846e4e3f2db22;hb=refs%2Fchanges%2F11%2F1011%2F4;hp=8084c2a41fcef9e6e2c8a235719cf648e381f24b;hpb=5aa280d62ca00cdb18f908045cd1a5fb5a6525fb;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/SVGNode.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/SVGNode.java index 8084c2a41..bccba4aa7 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/SVGNode.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/SVGNode.java @@ -51,12 +51,14 @@ public class SVGNode extends org.simantics.scenegraph.g2d.nodes.SVGNode { public void render(Graphics2D g2d) { if (!parametersProcessed) { SingleElementNode sne = getSingleElementNode(); - Boolean enableEditing = sne.getParameter("enableEditing"); - if (enableEditing != null && enableEditing) { - esm = new EditorStateManager(this); - addEventHandler(this); + if (sne != null) { + Boolean enableEditing = sne.getParameter("enableEditing"); + if (enableEditing != null && enableEditing) { + esm = new EditorStateManager(this); + addEventHandler(this); + } + parametersProcessed = true; } - parametersProcessed = true; } super.render(g2d); @@ -76,7 +78,9 @@ public class SVGNode extends org.simantics.scenegraph.g2d.nodes.SVGNode { } private boolean isSelected(IG2DNode node) { - ICanvasContext ctx = DiagramNodeUtil.getCanvasContext(this); + ICanvasContext ctx = DiagramNodeUtil.getPossibleCanvasContext(this); + if (ctx == null) + return false; IElement ie = DiagramNodeUtil.getElement(ctx, node); if (ie == null) return false; @@ -119,10 +123,6 @@ public class SVGNode extends org.simantics.scenegraph.g2d.nodes.SVGNode { } SingleElementNode getSingleElementNode() { - ICanvasContext ctx = DiagramNodeUtil.getCanvasContext(this); - // FIXME: needed only because eventdelegator registrations are done before adding node to scene graph. - if (ctx == null) - return null; return (SingleElementNode)NodeUtil.getNearestParentOfType(this, SingleElementNode.class); }