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("");
// 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;