diff options
Diffstat (limited to 'awt/java/awt/GraphicsConfiguration.java')
-rw-r--r-- | awt/java/awt/GraphicsConfiguration.java | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/awt/java/awt/GraphicsConfiguration.java b/awt/java/awt/GraphicsConfiguration.java new file mode 100644 index 0000000..8bec253 --- /dev/null +++ b/awt/java/awt/GraphicsConfiguration.java @@ -0,0 +1,217 @@ +/* + * 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. + */ +/** + * @author Alexey A. Petrenko + * @version $Revision$ + */ +package java.awt; + +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.VolatileImage; + +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The GraphicsConfiguration class contains the characteristics of graphics + * devices such as a printer or monitor, and represents device's capabilities + * and modes. Many GraphicsConfiguration objects can be associated with + * single graphics device. + */ +public abstract class GraphicsConfiguration { + + /** + * Constructor could not be used directly and should be obtained in + * extended classes. + */ + + protected GraphicsConfiguration() { + } + + + /** + * Creates BufferedImage image object with a data layout and color model + * compatible with this GraphicsConfiguration with specified width + * and height parameters. + * + * @param width the width of BufferedImage. + * @param height the height of BufferedImage. + * + * @return the BufferedImage object with specified width and height + * parameters. + */ + public abstract BufferedImage createCompatibleImage(int width, int height); + + /** + * Creates a BufferedImage that has the specified width, height, + * transparency and has a data layout and color model compatible with this + * GraphicsConfiguration. + * + * @param width the width of image. + * @param height the height of image. + * @param transparency the transparency mode. + * + * @return the BufferedImage object. + */ + public abstract BufferedImage createCompatibleImage(int width, int height, int transparency); + + /** + * Creates a VolatileImage that has the specified width and height + * and has a data layout and color model compatible with this + * GraphicsConfiguration. + * + * @param width the width of image. + * @param height the height of image. + * + * @return the VolatileImage object. + */ + public abstract VolatileImage createCompatibleVolatileImage(int width, int height); + + /** + * Creates a VolatileImage that supports the specified width, height, + * transparency and has a data layout and color model compatible with this + * GraphicsConfiguration. + * + * @param width the width of image. + * @param height the height of image. + * @param transparency the transparency mode. + * + * @return the VolatileImage object. + */ + public abstract VolatileImage createCompatibleVolatileImage(int width, int height, int transparency); + + /** + * Gets the bounds of area covered by the GraphicsConfiguration in the + * device coordinates space. + * + * @return the Rectangle of GraphicsConfiguration's bounds. + */ + public abstract Rectangle getBounds(); + + /** + * Gets the ColorModel of the GraphicsConfiguration. + * + * @return the ColorModel object of the GraphicsConfiguration. + */ + public abstract ColorModel getColorModel(); + + /** + * Gets the ColorModel of the GraphicsConfiguration which + * supports specified Transparency. + * + * @param transparency the Transparency mode: OPAQUE, BITMASK, or + * TRANSLUCENT. + * + * @return the ColorModel of the GraphicsConfiguration which + * supports specified Transparency. + */ + public abstract ColorModel getColorModel(int transparency); + + /** + * Gets the default AffineTransform of the GraphicsConfiguration. + * This method translates user coordinates to device coordinates. + * + * @return the default AffineTransform of the GraphicsConfiguration. + */ + public abstract AffineTransform getDefaultTransform(); + + /** + * Gets the GraphicsDevice of the GraphicsConfiguration. + * + * @return the GraphicsDevice of the GraphicsConfiguration. + */ + public abstract GraphicsDevice getDevice(); + + /** + * Gets the normalizing AffineTransform of the GraphicsConfiguration. + * + * @return the normalizing AffineTransform of the GraphicsConfiguration. + */ + public abstract AffineTransform getNormalizingTransform(); + + + /** + * Creates VolatileImage with specified width, height, ImageCapabilities; + * a data layout and color model compatible with this GraphicsConfiguration. + * + * @param width the width of image. + * @param height the height of image. + * @param caps the ImageCapabilities object. + * + * @return the VolatileImage which data layout and color model compatible + * with this GraphicsConfiguration. + * + * @throws AWTException if ImageCapabilities is not supported by the + * GraphicsConfiguration. + */ + public VolatileImage createCompatibleVolatileImage(int width, int height, + ImageCapabilities caps) throws AWTException { + VolatileImage res = createCompatibleVolatileImage(width, height); + if (!res.getCapabilities().equals(caps)) { + // awt.14A=Can not create VolatileImage with specified capabilities + throw new AWTException(Messages.getString("awt.14A")); //$NON-NLS-1$ + } + return res; + } + + /** + * Creates a VolatileImage with specified width, height, transparency + * and ImageCapabilities; a data layout and color model compatible with + * this GraphicsConfiguration. + * + * @param width the width of image. + * @param height the height of image. + * @param caps the ImageCapabilities object. + * @param transparency the Transparency mode: OPAQUE, BITMASK, or + * TRANSLUCENT. + * + * @return the VolatileImage which data layout and color model compatible + * with this GraphicsConfiguration. + * + * @throws AWTException if ImageCapabilities is not supported by the + * GraphicsConfiguration. + */ + public VolatileImage createCompatibleVolatileImage(int width, int height, + ImageCapabilities caps, int transparency) throws AWTException { + VolatileImage res = createCompatibleVolatileImage(width, height, transparency); + if (!res.getCapabilities().equals(caps)) { + // awt.14A=Can not create VolatileImage with specified capabilities + throw new AWTException(Messages.getString("awt.14A")); //$NON-NLS-1$ + } + return res; + } + + /** + * Gets the buffering capabilities of the GraphicsConfiguration. + * + * @return the BufferCapabilities object. + */ + public BufferCapabilities getBufferCapabilities() { + return new BufferCapabilities(new ImageCapabilities(false), new ImageCapabilities(false), + BufferCapabilities.FlipContents.UNDEFINED); + } + + /** + * Gets the image capabilities of the GraphicsConfiguration. + * + * @return the ImageCapabilities object. + */ + public ImageCapabilities getImageCapabilities() { + return new ImageCapabilities(false); + } +} |