/* $Revision$ $Author$ $Date$
*
* Copyright (C) 2001-2007 Stephan Michels <stephan@vern.chem.tu-berlin.de>
*
* Contact: cdk-devel@lists.sourceforge.net
*
* This program 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.
* All we ask is that proper credit is given for our work, which includes
* - but is not limited to - adding the above copyright notice to the beginning
* of your source code files, and to any copyright notice that you may distribute
* with programs based on this work.
*
* 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
*/
package org.openscience.cdk.renderer;
import java.awt.Color;
import org.openscience.cdk.math.IFunction;
/**
* This class handles a set of function for the GraphRenderer
*
* @author Stephan Michels <stephan@vern.chem.tu-berlin.de>
* @cdk.githash
* @cdk.created 2001-07-02
* @cdk.module qm
*/
public class GraphRendererModel
{
private double xmin = -1d;
private double xmax = +1d;
private double ymin = -1d;
private double ymax = +1d;
private String title = "Main title"; // Main title
private String xtitle = "X title"; // Title of the x axis
private String ytitle = "Y title"; // Title of the y axis
private java.util.Vector functions = new java.util.Vector();
private java.util.Vector colors = new java.util.Vector();
/** Paints the function normal */
public final static int NORMAL = 0;
/** Paints the area below the function */
public final static int BELOWAREA = 1;
/** Paints the area over the function */
public final static int OVERAREA = 2;
private int displaymode = NORMAL;
/**
* Sets the function area, which will painted
*/
public void setX(double xmin, double xmax)
{
if (xmin<xmax)
{
this.xmin = xmin;
this.xmax = xmax;
}
}
/**
* Sets the function area, which will painted
*/
public void setY(double ymin, double ymax)
{
if (ymin<ymax)
{
this.ymin = ymin;
this.ymax = ymax;
}
}
/**
* Gets the function area, which will painted
*/
public double getXMin()
{
return xmin;
}
/**
* Sets the function area, which will painted
*/
public double getXMax()
{
return xmax;
}
/**
* Sets the function area, which will painted
*/
public double getYMin()
{
return ymin;
}
/**
* Sets the function area, which will painted
*/
public double getYMax()
{
return ymax;
}
/**
* Set the main title
*/
public void setTitle(String string)
{
if (string!=null)
title = string;
}
/**
* Get the main title
*/
public String getTitle()
{
return title;
}
/**
* Set the title of the x axis
*/
public void setXTitle(String string)
{
if (string!=null)
xtitle = string;
}
/**
* Get the title of the x axis
*/
public String getXTitle()
{
return xtitle;
}
/**
* Set the title of the y axis
*/
public void setYTitle(String string)
{
if (string!=null)
ytitle = string;
}
/**
* Get the title of the y axis
*/
public String getYTitle()
{
return ytitle;
}
/**
* Set the display mode
*/
public void setDisplayMode(int mode)
{
if ((NORMAL<=mode) && (mode<=OVERAREA))
displaymode = mode;
}
/**
* Get the display mode
*/
public int getDisplayMode()
{
return displaymode;
}
/**
* Add a function to the set of functions
*/
public void addFunction(IFunction function)
{
if ((function!=null) && (!functions.contains(function)))
{
functions.add(function);
colors.add(Color.black);
}
}
/**
* Add a function to the set of functions
*/
public void addFunction(IFunction function, Color color)
{
if ((function!=null) && (!functions.contains(function)))
{
functions.add(function);
colors.add(color);
}
else
colors.setElementAt(color, functions.indexOf(function));
}
/**
* Get the count of functions in this set
*/
public int getFunctionsSize()
{
return functions.size();
}
/**
* Get a function from this set
*/
public IFunction getFunction(int index)
{
return (IFunction) functions.elementAt(index);
}
/**
* Get a color from a function in this set
*/
public Color getFunctionColor(int index)
{
return (Color) colors.elementAt(index);
}
}