]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/SCLScenegraph.java
Merge "Clear Context/CanvasContext on dispose()" into release/1.43.1
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / SCLScenegraph.java
index c8fd242a2f7a1d61adf99ae4629de350e1159c48..70461571dc32e4de2c5f7804a0c84a6f312f0031 100644 (file)
@@ -891,9 +891,8 @@ public class SCLScenegraph {
                 svg = printSVGDocument(doc);
                 parentBuilder.append(SELECTION_MASK_SECTION, svg);
 
-                parentBuilder.append(SELECTION_MASK_SECTION, "\n</g>");
-                parentBuilder.append(SELECTION_SECTION, "\n</g>");
-                parentBuilder.append(MAIN_SECTION, "\n</g>");
+                senBuilders.put((ConnectionNode)node, new RenderSVGContext());
+                
                 
             } else if (isSelection0(node)) {
                 
@@ -1097,8 +1096,32 @@ public class SCLScenegraph {
         @Override
         public void leave(IG2DNode node) {
 
-            if(node instanceof ConnectionNode || node instanceof SVGNode) {
+            if( node instanceof SVGNode) {
                 // We are done
+            } else if (node instanceof ConnectionNode) {
+               RenderSVGContext parentBuilder = getParentBuilder(node);
+               SingleElementNode sen = (SingleElementNode)node;
+               RenderSVGContext b = senBuilders.get(sen);
+               String content = b.get(MAIN_SECTION);
+               if(content.isEmpty()) {
+//                     Handling connection the same way as SingleElementNode would draw connection twice..
+//                     if(sen.getKey() != null) {
+//
+//                             for(SelectionNode n : NodeUtil.collectNodes(node, SelectionNode.class)) {
+//                                     n.setIgnore(true);
+//                             }
+//
+//                             Element doc = renderSVGNode(svgGenerator, (IG2DNode)node);
+//                             String svg = printSVGDocument(doc);
+//                             parentBuilder.append(MAIN_SECTION, svg);
+//                     }
+               } else {
+                       parentBuilder.append(b);
+               }
+               parentBuilder.append(SELECTION_MASK_SECTION, "\n</g>");
+                parentBuilder.append(SELECTION_SECTION, "\n</g>");
+                parentBuilder.append(MAIN_SECTION, "\n</g>");
+                
             } else if (node instanceof G2DParentNode) {
                 
                RenderSVGContext parentBuilder = getParentBuilder(node);