Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Creates an awt color instance to match the rgb values of the specified swt color

/*   * JFreeChart : a free chart library for the Java(tm) platform  *   *  * (C) Copyright 2000-2007, by Object Refinery Limited and Contributors.  *  * Project Info:  http://www.jfree.org/jfreechart/index.html  *  * This library is free software; you can redistribute it and/or modify it  * under the terms of the GNU Lesser General Public License as published by  * the Free Software Foundation; either version 2.1 of the License, or  * (at your option) any later version.  *  * This library is distributed in the hope that it will be useful, but  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public  * License for more details.  *  * You should have received a copy of the GNU Lesser General Public  * License along with this library; if not, write to the Free Software  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,  * USA.  *  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.  * in the United States and other countries.]  *  * -------------  * SWTUtils.java  * -------------  * (C) Copyright 2006, 2007, by Henry Proudhon and Contributors.  *  * Original Author:  Henry Proudhon (henry.proudhon AT ensmp.fr);  * Contributor(s):   Rainer Blessing;  *                   David Gilbert (david.gilbert@object-refinery.com);  *                   Christoph Beck.  *  * Changes  * -------  * 01-Aug-2006 : New class (HP);  * 16-Jan-2007 : Use FontData.getHeight() instead of direct field access (RB);  * 31-Jan-2007 : Moved the dummy JPanel from SWTGraphics2D.java,  *               added a new convert method for mouse events (HP);  * 12-Jul-2007 : Improved the mouse event conversion with buttons  *               and modifiers handling, patch sent by Christoph Beck (HP);  * 27-Aug-2007 : Modified toAwtMouseEvent signature (HP);  * 27-Nov-2007 : Moved convertToSWT() method from SWTGraphics2D and added  *               convertAWTImageToSWT() (DG);  * 01-Jul-2008 : Simplify AWT/SWT font style conversions (HP);  *  */ import java.awt.Graphics; import java.awt.Image; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.awt.image.DirectColorModel; import java.awt.image.IndexColorModel; import java.awt.image.WritableRaster; import javax.swing.JPanel; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.PaletteData; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.graphics.Rectangle; /**  * Utility class gathering some useful and general method.  * Mainly convert forth and back graphical stuff between  * awt and swt.  */ public class SWTUtils {     private final static String Az = "ABCpqr";     /** A dummy JPanel used to provide font metrics. */     protected static final JPanel DUMMY_PANEL = new JPanel();     /**      * Create an awt font by converting as much information      * as possible from the provided swt <code>Font</code>.      *      * @param device The swt device to draw on (display or gc device).      * @param font The swt font to convert.      * @return An awt font converted from the provided swt font.      */     public static java.awt.Font toAwtFont(Device device, Font font) {         FontData fontData = font.getFontData()[0];         return toAwtFont(device, fontData, true);     }     /**      * Creates an awt color instance to match the rgb values      * of the specified swt color.      *      * @param color The swt color to match.      * @return an awt color abject.      */     public static java.awt.Color toAwtColor(Color color) {         return new java.awt.Color(color.getRed(), color.getGreen(),                 color.getBlue());     }     /**      * Creates a swt color instance to match the rgb values      * of the specified awt paint. For now, this method test      * if the paint is a color and then return the adequate      * swt color. Otherwise plain black is assumed.      *      * @param device The swt device to draw on (display or gc device).      * @param paint The awt color to match.      * @return a swt color object.      */     public static Color toSwtColor(Device device, java.awt.Paint paint) {         java.awt.Color color;         if (paint instanceof java.awt.Color) {             color = (java.awt.Color) paint;         }         else {             try {                 throw new Exception("only color is supported at present... "                         + "setting paint to uniform black color");             }             catch (Exception e) {                 e.printStackTrace();                 color = new java.awt.Color(0, 0, 0);             }         }         return new org.eclipse.swt.graphics.Color(device,                 color.getRed(), color.getGreen(), color.getBlue());     } }