All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.monitorenter.gui.chart.pointpainters.APointPainter Maven / Gradle / Ivy

Go to download

JChart2D is an easy to use component for displaying two- dimensional traces in a coordinate system written in Java.

The newest version!
/*
 *  APointPainter.java of project jchart2d, adapter class 
 *  that implements the optional methods of the interface 
 *  IPointPainter with "no operations". 
 *  Copyright (c) 2006 - 2011 Achim Westermann, created on 03.09.2006 20:27:06.
 *
 *  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 St, Fifth Floor, Boston, MA  02110-1301  USA*
 *  If you modify or optimize the code in a useful way please let me know.
 *  [email protected]
 *
 */
package info.monitorenter.gui.chart.pointpainters;

import info.monitorenter.gui.chart.IPointPainter;
import info.monitorenter.gui.chart.IPointPainterConfigurableUI;
import info.monitorenter.gui.util.ColorMutable;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Stroke;

/**
 * Adapter class that implements optional methods of
 * {@link IPointPainter} as "no operation".
 * 

* * @param * needed for generic comparable. * * @author Achim Westermann * * @version $Revision: 1.13 $ * * @since 3.0.0 */ public abstract class APointPainter> implements IPointPainterConfigurableUI { /** Generated serialVersionUID. **/ private static final long serialVersionUID = -8279972259015294590L; /** Color used for paint operations. */ private final ColorMutable m_color = new ColorMutable(); /** Color used for fill operations. */ private final ColorMutable m_colorFill = new ColorMutable(); /** Stroke used for paint operations. */ private Stroke m_stroke = null; /** * Default constructor (sets the consumed by paint flag to false). *

*/ public APointPainter() { // nop } /** * @see java.lang.Comparable#compareTo(java.lang.Object) */ public final int compareTo(final T arg0) { return this.hashCode() - arg0.hashCode(); } /** * @see info.monitorenter.gui.chart.IPointPainter#endPaintIteration(java.awt.Graphics) */ public void endPaintIteration(final Graphics g2d) { // nop } /** * Caution: {@link ClassCastException} thrown if wrong type * given. *

* * @see java.lang.Object#equals(java.lang.Object) */ // @SuppressWarnings("unchecked") // @Override // public final boolean equals(Object arg0) { // boolean result = false; // if (arg0.getClass() == this.getClass()) { // result = this.compareTo((T) arg0) == 0; // } // return result; // } /** * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (this.getClass() != obj.getClass()) { return false; } final APointPainter< ? > other = (APointPainter< ? >) obj; if (this.m_color == null) { if (other.m_color != null) { return false; } } else if (!this.m_color.equals(other.m_color)) { return false; } if (this.m_colorFill == null) { if (other.m_colorFill != null) { return false; } } else if (!this.m_colorFill.equals(other.m_colorFill)) { return false; } if (this.m_stroke == null) { if (other.m_stroke != null) { return false; } } else if (!this.m_stroke.equals(other.m_stroke)) { return false; } return true; } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#getColor() */ public Color getColor() { return this.m_color.getColor(); } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#getColorFill() */ public Color getColorFill() { return this.m_colorFill.getColor(); } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#getStroke() */ public Stroke getStroke() { return this.m_stroke; } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#getTransparency() */ public int getTransparency() { return this.m_color.getAlpha(); } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#getTransparencyFill() */ public int getTransparencyFill() { return this.m_colorFill.getAlpha(); } /** * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((this.m_color == null) ? 0 : this.m_color.hashCode()); result = prime * result + ((this.m_colorFill == null) ? 0 : this.m_colorFill.hashCode()); result = prime * result + ((this.m_stroke == null) ? 0 : this.m_stroke.hashCode()); return result; } /** * Installs the color to the graphics context if and only if a color has been * set. *

* * @see #setColor(Color) * * @param g * the graphics context to use. * * @return the previous color of the graphics context or null if * no action was taken. */ protected Color installColor(final Graphics g) { return this.m_color.applyColorIfChange(g); } /** * Installs the fill color to the graphics context if and only if a fill color * has been set. *

* * @see #setColorFill(Color) * * @param g * the graphics context to use. * * @return the previous color of the graphics context or null if * no action was taken. */ protected Color installColorFill(final Graphics g) { return this.m_colorFill.applyColorUnconditionally(g); } /** * Installs the stroke to the graphics context if and only if a stroke has * been set. *

* * @see #setStroke(Stroke) * * @param g * the graphics context to use. * * @return the previous stroke of the graphics context or null if * no action was taken. */ protected Stroke installStroke(final Graphics g) { Stroke result = null; if (this.m_stroke != null) { if (g instanceof Graphics2D) { final Graphics2D g2d = (Graphics2D) g; result = g2d.getStroke(); g2d.setStroke(this.m_stroke); } else { System.out.println("Cannot use stroke as given graphic context is of wrong type: " + g.getClass().getName()); } } return result; } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#setColor(java.awt.Color) */ public Color setColor(final Color color) { final Color result = this.m_color.setColor(color); return result; } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#setColorFill(java.awt.Color) */ public Color setColorFill(final Color fillColor) { return this.m_colorFill.setColor(fillColor); } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#setStroke(java.awt.Stroke) */ public Stroke setStroke(final Stroke stroke) { final Stroke result = this.m_stroke; this.m_stroke = stroke; return result; } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#setTransparency(int) */ public int setTransparency(final int transparency0to255) { return this.m_color.setAlpha(transparency0to255); } /** * @see info.monitorenter.gui.chart.IPointPainterConfigurableUI#setTransparencyFill(int) */ public int setTransparencyFill(final int transparency0to255) { return this.m_colorFill.setAlpha(transparency0to255); } /** * @see info.monitorenter.gui.chart.IPointPainter#startPaintIteration(java.awt.Graphics) */ public void startPaintIteration(final Graphics g2d) { // nop } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy