/* * org.openmicroscopy.shoola.agents.imviewer.util.ImagePaintingFactory * *------------------------------------------------------------------------------ * Copyright (C) 2006-2015 University of Dundee. All rights reserved. * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * *------------------------------------------------------------------------------ */ package org.openmicroscopy.shoola.agents.imviewer.util; //Java imports import java.awt.BasicStroke; import java.awt.Color; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.RenderingHints; //Third-party libraries //Application-internal dependencies /** * Collection of helper methods used to paint images. * * @author Jean-Marie Burel      * <a href="mailto:j.burel@dundee.ac.uk">j.burel@dundee.ac.uk</a> * @author Donald MacDonald      * <a href="mailto:donald@lifesci.dundee.ac.uk">donald@lifesci.dundee.ac.uk</a> * @version 3.0 * <small> * (<b>Internal version:</b> $Revision: $ $Date: $) * </small> * @since OME2.2 */ public class ImagePaintingFactory { /** The default color of the background. */ public static final Color DEFAULT_BACKGROUND = new Color(200, 200, 200); /** Name of the default default color of the background. */ public static final String DEFAULT_BACKGROUND_NAME = "Default background"; /** Color of the scale bar. */ public static final Color UNIT_BAR_COLOR = Color.GRAY; /** Name of the default color of the scale bar. */ public static final String UNIT_BAR_COLOR_NAME = "Gray"; /** Stroke of the scale bar. */ private static final BasicStroke UNIT_BAR_STROKE = new BasicStroke(2.0f); /** * Paints the XY-frame. * * @param g2D The graphics context. */ /* private void paintXYFrame(Graphics2D g2D) { g2D.setColor(AXIS_COLOR); FontMetrics fontMetrics = g2D.getFontMetrics(); int hFont = fontMetrics.getHeight()/4; int x1 = ORIGIN_FRAME; int y1 = ORIGIN_FRAME; g2D.drawLine(x1, y1, x1+LENGTH, y1); g2D.drawLine(x1+LENGTH-ARROW, y1-ARROW, x1+LENGTH, y1); g2D.drawLine(x1+LENGTH-ARROW, y1+ARROW, x1+LENGTH, y1); //y-axis g2D.drawLine(x1, y1, x1, y1+LENGTH); g2D.drawLine(x1-ARROW, y1+LENGTH-ARROW, x1, y1+LENGTH); g2D.drawLine(x1+ARROW, y1+LENGTH-ARROW, x1, y1+LENGTH); //name g2D.drawString("o", x1-hFont, y1-hFont); g2D.drawString("x", x1+LENGTH/2, y1-hFont); g2D.drawString("y", x1-2*hFont, y1+LENGTH-hFont); } */ /** * Sets the value of the for the rendering algorithms (interpolation * enabled by default) * * @param g2D The graphics context. */ public static void setGraphicRenderingSettings(Graphics2D g2D) { setGraphicRenderingSettings(g2D, true); } /** * Sets the value of the for the rendering algorithms. * * @param g2D The graphics context. * @param interpolate Pass <code>false</code> to disable interpolation */ public static void setGraphicRenderingSettings(Graphics2D g2D, boolean interpolate) { g2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); if (interpolate) { g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); } else { g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); } } /** * Paints a scale bar. * * @param g2D The graphics context. * @param x The x-coordinate of the bar. * @param y The y-coordinate of the bar. * @param l The length of the bar. * @param s The text displayed on of the bar. */ public static void paintScaleBar(Graphics2D g2D, int x, int y, int l, String s) { paintScaleBar(g2D, x, y, l, s, UNIT_BAR_COLOR); } /** * Paints a scale bar. * * @param g2D The graphics context. * @param x The x-coordinate of the bar. * @param y The y-coordinate of the bar. * @param l The length of the bar. * @param s The text displayed on of the bar. * @param c The color of the scale bar. If <code>null</code> the default * color is set. */ public static void paintScaleBar(Graphics2D g2D, int x, int y, int l, String s, Color c) { FontMetrics fontMetrics = g2D.getFontMetrics(); int hFont = fontMetrics.getHeight()/3; if (c == null) c = UNIT_BAR_COLOR; g2D.setColor(c); g2D.drawString(s, x+(l-fontMetrics.stringWidth(s))/2+1, y-hFont); g2D.setStroke(UNIT_BAR_STROKE); g2D.drawLine(x, y, x+l, y); } }