![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.jasperreports.chartthemes.spring.ScaledDialRange Maven / Gradle / Ivy
/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2019 TIBCO Software Inc. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports 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 3 of the License, or
* (at your option) any later version.
*
* JasperReports 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 JasperReports. If not, see .
*/
package net.sf.jasperreports.chartthemes.spring;
import java.awt.BasicStroke;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.geom.Arc2D;
import java.awt.geom.Rectangle2D;
import org.jfree.chart.plot.dial.DialPlot;
import org.jfree.chart.plot.dial.DialScale;
import org.jfree.chart.plot.dial.StandardDialRange;
import net.sf.jasperreports.engine.JRConstants;
/**
* @author Sanda Zaharia ([email protected])
*/
public class ScaledDialRange extends StandardDialRange
{
private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;
private float lineWidth = 2f;
/**
*
*/
public ScaledDialRange()
{
super();
}
/**
* @param lower
* @param upper
* @param paint
*/
public ScaledDialRange(double lower, double upper, Paint paint)
{
super(lower, upper, paint);
}
/**
* @param lower
* @param upper
* @param paint
* @param lineWidth
*/
public ScaledDialRange(double lower, double upper, Paint paint, float lineWidth)
{
super(lower, upper, paint);
this.lineWidth = lineWidth;
}
/**
* Draws the range.
*
* @param g2 the graphics target.
* @param plot the plot.
* @param frame the dial's reference frame (in Java2D space).
* @param view the dial's view rectangle (in Java2D space).
*/
@Override
public void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame,
Rectangle2D view) {
Rectangle2D arcRectInner = DialPlot.rectangleByRadius(frame,
this.getInnerRadius(), this.getInnerRadius());
Rectangle2D arcRectOuter = DialPlot.rectangleByRadius(frame,
this.getOuterRadius(), this.getOuterRadius());
DialScale scale = plot.getScale(this.getScaleIndex());
if (scale == null) {
throw new RuntimeException("No scale for scaleIndex = "
+ this.getScaleIndex());
}
double angleMin = scale.valueToAngle(this.getLowerBound());
double angleMax = scale.valueToAngle(this.getUpperBound());
Arc2D arcInner = new Arc2D.Double(arcRectInner, angleMin,
angleMax - angleMin, Arc2D.OPEN);
Arc2D arcOuter = new Arc2D.Double(arcRectOuter, angleMax,
angleMin - angleMax, Arc2D.OPEN);
g2.setPaint(this.getPaint());
g2.setStroke(new BasicStroke(this.lineWidth, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
g2.draw(arcInner);
g2.draw(arcOuter);
}
/**
* Tests this instance for equality with an arbitrary object.
*
* @param obj the object (null
permitted).
*
* @return A boolean.
*/
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj.getClass().equals(this.getClass()))) {
return false;
}
ScaledDialRange that = (ScaledDialRange) obj;
if (this.lineWidth != that.lineWidth) {
return false;
}
return super.equals(obj);
}
/**
* Returns a hash code for this instance.
*
* @return The hash code.
*/
@Override
public int hashCode() {
int temp = Float.floatToIntBits(this.lineWidth);
return 37 * super.hashCode() + (temp ^ (temp >>> 32));
}
/**
* Returns a clone of this instance.
*
* @return A clone.
*
* @throws CloneNotSupportedException if any of the attributes of this
* instance cannot be cloned.
*/
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy