X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2FG2DRenderingHints.java;h=ff68dac5a692829ad157dc4180091dd9a3abb31a;hb=a9513be166b1fd5c369b013fedfdd39f07685a2c;hp=2e017b21fa8b6342db9eb6488e5b24d84b461ed0;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DRenderingHints.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DRenderingHints.java index 2e017b21f..ff68dac5a 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DRenderingHints.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/G2DRenderingHints.java @@ -1,46 +1,108 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.scenegraph.g2d; - -import java.awt.Component; -import java.awt.RenderingHints.Key; -import java.awt.geom.Rectangle2D; - -/** - * @author Tuukka Lehtonen - * See {@link G2DPDFRenderingHints} - */ -public final class G2DRenderingHints { - - /** - * A rendering hint for storing the boundaries of the control area within a - * Graphics2D instance. - */ - public static final Key KEY_CONTROL_BOUNDS = new Key(1000) { - @Override - public boolean isCompatibleValue(Object val) { - return val instanceof Rectangle2D; - } - }; - - /** - * A rendering hint for storing the root AWT Component on which the scene - * graph is rendered within a Graphics2D instance. - */ - public static final Key KEY_COMPONENT = new Key(1001) { - @Override - public boolean isCompatibleValue(Object val) { - return val instanceof Component; - } - }; - +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.scenegraph.g2d; + +import java.awt.Component; +import java.awt.geom.Rectangle2D; +import java.util.Map; + +/** + * @author Tuukka Lehtonen + * See {@link G2DPDFRenderingHints} + */ +public final class G2DRenderingHints { + + public static final Key KEY_BEGIN_ELEMENT = new G2DRenderingHints.Key(0); + public static final Key KEY_END_ELEMENT = new G2DRenderingHints.Key(1); + public static final Key KEY_ELEMENT_ID = new G2DRenderingHints.Key(2); + + public static class Key extends java.awt.RenderingHints.Key { + + public Key(int privateKey) { + super(privateKey); + } + + @Override + public boolean isCompatibleValue(Object val) { + switch (intKey()) { + case 0: + return val == null || val instanceof String + || val instanceof Map; + case 1: + return val == null || val instanceof Object; + case 2: + return val == null || val instanceof Object; + default: + throw new RuntimeException("Not possible!"); + } + } + } + + /** + * A rendering hint for storing the boundaries of the control area within a + * Graphics2D instance. + */ + public static final Key KEY_CONTROL_BOUNDS = new Key(1000) { + @Override + public boolean isCompatibleValue(Object val) { + return val instanceof Rectangle2D; + } + }; + + /** + * A rendering hint for storing the root AWT Component on which the scene + * graph is rendered within a Graphics2D instance. + */ + public static final Key KEY_COMPONENT = new Key(1001) { + @Override + public boolean isCompatibleValue(Object val) { + return val instanceof Component; + } + }; + + /** + * If this hint is not specified, the default interpretation should be + * {@value #AS_PATHS}. + * + * @since 1.31.0 + */ + public static enum TextRenderingMode { + AS_PATHS, + AS_TEXT + } + + /** + * A rendering hint for telling text rendering Simantics G2D scene graph node + * implementations how to render the text: as text or paths. + * + * @since 1.31.0 + */ + public static final Key KEY_TEXT_RENDERING_MODE = new Key(2004) { + @Override + public boolean isCompatibleValue(Object val) { + return val instanceof TextRenderingMode; + } + }; + + /** + * Instead of rendering SVGNode using SVG Salamander pass it to G2D as SVGPassthruShape in String format. + * + * @since 1.31.0 + */ + public static final Key KEY_SVG_PASSTHRU = new Key(2005) { + @Override + public boolean isCompatibleValue(Object val) { + return val instanceof Boolean; + } + }; + } \ No newline at end of file