+ parentBuilder.append(svg);
+
+ for(RouteGraphNode n : NodeUtil.collectNodes(node, RouteGraphNode.class)) {
+ n.setIgnoreSelection(false);
+ }
+
+ parentBuilder.append("\n<g style=\"visibility:hidden\" class=\"selection\" id=\"" + key + "\">");
+ doc = renderSVGNode((IG2DNode)node);
+ svg = printSVGDocument(doc);
+ parentBuilder.append(svg);
+ parentBuilder.append("\n</g>");
+
+ BasicStroke bs = new BasicStroke(5f);
+
+ for(RouteGraphNode n : NodeUtil.collectNodes(node, RouteGraphNode.class)) {
+ n.setDynamicStroke(bs);
+ }
+
+ parentBuilder.append("\n<g class=\"selectionMask\" opacity=\"0.001\" id=\"" + key + "\">");
+ doc = renderSVGNode((IG2DNode)node);
+ svg = printSVGDocument(doc);
+ parentBuilder.append(svg);
+ parentBuilder.append("\n</g>");
+
+ parentBuilder.append("\n</g>");
+
+ } else if (node instanceof SelectionNode) {
+
+ SelectionNode n = (SelectionNode)node;
+ SingleElementNode parentSEN = (SingleElementNode)NodeUtil.getNearestParentOfType(node, SingleElementNode.class);
+ if(parentSEN != null && parentSEN.getKey() != null) {
+
+ StringBuilder parentBuilder2 = getParentBuilder(parentSEN);
+
+ String key = parentSEN.getKey().toString();
+ Element doc = renderSVGNode((IG2DNode)node);
+ String svg = printSVGDocument(doc);
+ parentBuilder2.append("\n<g style=\"visibility:hidden\" class=\"selection\" id=\"" + key + "\">");
+ parentBuilder2.append(svg);
+ parentBuilder2.append("\n</g>");
+ parentBuilder2.append("\n<g class=\"selectionMask\" id=\"" + key + "\">");
+ Rectangle2D rect = n.getRect();
+ parentBuilder2.append("<rect style=\"fill:#fff\" opacity=\"0.001\"");
+ parentBuilder2.append(" x=\"" + rect.getX() + "\" y=\"" + rect.getY() + "\"");
+ parentBuilder2.append(" width=\"" + rect.getWidth() + "\" height=\"" + rect.getHeight() + "\"");
+ parentBuilder2.append("></rect>");
+ parentBuilder2.append("\n</g>");
+ }