Customize NavigationNode for PanZoomRotateHandler 61/1961/2
authorjsimomaa <jani.simomaa@gmail.com>
Fri, 27 Jul 2018 07:07:40 +0000 (10:07 +0300)
committerJani Simomaa <jani.simomaa@semantum.fi>
Fri, 27 Jul 2018 07:58:47 +0000 (07:58 +0000)
gitlab #63

Change-Id: I127743304e9ebae068c961e9929a18fb17115a08

bundles/org.simantics.g2d/src/org/simantics/g2d/participant/PanZoomRotateHandler.java

index eeab18069717aaa250ffe5ffb5d0e06320b47871..371ecbf1586bb22910410a728ddf8325deb4bbb9 100644 (file)
@@ -185,18 +185,22 @@ public class PanZoomRotateHandler extends AbstractCanvasParticipant {
         super.removedFromContext(ctx);
     }
 
+    protected Class<? extends NavigationNode> getNavigationNodeClass() {
+        return NavigationNode.class;
+    }
+
     @SGInit
     public void initSG(G2DParentNode parent) {
         // Replace old NAVIGATION_NODE with a new one
         INode oldnav = NodeUtil.getRootNode(parent).getNode(SceneGraphConstants.NAVIGATION_NODE_NAME);
         if(oldnav != null) {
-            node = oldnav.appendParent(SceneGraphConstants.NAVIGATION_NODE_NAME, NavigationNode.class);
+            node = oldnav.appendParent(SceneGraphConstants.NAVIGATION_NODE_NAME, getNavigationNodeClass());
             // FIXME : oldnav seems to be the same node as parent (most of the cases).
             // Deleting it will cause plenty of code to fail, since they refer to the node directly.
             // The bug was not shown, since deleting() a Node did not actually wipe its structures (until now).             
             // oldnav.delete();
         } else {
-            node = parent.addNode(SceneGraphConstants.NAVIGATION_NODE_NAME, NavigationNode.class);
+            node = parent.addNode(SceneGraphConstants.NAVIGATION_NODE_NAME, getNavigationNodeClass());
         }
         node.setLookupId(SceneGraphConstants.NAVIGATION_NODE_NAME);
         node.setZIndex(0);