package org.simantics.modeling;
import java.awt.BasicStroke;
+import java.awt.Color;
import java.awt.Dimension;
import java.awt.RenderingHints;
import java.awt.RenderingHints.Key;
import org.simantics.diagram.elements.TextGridNode;
import org.simantics.diagram.elements.TextNode;
import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.g2d.canvas.Hints;
import org.simantics.g2d.canvas.ICanvasContext;
import org.simantics.g2d.diagram.DiagramHints;
import org.simantics.g2d.diagram.IDiagram;
}
return "No nodes in scenegraph!";
}
+
+ /**
+ * Returns background color of a canvasContext or null.
+ * @param ctx
+ * @return color in RGBA List<Integer> format, or null.
+ */
+ public static List<Integer> getBackgroundColor(ICanvasContext ctx) {
+ Color color = ctx.getDefaultHintContext().getHint(Hints.KEY_BACKGROUND_COLOR);
+ if (color == null)
+ return null;
+ ArrayList<Integer> rgba = new ArrayList<>(4);
+ rgba.add(color.getRed());
+ rgba.add(color.getGreen());
+ rgba.add(color.getBlue());
+ rgba.add(color.getAlpha());
+ return rgba;
+ }
public static String sceneGraphTest (ICanvasContext ctx, String module, String value) {
}
} else if (node instanceof SVGNode) {
SVGNode svg = (SVGNode)node;
+ AffineTransform at = svg.getTransform();
+ if (!at.isIdentity()) {
+ if(at.getScaleX() == 1.0 && at.getScaleY() == 1.0 && at.getShearX() == 0.0 && at.getShearY() == 0.0) {
+ String m = "translate(" + at.getTranslateX() + " " + at.getTranslateY() + ")";
+ parentBuilder.append(MAIN_SECTION, "\n<g transform=\"" + m + "\">");
+ } else {
+ double[] ds = new double[6];
+ at.getMatrix(ds);
+ String m = "matrix(" + ds[0] + " " + ds[1] + " " + ds[2] + " " + ds[3] + " " + ds[4] + " " + ds[5] + ")";
+ parentBuilder.append(MAIN_SECTION, "\n<g transform=\"" + m + "\">");
+ }
+ }
parentBuilder.append(MAIN_SECTION, svg.getSVGText());
+ if (!at.isIdentity()) {
+ parentBuilder.append(MAIN_SECTION, "\n</g>");
+ }
} else if (node instanceof G2DParentNode) {
AffineTransform at = node.getTransform();
if(node instanceof SingleElementNode) {