X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2FSCLScenegraph.java;h=b3a0ff251502a41cc772352710553cfcc64957eb;hp=3e81b1c5cc620b81f23fa8f1ce0fa40fee67db81;hb=bf8a8b92f405dfd96198d5e1b377ce2f1059675b;hpb=71ec74823894138693ed9cde9e22270453fb4127 diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLScenegraph.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLScenegraph.java index 3e81b1c5c..b3a0ff251 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLScenegraph.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLScenegraph.java @@ -36,6 +36,7 @@ import org.simantics.db.Resource; import org.simantics.db.common.request.UnaryRead; import org.simantics.db.exception.DatabaseException; import org.simantics.db.exception.RuntimeDatabaseException; +import org.simantics.diagram.elements.DecorationSVGNode; import org.simantics.diagram.elements.DiagramNodeUtil; import org.simantics.diagram.elements.TextGridNode; import org.simantics.diagram.elements.TextNode; @@ -61,7 +62,6 @@ import org.simantics.scenegraph.g2d.nodes.BackgroundNode; import org.simantics.scenegraph.g2d.nodes.BoundsNode; import org.simantics.scenegraph.g2d.nodes.ConnectionNode; import org.simantics.scenegraph.g2d.nodes.DataNode; -import org.simantics.scenegraph.g2d.nodes.DecorationSVGNode; import org.simantics.scenegraph.g2d.nodes.NavigationNode; import org.simantics.scenegraph.g2d.nodes.SVGNode; import org.simantics.scenegraph.g2d.nodes.SelectionNode; @@ -599,6 +599,7 @@ public class SCLScenegraph { } G2DSceneGraph sg = ctx.getSceneGraph(); + sg.performCleanup(); G2DParentNode root = (G2DParentNode) sg.getRootNode(); // rtree is the actual content of the diagram @@ -636,15 +637,16 @@ public class SCLScenegraph { if(!Double.isFinite(trX)) trX = 0; if(!Double.isFinite(trY)) trY = 0; - result.append(MAIN_SECTION, ""); - + result.append(MAIN_SECTION, ""); result.append(SELECTION_SECTION, ""); - result.append(SELECTION_MASK_SECTION, ""); + + result.append(ALL_SECTIONS, ""); + KeyVisitor keyVisitor = new KeyVisitor(); sg.accept(keyVisitor); @@ -662,16 +664,14 @@ public class SCLScenegraph { } - result.append(SELECTION_SECTION, ""); - result.append(SELECTION_MASK_SECTION, ""); - result.append(MAIN_SECTION, ""); + result.append(ALL_SECTIONS, ""); StringBuilder res = new StringBuilder(); res.append(""); res.append(result.get(MAIN_SECTION)); res.append(result.get(SELECTION_SECTION)); res.append(result.get(SELECTION_MASK_SECTION)); - res.append(result.get("")); + res.append(""); // System.err.println(" == FINAL RESULT == "); // System.err.println(res.toString()); @@ -782,7 +782,9 @@ public class SCLScenegraph { RenderSVGContext parentBuilder2 = getParentBuilder(parentSEN); String key = getKey(parentSEN); + n.setIgnore(false); Element doc = renderSVGNode((IG2DNode)node); + n.setIgnore(true); String svg = printSVGDocument(doc); parentBuilder2.append(SELECTION_SECTION, "\n"); parentBuilder2.append(SELECTION_SECTION, svg); @@ -797,6 +799,7 @@ public class SCLScenegraph { parentBuilder2.append(SELECTION_MASK_SECTION,">"); } parentBuilder2.append(SELECTION_MASK_SECTION,"\n"); + } } else if (node instanceof SVGNode) { SVGNode svg = (SVGNode)node;