/************************************************************************** /* This class is part of the Java Plotlib Toolkit. /* /* Copyright (c) 1999-2004 by Bernhard Bablok (bablokb@gmx.de) /* /* 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 Library General Public License for more details. /* /* You should have received a copy of the GNU General Public License /* along with this program; see the file COPYING. If not, write to /* the Free Software Foundation Inc., 59 Temple Place - Suite 330, /* Boston, MA 02111-1307 USA /**************************************************************************/ package de.bablokb.plotlib.plot; import java.util.*; import java.awt.*; import java.awt.geom.*; import de.bablokb.plotlib.core.*; import de.bablokb.plotlib.data.*; /** For every datapoint, plot a line from the x-axis to the datapoint. @version $Revision: 1.3 $ @author $Author: bablokb $ */ public class BarPlot extends DataPlot { /** Baseline (usually value of y-coordinate of x-axis). */ private float iBase = 0; ////////////////////////////////////////////////////////////////////////////// /** Construct a BarPlot-object without data. */ public BarPlot() { super(); } ////////////////////////////////////////////////////////////////////////////// /** Construct a BarPlot-object from a given dataset. */ public BarPlot(Dataset data) { super(data); } ////////////////////////////////////////////////////////////////////////////// /** Set the value of the baseline. */ public void setBase(float base) { iBase = base; } ////////////////////////////////////////////////////////////////////////////// /** Plot the data. Implements AbstractPlottable.plotObjects. */ public void plotObjects(PlottingContext pc) { if (iData == null) throw new MissingDatasetException(); GeneralPath gp = new GeneralPath(); Iterator it = iData.iterator(); while (it.hasNext()) { Point2D p = (Point2D) it.next(), base = (Point2D) p.clone(); base.setLocation(p.getX(),iBase); p = pc.transform(p); base = pc.transform(base); gp.moveTo((float) base.getX(), (float) base.getY()); gp.lineTo((float) p.getX(), (float) p.getY()); } Graphics2D g2 = pc.getG2(); g2.draw(gp); } }