/* $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); } }