From 3325a6c6c4114b2cbd3926b79e057a92660b8c0d Mon Sep 17 00:00:00 2001 From: Mehdi Houshmand Date: Fri, 6 Jul 2012 15:22:59 +0000 Subject: [PATCH] Updated XGC with r1358258 - consolidated some GraphicsConfiguration classes so as to remove duplicated code git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1358259 13f79535-47bb-0310-9956-ffa450edef68 --- lib/xmlgraphics-commons-1.5svn.jar | Bin 600660 -> 602381 bytes .../org/apache/fop/afp/AFPGraphics2D.java | 5 +- .../fop/afp/svg/AFPGraphicsConfiguration.java | 152 ------------------ .../apache/fop/afp/svg/AFPGraphicsDevice.java | 80 --------- .../org/apache/fop/svg/PDFGraphics2D.java | 3 +- 5 files changed, 5 insertions(+), 235 deletions(-) delete mode 100644 src/java/org/apache/fop/afp/svg/AFPGraphicsConfiguration.java delete mode 100644 src/java/org/apache/fop/afp/svg/AFPGraphicsDevice.java diff --git a/lib/xmlgraphics-commons-1.5svn.jar b/lib/xmlgraphics-commons-1.5svn.jar index be61b0b6ef33638331dd0f820697b1df78a8af37..9de9cabe596d2b8a95e9eff3ef45751add64aed0 100644 GIT binary patch delta 28897 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 Q!4<)k7)%~njsz0)FR>?aQ~&?~ delta 27057 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 diff --git a/src/java/org/apache/fop/afp/AFPGraphics2D.java b/src/java/org/apache/fop/afp/AFPGraphics2D.java index 7172b0ee3..d0a959ad0 100644 --- a/src/java/org/apache/fop/afp/AFPGraphics2D.java +++ b/src/java/org/apache/fop/afp/AFPGraphics2D.java @@ -26,6 +26,7 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; import java.awt.Paint; @@ -52,13 +53,13 @@ import org.apache.xmlgraphics.image.loader.ImageSize; import org.apache.xmlgraphics.image.loader.impl.ImageRendered; import org.apache.xmlgraphics.java2d.AbstractGraphics2D; import org.apache.xmlgraphics.java2d.GraphicContext; +import org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency; import org.apache.xmlgraphics.java2d.StrokingTextHandler; import org.apache.xmlgraphics.java2d.TextHandler; import org.apache.xmlgraphics.util.UnitConv; import org.apache.fop.afp.goca.GraphicsSetLineType; import org.apache.fop.afp.modca.GraphicsObject; -import org.apache.fop.afp.svg.AFPGraphicsConfiguration; import org.apache.fop.afp.util.CubicBezierApproximator; import org.apache.fop.fonts.FontInfo; import org.apache.fop.render.afp.AFPImageHandlerRenderedImage; @@ -111,7 +112,7 @@ public class AFPGraphics2D extends AbstractGraphics2D implements NativeImageHand private AFPPaintingState paintingState = null; /** AFP graphics configuration */ - private final AFPGraphicsConfiguration graphicsConfig = new AFPGraphicsConfiguration(); + private final GraphicsConfigurationWithTransparency graphicsConfig = new GraphicsConfigurationWithTransparency(); /** The AFP FontInfo */ private FontInfo fontInfo; diff --git a/src/java/org/apache/fop/afp/svg/AFPGraphicsConfiguration.java b/src/java/org/apache/fop/afp/svg/AFPGraphicsConfiguration.java deleted file mode 100644 index 0a051e675..000000000 --- a/src/java/org/apache/fop/afp/svg/AFPGraphicsConfiguration.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* $Id$ */ - -package org.apache.fop.afp.svg; - -import java.awt.GraphicsDevice; -import java.awt.Rectangle; -import java.awt.Transparency; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.awt.image.ColorModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.apache.fop.svg.GraphicsConfiguration; - -/** - * Our implementation of the class that returns information about - * roughly what we can handle and want to see (alpha for example). - */ -public class AFPGraphicsConfiguration extends GraphicsConfiguration { - // We use this to get a good colormodel.. - private static final BufferedImage BI_WITH_ALPHA - = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB); - // We use this to get a good colormodel.. - private static final BufferedImage BI_WITHOUT_ALPHA - = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB); - - /** - * Construct a buffered image with an alpha channel, unless - * transparencty is OPAQUE (no alpha at all). - * - * @param width the width of the image - * @param height the height of the image - * @param transparency the alpha value of the image - * @return the new buffered image - */ - public BufferedImage createCompatibleImage(int width, int height, - int transparency) { - if (transparency == Transparency.OPAQUE) { - return new BufferedImage(width, height, - BufferedImage.TYPE_INT_RGB); - } else { - return new BufferedImage(width, height, - BufferedImage.TYPE_INT_ARGB); - } - } - - /** - * Construct a buffered image with an alpha channel. - * - * @param width the width of the image - * @param height the height of the image - * @return the new buffered image - */ - public BufferedImage createCompatibleImage(int width, int height) { - return new BufferedImage(width, height, - BufferedImage.TYPE_INT_ARGB); - } - - /** - * TODO: This should return the page bounds in Pts, - * I couldn't figure out how to get this for the current - * page (this still works for now, - * but it should be fixed...). - * - * @return the bounds of the page - */ - public Rectangle getBounds() { - return null; - } - - /** - * Return a good default color model for this 'device'. - * @return the colour model for the configuration - */ - public ColorModel getColorModel() { - return BI_WITH_ALPHA.getColorModel(); - } - - /** - * Return a good color model given transparency - * - * @param transparency the alpha value for the colour model - * @return the colour model for the configuration - */ - public ColorModel getColorModel(int transparency) { - if (transparency == Transparency.OPAQUE) { - return BI_WITHOUT_ALPHA.getColorModel(); - } else { - return BI_WITH_ALPHA.getColorModel(); - } - } - - private static final Log LOG - = LogFactory.getLog(AFPGraphicsConfiguration.class); - - private AffineTransform defaultTransform = null; - private AffineTransform normalizingTransform = null; - private final GraphicsDevice graphicsDevice = new AFPGraphicsDevice(this);; - - /** - * The default transform (1:1). - * - * @return the default transform for the configuration - */ - public AffineTransform getDefaultTransform() { - LOG.debug("getDefaultTransform()"); - if (defaultTransform == null) { - defaultTransform = new AffineTransform(); - } - return defaultTransform; - } - - /** - * The normalizing transform (1:1) (since we currently - * render images at 72dpi, which we might want to change - * in the future). - * - * @return the normalizing transform for the configuration - */ - public AffineTransform getNormalizingTransform() { - LOG.debug("getNormalizingTransform()"); - if (normalizingTransform == null) { - normalizingTransform = new AffineTransform(2, 0, 0, 2, 0, 0); - } - return normalizingTransform; - } - - /** {@inheritDoc} */ - public GraphicsDevice getDevice() { - LOG.debug("getDevice()"); - return graphicsDevice; - } -} diff --git a/src/java/org/apache/fop/afp/svg/AFPGraphicsDevice.java b/src/java/org/apache/fop/afp/svg/AFPGraphicsDevice.java deleted file mode 100644 index daa25aaa0..000000000 --- a/src/java/org/apache/fop/afp/svg/AFPGraphicsDevice.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* $Id$ */ - -package org.apache.fop.afp.svg; - -import java.awt.GraphicsConfiguration; -import java.awt.GraphicsDevice; - -/** - * This implements the GraphicsDevice interface as appropriate for - * an AFPGraphics2D. - */ -public class AFPGraphicsDevice extends GraphicsDevice { - - /** - * The Graphics Config that created us... - */ - protected GraphicsConfiguration gc; - - /** - * Create a new AF{ graphics device. - * - * @param gc The graphics configuration we should reference - */ - public AFPGraphicsDevice(AFPGraphicsConfiguration gc) { - this.gc = gc; - } - - /** - * Return an array of our one GraphicsConfig - * - * @return an array containing the one graphics configuration - */ - public GraphicsConfiguration[] getConfigurations() { - return new GraphicsConfiguration[] {gc}; - } - - /** - * Return out sole GraphicsConfig. - * - * @return the graphics configuration that created this object - */ - public GraphicsConfiguration getDefaultConfiguration() { - return this.gc; - } - - /** - * Generate an IdString.. - * - * @return the ID string for this device, uses toString - */ - public String getIDstring() { - return toString(); - } - - /** - * Let the caller know that we are "a printer" - * - * @return the type which is always printer - */ - public int getType() { - return GraphicsDevice.TYPE_PRINTER; - } -} diff --git a/src/java/org/apache/fop/svg/PDFGraphics2D.java b/src/java/org/apache/fop/svg/PDFGraphics2D.java index 87c12d869..7517babf2 100644 --- a/src/java/org/apache/fop/svg/PDFGraphics2D.java +++ b/src/java/org/apache/fop/svg/PDFGraphics2D.java @@ -68,6 +68,7 @@ import org.apache.xmlgraphics.image.loader.impl.ImageRawJPEG; import org.apache.xmlgraphics.image.loader.impl.ImageRendered; import org.apache.xmlgraphics.java2d.AbstractGraphics2D; import org.apache.xmlgraphics.java2d.GraphicContext; +import org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency; import org.apache.fop.fonts.Font; import org.apache.fop.fonts.FontInfo; @@ -1765,7 +1766,7 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand */ @Override public GraphicsConfiguration getDeviceConfiguration() { - return new PDFGraphicsConfiguration(); + return new GraphicsConfigurationWithTransparency(); } /** -- 2.39.5