vhardy 01/10/11 02:46:19 Modified: sources/org/apache/batik/svggen SVGGeneratorContext.java SVGGraphics2D.java Log: Addition of defaults for initial graphic context attributes. Revision Changes Path 1.13 +105 -1 xml-batik/sources/org/apache/batik/svggen/SVGGeneratorContext.java Index: SVGGeneratorContext.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/SVGGeneratorContext.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- SVGGeneratorContext.java 2001/09/13 08:42:50 1.12 +++ SVGGeneratorContext.java 2001/10/11 09:46:19 1.13 @@ -10,6 +10,14 @@ import org.w3c.dom.Document; +import java.awt.Paint; +import java.awt.Stroke; +import java.awt.Composite; +import java.awt.Shape; +import java.awt.RenderingHints; +import java.awt.Font; +import java.awt.Color; + /** * This class contains all non graphical contextual information that * are needed by the {@link org.apache.batik.svggen.SVGGraphics2D} to @@ -18,7 +26,7 @@ * * @see org.apache.batik.svggen.SVGGraphics2D#SVGGraphics2D(SVGGeneratorContext,boolean) * @author <a href="mailto:[EMAIL PROTECTED]>Christophe Jolif</a> - * @version $Id: SVGGeneratorContext.java,v 1.12 2001/09/13 08:42:50 tkormann Exp $ + * @version $Id: SVGGeneratorContext.java,v 1.13 2001/10/11 09:46:19 vhardy Exp $ */ public class SVGGeneratorContext implements ErrorConstants { // this fields are package access for read-only purpose @@ -71,6 +79,85 @@ boolean svgFont = false; /** + * GraphicContextDefaults + */ + GraphicContextDefaults gcDefaults; + + /** + * Class to describe the GraphicContext defaults to + * be used. Note that this class does *not* contain + * a default for the initial transform, as this + * transform *has to be identity* for the SVGGraphics2D + * to operate (the TransformStacks operation is based + * on that assumption. See the DOMTreeManager class). + */ + public static class GraphicContextDefaults { + protected Paint paint; + protected Stroke stroke; + protected Composite composite; + protected Shape clip; + protected RenderingHints hints; + protected Font font; + protected Color background; + + public void setStroke(Stroke stroke){ + this.stroke = stroke; + } + + public Stroke getStroke(){ + return stroke; + } + + public void setComposite(Composite composite){ + this.composite = composite; + } + + public Composite getComposite(){ + return composite; + } + + public void setClip(Shape clip){ + this.clip = clip; + } + + public Shape getClip(){ + return clip; + } + + public void setRenderingHints(RenderingHints hints){ + this.hints = hints; + } + + public RenderingHints getRenderingHints(){ + return hints; + } + + public void setFont(Font font){ + this.font = font; + } + + public Font getFont(){ + return font; + } + + public void setBackground(Color background){ + this.background = background; + } + + public Color getBackground(){ + return background; + } + + public void setPaint(Paint paint){ + this.paint = paint; + } + + public Paint getPaint(){ + return paint; + } + } + + /** * Builds an instance of <code>SVGGeneratorContext</code> with the given * <code>domFactory</code> but let the user set later the other contextual * information. Please note that none of the parameter below should be @@ -104,6 +191,23 @@ ctx.setComment("Generated by the Batik Graphics2D SVG Generator"); ctx.setErrorHandler(new DefaultErrorHandler()); return ctx; + } + + /** + * Returns the set of defaults which should be used for the + * GraphicContext. + */ + final public GraphicContextDefaults getGraphicContextDefaults(){ + return gcDefaults; + } + + /** + * Sets the default to be used for the graphic context. + * Note that gcDefaults may be null and that any of its attributes + * may be null. + */ + final public void setGraphicContextDefaults(GraphicContextDefaults gcDefaults){ + this.gcDefaults = gcDefaults; } /** 1.24 +44 -3 xml-batik/sources/org/apache/batik/svggen/SVGGraphics2D.java Index: SVGGraphics2D.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/SVGGraphics2D.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- SVGGraphics2D.java 2001/09/19 13:21:55 1.23 +++ SVGGraphics2D.java 2001/10/11 09:46:19 1.24 @@ -45,7 +45,7 @@ * * * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a> - * @version $Id: SVGGraphics2D.java,v 1.23 2001/09/19 13:21:55 vhardy Exp $ + * @version $Id: SVGGraphics2D.java,v 1.24 2001/10/11 09:46:19 vhardy Exp $ * @see org.apache.batik.ext.awt.g2d.GraphicContext * @see org.apache.batik.svggen.DOMTreeManager * @see org.apache.batik.svggen.DOMGroupManager @@ -200,7 +200,20 @@ ImageHandler imageHandler, ExtensionHandler extensionHandler, boolean textAsShapes) { - super(textAsShapes); + this(buildSVGGeneratorContext(domFactory, + imageHandler, + extensionHandler), + textAsShapes); + } + + /** + * Helper method to create an <tt>SVGGeneratorContext</tt> from the + * constructor parameters. + */ + public static SVGGeneratorContext + buildSVGGeneratorContext(Document domFactory, + ImageHandler imageHandler, + ExtensionHandler extensionHandler){ SVGGeneratorContext generatorCtx = new SVGGeneratorContext(domFactory); generatorCtx.setIDGenerator(new SVGIDGenerator()); @@ -210,7 +223,7 @@ generatorCtx.setComment("Generated by the Batik Graphics2D SVG Generator"); generatorCtx.setErrorHandler(new DefaultErrorHandler()); - setGeneratorContext(generatorCtx); + return generatorCtx; } /** @@ -239,6 +252,34 @@ this.generatorCtx = generatorCtx; this.gc = new GraphicContext(new AffineTransform()); + + SVGGeneratorContext.GraphicContextDefaults gcDefaults = + generatorCtx.getGraphicContextDefaults(); + + if(gcDefaults != null){ + if(gcDefaults.getPaint() != null){ + gc.setPaint(gcDefaults.getPaint()); + } + if(gcDefaults.getStroke() != null){ + gc.setStroke(gcDefaults.getStroke()); + } + if(gcDefaults.getComposite() != null){ + gc.setComposite(gcDefaults.getComposite()); + } + if(gcDefaults.getClip() != null){ + gc.setClip(gcDefaults.getClip()); + } + if(gcDefaults.getRenderingHints() != null){ + gc.setRenderingHints(gcDefaults.getRenderingHints()); + } + if(gcDefaults.getFont() != null){ + gc.setFont(gcDefaults.getFont()); + } + if(gcDefaults.getBackground() != null){ + gc.setBackground(gcDefaults.getBackground()); + } + } + this.shapeConverter = new SVGShape(generatorCtx); this.domTreeManager = new DOMTreeManager(gc, generatorCtx,
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]