mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/fom/FOMGraph.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2004, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 3 All rights reserved.
2 26 Feb 07 jari 4  */
2 26 Feb 07 jari 5 /*
2 26 Feb 07 jari 6  * $RCSfile: FOMGraph.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.9 $
2 26 Feb 07 jari 8  * $Date: 2006/03/24 15:50:09 $
2 26 Feb 07 jari 9  * $Author: eleanorahowe $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12 package org.tigr.microarray.mev.cluster.gui.impl.fom;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.awt.Color;
2 26 Feb 07 jari 15 import java.awt.Dimension;
2 26 Feb 07 jari 16 import java.awt.FontMetrics;
2 26 Feb 07 jari 17 import java.awt.Graphics;
2 26 Feb 07 jari 18 import java.awt.Graphics2D;
2 26 Feb 07 jari 19 import java.awt.Insets;
2 26 Feb 07 jari 20 import java.awt.Point;
2 26 Feb 07 jari 21 import java.awt.RenderingHints;
2 26 Feb 07 jari 22 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 23 import java.awt.event.ActionListener;
2 26 Feb 07 jari 24 import java.awt.event.MouseEvent;
2 26 Feb 07 jari 25 import java.awt.event.MouseListener;
2 26 Feb 07 jari 26 import java.awt.event.MouseMotionAdapter;
2 26 Feb 07 jari 27 import java.awt.image.BufferedImage;
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29 import javax.swing.JCheckBoxMenuItem;
2 26 Feb 07 jari 30 import javax.swing.JPanel;
2 26 Feb 07 jari 31 import javax.swing.JPopupMenu;
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33 public class FOMGraph extends JPanel implements java.io.Serializable {
2 26 Feb 07 jari 34     public static final long serialVersionUID = 202003060001L;
2 26 Feb 07 jari 35     
2 26 Feb 07 jari 36     private float[] values;
2 26 Feb 07 jari 37     private float [][] iValues;
2 26 Feb 07 jari 38     private float[] variances;
2 26 Feb 07 jari 39     private String[] xItems;
2 26 Feb 07 jari 40     private String[] yItems;
2 26 Feb 07 jari 41     private String title, xLabel, yLabel;
2 26 Feb 07 jari 42     private Insets insets;
2 26 Feb 07 jari 43     private boolean isAntiAliasing = false;
2 26 Feb 07 jari 44     
2 26 Feb 07 jari 45     private int maxXItem, maxYItem;
2 26 Feb 07 jari 46     private float maxYValue = 1f;
2 26 Feb 07 jari 47     private Color pointColor = Color.red;
2 26 Feb 07 jari 48     private Color valuesLineColor = Color.blue;
2 26 Feb 07 jari 49     private Color iterationLineColor = Color.lightGray;
2 26 Feb 07 jari 50     private Color sdLineColor = Color.darkGray;
2 26 Feb 07 jari 51     private Color mouseLineColor = Color.magenta;
2 26 Feb 07 jari 52     private Color gridLineColor = Color.yellow;
2 26 Feb 07 jari 53     private Color axisLineColor = Color.black;
2 26 Feb 07 jari 54     private int pointSize = 5;
2 26 Feb 07 jari 55     
2 26 Feb 07 jari 56     private boolean haveIValues;
2 26 Feb 07 jari 57     private boolean showVariance;
2 26 Feb 07 jari 58     private boolean showIValues;
2 26 Feb 07 jari 59     
2 26 Feb 07 jari 60     private JPopupMenu menu;
2 26 Feb 07 jari 61     private JCheckBoxMenuItem menuItem;
2 26 Feb 07 jari 62     
2 26 Feb 07 jari 63     private MouseHandler mouseHandler;
2 26 Feb 07 jari 64     
2 26 Feb 07 jari 65     public FOMGraph(float[] values, float [] variances, String title, String xLabel, String yLabel, boolean showVariance) {
2 26 Feb 07 jari 66         if (values == null) {
2 26 Feb 07 jari 67             throw new IllegalArgumentException("values == null");
2 26 Feb 07 jari 68         }
2 26 Feb 07 jari 69         setBackground(Color.white);
2 26 Feb 07 jari 70         this.insets = new Insets(60, 60, 60, 60);
2 26 Feb 07 jari 71         this.showVariance = showVariance;
2 26 Feb 07 jari 72         this.values = values;
2 26 Feb 07 jari 73         this.variances = variances;
2 26 Feb 07 jari 74         this.title = title;
2 26 Feb 07 jari 75         this.xLabel = xLabel;
2 26 Feb 07 jari 76         this.yLabel = yLabel;
2 26 Feb 07 jari 77         this.mouseHandler = new MouseHandler();
2 26 Feb 07 jari 78         addMouseMotionListener(mouseHandler);
2 26 Feb 07 jari 79         addMouseListener(mouseHandler);
2 26 Feb 07 jari 80     }
2 26 Feb 07 jari 81     public FOMGraph(){
2 26 Feb 07 jari 82         setBackground(Color.white);
2 26 Feb 07 jari 83         this.mouseHandler = new MouseHandler();
2 26 Feb 07 jari 84         addMouseMotionListener(mouseHandler);
2 26 Feb 07 jari 85         addMouseListener(mouseHandler);
2 26 Feb 07 jari 86     }
2 26 Feb 07 jari 87     
2 26 Feb 07 jari 88     public void setItems(String[] xItems, String[] yItems) {
2 26 Feb 07 jari 89         this.xItems = xItems;
2 26 Feb 07 jari 90         this.yItems = yItems;
2 26 Feb 07 jari 91         this.maxXItem = getMaxWidth(xItems);
2 26 Feb 07 jari 92         this.maxYItem = getMaxWidth(yItems);
2 26 Feb 07 jari 93     }
2 26 Feb 07 jari 94     
2 26 Feb 07 jari 95     public void setFOMIterationValues(float [][] values) {
2 26 Feb 07 jari 96         iValues = values;
2 26 Feb 07 jari 97         if(iValues != null) {
2 26 Feb 07 jari 98             haveIValues = true;
2 26 Feb 07 jari 99             showIValues = false;
2 26 Feb 07 jari 100             createJPopupMenu();
2 26 Feb 07 jari 101         }
2 26 Feb 07 jari 102     }
2 26 Feb 07 jari 103     
2 26 Feb 07 jari 104     public void createJPopupMenu() {
2 26 Feb 07 jari 105         MouseHandler mh = new MouseHandler();
2 26 Feb 07 jari 106         menuItem = new JCheckBoxMenuItem("Show Iteration Values", false);
2 26 Feb 07 jari 107         menuItem.addActionListener(mh);
2 26 Feb 07 jari 108         menuItem.setFocusPainted(false);
2 26 Feb 07 jari 109         menu = new JPopupMenu();
2 26 Feb 07 jari 110         menu.add(menuItem);
2 26 Feb 07 jari 111     }
2 26 Feb 07 jari 112     
2 26 Feb 07 jari 113     public void setMaxYValue(float value) {
2 26 Feb 07 jari 114         this.maxYValue = value;
2 26 Feb 07 jari 115     }
2 26 Feb 07 jari 116     
2 26 Feb 07 jari 117     public BufferedImage getImage() {
2 26 Feb 07 jari 118         BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_3BYTE_BGR);  //need to use this type for image creation
2 26 Feb 07 jari 119         Graphics2D g = image.createGraphics();
2 26 Feb 07 jari 120         g.setColor(Color.white);
2 26 Feb 07 jari 121         g.fillRect(0, 0, image.getWidth(), image.getHeight());
2 26 Feb 07 jari 122         paint(g);
2 26 Feb 07 jari 123         return image;
2 26 Feb 07 jari 124     }
2 26 Feb 07 jari 125     
2 26 Feb 07 jari 126     /**
2 26 Feb 07 jari 127      * Sets the anti-aliasing attribute.
2 26 Feb 07 jari 128      */
2 26 Feb 07 jari 129     public void setAntiAliasing(boolean value) {
2 26 Feb 07 jari 130         this.isAntiAliasing = value;
2 26 Feb 07 jari 131     }
2 26 Feb 07 jari 132     
2 26 Feb 07 jari 133     public void paint(Graphics g1D) {
2 26 Feb 07 jari 134         super.paint(g1D);
2 26 Feb 07 jari 135         Graphics2D g = (Graphics2D)g1D;
2 26 Feb 07 jari 136         FontMetrics metrics = g.getFontMetrics();
2 26 Feb 07 jari 137         int descent = metrics.getDescent();
2 26 Feb 07 jari 138         if (this.isAntiAliasing) {
2 26 Feb 07 jari 139             g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
2 26 Feb 07 jari 140             g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
2 26 Feb 07 jari 141         }
2 26 Feb 07 jari 142         
2 26 Feb 07 jari 143         Dimension size = getSize();
2 26 Feb 07 jari 144         final int left = this.insets.left+this.maxYItem;
2 26 Feb 07 jari 145         final int top = this.insets.top;
2 26 Feb 07 jari 146         final int width = size.width - left - this.insets.right;
2 26 Feb 07 jari 147         final int height = size.height - this.insets.bottom - top - this.maxXItem;
2 26 Feb 07 jari 148         final float xScale = (float)width/(float)(this.values.length-1);
2 26 Feb 07 jari 149         final float yScale = (float)height/this.maxYValue;
2 26 Feb 07 jari 150         
2 26 Feb 07 jari 151         int strWidth;
2 26 Feb 07 jari 152         // draw title
2 26 Feb 07 jari 153         strWidth = metrics.stringWidth(this.title);
2 26 Feb 07 jari 154         g.drawString(this.title, left+(width-strWidth)/2, (this.insets.top+descent)/2);
2 26 Feb 07 jari 155         // draw xLabel
2 26 Feb 07 jari 156         strWidth = metrics.stringWidth(this.xLabel);
2 26 Feb 07 jari 157         g.drawString(this.xLabel, left+(width-strWidth)/2, this.insets.top+height+this.maxXItem+(this.insets.top+descent)/2);
2 26 Feb 07 jari 158         // draw yLabel
2 26 Feb 07 jari 159         strWidth = metrics.stringWidth(this.yLabel);
2 26 Feb 07 jari 160         g.rotate(-Math.PI/2.0);
2 26 Feb 07 jari 161         g.drawString(this.yLabel, -(this.insets.top+(height+strWidth)/2), (this.insets.left+descent)/2);
2 26 Feb 07 jari 162         g.rotate(Math.PI/2.0);
2 26 Feb 07 jari 163         // draw grid
2 26 Feb 07 jari 164         g.setColor(this.gridLineColor);
2 26 Feb 07 jari 165         if (this.yItems != null) {
2 26 Feb 07 jari 166             final float yItemsStep = height/(float)(this.yItems.length-1);
2 26 Feb 07 jari 167             for (int i=0; i<this.yItems.length; i++) {
2 26 Feb 07 jari 168                 if (this.yItems[this.yItems.length-i-1] != null) {
2 26 Feb 07 jari 169                     g.drawLine(left, top+(int)Math.round(i*yItemsStep), left+width, top+(int)Math.round(i*yItemsStep));
2 26 Feb 07 jari 170                 }
2 26 Feb 07 jari 171             }
2 26 Feb 07 jari 172         }
2 26 Feb 07 jari 173         if (this.xItems != null) {
2 26 Feb 07 jari 174             final float xItemsStep = width/(float)(this.xItems.length-1);
2 26 Feb 07 jari 175             for (int i=0; i<this.xItems.length; i++) {
2 26 Feb 07 jari 176                 if (this.xItems[i] != null) {
2 26 Feb 07 jari 177                     g.drawLine(left+(int)Math.round(i*xItemsStep), top, left+(int)Math.round(i*xItemsStep), top+height);
2 26 Feb 07 jari 178                 }
2 26 Feb 07 jari 179             }
2 26 Feb 07 jari 180         }
2 26 Feb 07 jari 181         // draw vertical line
2 26 Feb 07 jari 182         g.setColor(this.axisLineColor);
2 26 Feb 07 jari 183         g.drawLine(left, top, left, top+height);
2 26 Feb 07 jari 184         // draw y items
2 26 Feb 07 jari 185         if (this.yItems != null) {
2 26 Feb 07 jari 186             final float yItemsStep = height/(float)(this.yItems.length-1);
2 26 Feb 07 jari 187             for (int i=0; i<this.yItems.length; i++) {
2 26 Feb 07 jari 188                 g.drawLine(left-5, top+(int)Math.round(i*yItemsStep), left+5, top+(int)Math.round(i*yItemsStep));
2 26 Feb 07 jari 189                 if (this.yItems[this.yItems.length-i-1] != null) {
2 26 Feb 07 jari 190                     g.drawString(this.yItems[this.yItems.length-i-1], left-7-metrics.stringWidth(this.yItems[this.yItems.length-i-1]), top+(int)Math.round(i*yItemsStep)+descent);
2 26 Feb 07 jari 191                 }
2 26 Feb 07 jari 192             }
2 26 Feb 07 jari 193         }
2 26 Feb 07 jari 194         // draw x items
2 26 Feb 07 jari 195         if (this.xItems != null) {
2 26 Feb 07 jari 196             final float xItemsStep = width/(float)(this.xItems.length-1);
2 26 Feb 07 jari 197             for (int i=0; i<this.xItems.length; i++) {
2 26 Feb 07 jari 198                 g.drawLine(left+(int)Math.round(i*xItemsStep), top+height-5, left+(int)Math.round(i*xItemsStep), top+height+5);
2 26 Feb 07 jari 199             }
2 26 Feb 07 jari 200             g.rotate(-Math.PI/2.0);
2 26 Feb 07 jari 201             final int bottom = top+height+7;
2 26 Feb 07 jari 202             for (int i=0; i<this.xItems.length; i++) {
2 26 Feb 07 jari 203                 if (this.xItems[i] != null) {
2 26 Feb 07 jari 204                     g.drawString(this.xItems[i], -(bottom+metrics.stringWidth(this.xItems[i])), left+(int)Math.round(i*xItemsStep)+descent);
2 26 Feb 07 jari 205                 }
2 26 Feb 07 jari 206             }
2 26 Feb 07 jari 207             g.rotate(Math.PI/2.0);
2 26 Feb 07 jari 208         }
2 26 Feb 07 jari 209         // draw horizontal line
2 26 Feb 07 jari 210         g.drawLine(left, top+height, left+width, top+height);
2 26 Feb 07 jari 211         
2 26 Feb 07 jari 212         // draw value lines
2 26 Feb 07 jari 213         g.setColor(this.valuesLineColor);
2 26 Feb 07 jari 214         int x1, y1, x2, y2, sdY, sdX;
2 26 Feb 07 jari 215         
2 26 Feb 07 jari 216         //show the iteration fom values
2 26 Feb 07 jari 217         if(showIValues) {            
2 26 Feb 07 jari 218             g.setColor(this.iterationLineColor);
2 26 Feb 07 jari 219             for (int i=0; i<this.iValues.length; i++) {
2 26 Feb 07 jari 220                 for(int j = 0; j < iValues[i].length-1; j++) {                    
2 26 Feb 07 jari 221                     x1 = left+Math.round(j*xScale);
2 26 Feb 07 jari 222                     y1 = top+height-Math.round(this.iValues[i][j]*yScale);
2 26 Feb 07 jari 223                     x2 = left+Math.round((j+1)*xScale);
2 26 Feb 07 jari 224                     y2 = top+height-Math.round(this.iValues[i][j+1]*yScale);
2 26 Feb 07 jari 225                     g.drawLine(x1, y1, x2, y2);
2 26 Feb 07 jari 226                 }
2 26 Feb 07 jari 227             }
2 26 Feb 07 jari 228         }
2 26 Feb 07 jari 229         
2 26 Feb 07 jari 230         for (int i=0; i<this.values.length-1; i++) {
2 26 Feb 07 jari 231             g.setColor(this.valuesLineColor);
2 26 Feb 07 jari 232             x1 = left+Math.round(i*xScale);
2 26 Feb 07 jari 233             y1 = top+height-Math.round(this.values[i]*yScale);
2 26 Feb 07 jari 234             x2 = left+Math.round((i+1)*xScale);
2 26 Feb 07 jari 235             y2 = top+height-Math.round(this.values[i+1]*yScale);
2 26 Feb 07 jari 236             g.drawLine(x1, y1, x2, y2);
2 26 Feb 07 jari 237             g.drawLine(x1, y1-1, x2, y2-1);
2 26 Feb 07 jari 238             
2 26 Feb 07 jari 239             if(showVariance) {
2 26 Feb 07 jari 240                 g.setColor(this.sdLineColor);
2 26 Feb 07 jari 241                 sdX = x2;
2 26 Feb 07 jari 242                 sdY = y2;
2 26 Feb 07 jari 243                 
2 26 Feb 07 jari 244                 //get coordinates
2 26 Feb 07 jari 245                 x1 = left+Math.round((i+1)*xScale) - 3;
2 26 Feb 07 jari 246                 x2 = x2 + 3;
2 26 Feb 07 jari 247                 y1 = top+height-Math.round((this.values[i+1]+this.variances[i+1])*yScale);
2 26 Feb 07 jari 248                 y2 = top+height-Math.round((this.values[i+1]-this.variances[i+1])*yScale);
2 26 Feb 07 jari 249                 //draw caps
2 26 Feb 07 jari 250                 g.drawLine(x1, y1, x2, y1);
2 26 Feb 07 jari 251                 g.drawLine(x1, y2, x2, y2);
2 26 Feb 07 jari 252                 //draw sd lines
2 26 Feb 07 jari 253                 g.drawLine(sdX, sdY, sdX, y1);
2 26 Feb 07 jari 254                 g.drawLine(sdX, sdY, sdX, y2);
2 26 Feb 07 jari 255             }
2 26 Feb 07 jari 256             
2 26 Feb 07 jari 257         }
2 26 Feb 07 jari 258         // draw value points
2 26 Feb 07 jari 259         g.setColor(this.pointColor);
2 26 Feb 07 jari 260         for (int i=0; i<this.values.length; i++) {
2 26 Feb 07 jari 261             g.fillOval(left+Math.round(i*xScale)-this.pointSize/2, top+height-Math.round(this.values[i]*yScale)-this.pointSize/2, this.pointSize, this.pointSize);
2 26 Feb 07 jari 262         }
2 26 Feb 07 jari 263         this.mouseHandler.validate();
2 26 Feb 07 jari 264     }
2 26 Feb 07 jari 265     
2 26 Feb 07 jari 266     private int getMaxWidth(String[] items) {
2 26 Feb 07 jari 267         if (items == null) {
2 26 Feb 07 jari 268             return 0;
2 26 Feb 07 jari 269         }
2 26 Feb 07 jari 270         FontMetrics metrics = getFontMetrics(getFont());
2 26 Feb 07 jari 271         int width = 0;
2 26 Feb 07 jari 272         for (int i=0; i<items.length; i++) {
2 26 Feb 07 jari 273             if (items[i] != null) {
2 26 Feb 07 jari 274                 width = Math.max(width, metrics.stringWidth(items[i]));
2 26 Feb 07 jari 275             }
2 26 Feb 07 jari 276         }
2 26 Feb 07 jari 277         return width;
2 26 Feb 07 jari 278     }
2 26 Feb 07 jari 279     
2 26 Feb 07 jari 280     private void drawMouseCross(int x, int y) {
2 26 Feb 07 jari 281         Graphics2D g = (Graphics2D)getGraphics();
2 26 Feb 07 jari 282         g.setColor(this.mouseLineColor);
2 26 Feb 07 jari 283         g.setXORMode(getBackground());
2 26 Feb 07 jari 284         Dimension size = getSize();
2 26 Feb 07 jari 285         final int left = insets.left + this.maxYItem;
2 26 Feb 07 jari 286         final int right = size.width - this.insets.right;
2 26 Feb 07 jari 287         final int top = insets.top;
2 26 Feb 07 jari 288         final int bottom = size.height - this.insets.bottom - this.maxXItem;
2 26 Feb 07 jari 289         g.drawLine(x, top, x, bottom);
2 26 Feb 07 jari 290         g.drawLine(left, y, right, y);
2 26 Feb 07 jari 291         g.setPaintMode();
2 26 Feb 07 jari 292         g.dispose();
2 26 Feb 07 jari 293     }
2 26 Feb 07 jari 294     
2 26 Feb 07 jari 295     private class MouseHandler extends MouseMotionAdapter implements ActionListener, MouseListener, java.io.Serializable {
2 26 Feb 07 jari 296         
2 26 Feb 07 jari 297         private Point prevCoords = new Point(-1, -1);
2 26 Feb 07 jari 298         
2 26 Feb 07 jari 299         public void validate() {
2 26 Feb 07 jari 300             if (isCoordsValid(prevCoords.x, prevCoords.y)) {
2 26 Feb 07 jari 301                 drawMouseCross(prevCoords.x, prevCoords.y);
2 26 Feb 07 jari 302             }
2 26 Feb 07 jari 303             prevCoords.setLocation(-1, -1);
2 26 Feb 07 jari 304         }
2 26 Feb 07 jari 305         
2 26 Feb 07 jari 306         public void mouseMoved(MouseEvent e) {
2 26 Feb 07 jari 307             int x = e.getX();
2 26 Feb 07 jari 308             int y = e.getY();
2 26 Feb 07 jari 309             if (isCoordsValid(prevCoords.x, prevCoords.y)) {
2 26 Feb 07 jari 310                 drawMouseCross(prevCoords.x, prevCoords.y);
2 26 Feb 07 jari 311             }
2 26 Feb 07 jari 312             if (isCoordsValid(x, y)) {
2 26 Feb 07 jari 313                 drawMouseCross(x, y);
2 26 Feb 07 jari 314             }
2 26 Feb 07 jari 315             prevCoords.setLocation(x, y);
2 26 Feb 07 jari 316         }
2 26 Feb 07 jari 317         
2 26 Feb 07 jari 318         private boolean isCoordsValid(int x, int y) {
2 26 Feb 07 jari 319             Dimension size = getSize();
2 26 Feb 07 jari 320             final int left = insets.left+maxYItem;
2 26 Feb 07 jari 321             final int top = insets.top;
2 26 Feb 07 jari 322             final int right = size.width - insets.right;
2 26 Feb 07 jari 323             final int bottom = size.height - insets.bottom - maxXItem;
2 26 Feb 07 jari 324             return(left < x && x < right) && (top < y && y < bottom);
2 26 Feb 07 jari 325         }
2 26 Feb 07 jari 326         
2 26 Feb 07 jari 327         public void mousePressed(MouseEvent e) {
2 26 Feb 07 jari 328             if(menu != null && e.isPopupTrigger())
2 26 Feb 07 jari 329                 menu.show(FOMGraph.this, e.getX(), e.getY());
2 26 Feb 07 jari 330         }
2 26 Feb 07 jari 331          
2 26 Feb 07 jari 332         public void mouseReleased(MouseEvent e) {
2 26 Feb 07 jari 333             if(menu != null && e.isPopupTrigger())
2 26 Feb 07 jari 334                 menu.show(FOMGraph.this, e.getX(), e.getY());
2 26 Feb 07 jari 335         }
2 26 Feb 07 jari 336         
2 26 Feb 07 jari 337         public void actionPerformed(ActionEvent ae) {
2 26 Feb 07 jari 338             if(menuItem.isSelected()) {
2 26 Feb 07 jari 339                 showIValues = true;
2 26 Feb 07 jari 340                 repaint();
2 26 Feb 07 jari 341             } else {
2 26 Feb 07 jari 342                 showIValues = false;
2 26 Feb 07 jari 343                 repaint();
2 26 Feb 07 jari 344             }
2 26 Feb 07 jari 345         }
2 26 Feb 07 jari 346                    
2 26 Feb 07 jari 347         public void mouseClicked(java.awt.event.MouseEvent mouseEvent) {
2 26 Feb 07 jari 348         }
2 26 Feb 07 jari 349         
2 26 Feb 07 jari 350         public void mouseEntered(java.awt.event.MouseEvent mouseEvent) {
2 26 Feb 07 jari 351         }
2 26 Feb 07 jari 352         
2 26 Feb 07 jari 353         public void mouseExited(java.awt.event.MouseEvent mouseEvent) {
2 26 Feb 07 jari 354         }
2 26 Feb 07 jari 355         
2 26 Feb 07 jari 356     }
2 26 Feb 07 jari 357     
2 26 Feb 07 jari 358   /**
2 26 Feb 07 jari 359    * @return Returns the haveIValues.
2 26 Feb 07 jari 360    */
2 26 Feb 07 jari 361   public boolean isHaveIValues() {
2 26 Feb 07 jari 362     return haveIValues;
2 26 Feb 07 jari 363   }
2 26 Feb 07 jari 364   /**
2 26 Feb 07 jari 365    * @param haveIValues The haveIValues to set.
2 26 Feb 07 jari 366    */
2 26 Feb 07 jari 367   public void setHaveIValues(boolean haveIValues) {
2 26 Feb 07 jari 368     this.haveIValues = haveIValues;
2 26 Feb 07 jari 369   }
2 26 Feb 07 jari 370   /**
2 26 Feb 07 jari 371    * @return Returns the insets.
2 26 Feb 07 jari 372    */
2 26 Feb 07 jari 373   public Insets getInsets() {
2 26 Feb 07 jari 374     return insets;
2 26 Feb 07 jari 375   }
2 26 Feb 07 jari 376   /**
2 26 Feb 07 jari 377    * @param insets The insets to set.
2 26 Feb 07 jari 378    */
2 26 Feb 07 jari 379   public void setInsets(Insets insets) {
2 26 Feb 07 jari 380     this.insets = insets;
2 26 Feb 07 jari 381   }
2 26 Feb 07 jari 382   /**
2 26 Feb 07 jari 383    * @return Returns the iValues.
2 26 Feb 07 jari 384    */
2 26 Feb 07 jari 385   public float[][] getIValues() {
2 26 Feb 07 jari 386     return iValues;
2 26 Feb 07 jari 387   }
2 26 Feb 07 jari 388   /**
2 26 Feb 07 jari 389    * @param values The iValues to set.
2 26 Feb 07 jari 390    */
2 26 Feb 07 jari 391   public void setIValues(float[][] values) {
2 26 Feb 07 jari 392     iValues = values;
2 26 Feb 07 jari 393   }
2 26 Feb 07 jari 394   /**
2 26 Feb 07 jari 395    * @return Returns the maxXItem.
2 26 Feb 07 jari 396    */
2 26 Feb 07 jari 397   public int getMaxXItem() {
2 26 Feb 07 jari 398     return maxXItem;
2 26 Feb 07 jari 399   }
2 26 Feb 07 jari 400   /**
2 26 Feb 07 jari 401    * @param maxXItem The maxXItem to set.
2 26 Feb 07 jari 402    */
2 26 Feb 07 jari 403   public void setMaxXItem(int maxXItem) {
2 26 Feb 07 jari 404     this.maxXItem = maxXItem;
2 26 Feb 07 jari 405   }
2 26 Feb 07 jari 406   /**
2 26 Feb 07 jari 407    * @return Returns the maxYItem.
2 26 Feb 07 jari 408    */
2 26 Feb 07 jari 409   public int getMaxYItem() {
2 26 Feb 07 jari 410     return maxYItem;
2 26 Feb 07 jari 411   }
2 26 Feb 07 jari 412   /**
2 26 Feb 07 jari 413    * @param maxYItem The maxYItem to set.
2 26 Feb 07 jari 414    */
2 26 Feb 07 jari 415   public void setMaxYItem(int maxYItem) {
2 26 Feb 07 jari 416     this.maxYItem = maxYItem;
2 26 Feb 07 jari 417   }
2 26 Feb 07 jari 418   /**
2 26 Feb 07 jari 419    * @return Returns the showIValues.
2 26 Feb 07 jari 420    */
2 26 Feb 07 jari 421   public boolean isShowIValues() {
2 26 Feb 07 jari 422     return showIValues;
2 26 Feb 07 jari 423   }
2 26 Feb 07 jari 424   /**
2 26 Feb 07 jari 425    * @param showIValues The showIValues to set.
2 26 Feb 07 jari 426    */
2 26 Feb 07 jari 427   public void setShowIValues(boolean showIValues) {
2 26 Feb 07 jari 428     this.showIValues = showIValues;
2 26 Feb 07 jari 429   }
2 26 Feb 07 jari 430   /**
2 26 Feb 07 jari 431    * @return Returns the showVariance.
2 26 Feb 07 jari 432    */
2 26 Feb 07 jari 433   public boolean isShowVariance() {
2 26 Feb 07 jari 434     return showVariance;
2 26 Feb 07 jari 435   }
2 26 Feb 07 jari 436   /**
2 26 Feb 07 jari 437    * @param showVariance The showVariance to set.
2 26 Feb 07 jari 438    */
2 26 Feb 07 jari 439   public void setShowVariance(boolean showVariance) {
2 26 Feb 07 jari 440     this.showVariance = showVariance;
2 26 Feb 07 jari 441   }
2 26 Feb 07 jari 442   /**
2 26 Feb 07 jari 443    * @return Returns the title.
2 26 Feb 07 jari 444    */
2 26 Feb 07 jari 445   public String getTitle() {
2 26 Feb 07 jari 446     return title;
2 26 Feb 07 jari 447   }
2 26 Feb 07 jari 448   /**
2 26 Feb 07 jari 449    * @param title The title to set.
2 26 Feb 07 jari 450    */
2 26 Feb 07 jari 451   public void setTitle(String title) {
2 26 Feb 07 jari 452     this.title = title;
2 26 Feb 07 jari 453   }
2 26 Feb 07 jari 454   /**
2 26 Feb 07 jari 455    * @return Returns the values.
2 26 Feb 07 jari 456    */
2 26 Feb 07 jari 457   public float[] getValues() {
2 26 Feb 07 jari 458     return values;
2 26 Feb 07 jari 459   }
2 26 Feb 07 jari 460   /**
2 26 Feb 07 jari 461    * @param values The values to set.
2 26 Feb 07 jari 462    */
2 26 Feb 07 jari 463   public void setValues(float[] values) {
2 26 Feb 07 jari 464     this.values = values;
2 26 Feb 07 jari 465   }
2 26 Feb 07 jari 466   /**
2 26 Feb 07 jari 467    * @return Returns the variances.
2 26 Feb 07 jari 468    */
2 26 Feb 07 jari 469   public float[] getVariances() {
2 26 Feb 07 jari 470     return variances;
2 26 Feb 07 jari 471   }
2 26 Feb 07 jari 472   /**
2 26 Feb 07 jari 473    * @param variances The variances to set.
2 26 Feb 07 jari 474    */
2 26 Feb 07 jari 475   public void setVariances(float[] variances) {
2 26 Feb 07 jari 476     this.variances = variances;
2 26 Feb 07 jari 477   }
2 26 Feb 07 jari 478   /**
2 26 Feb 07 jari 479    * @return Returns the xItems.
2 26 Feb 07 jari 480    */
2 26 Feb 07 jari 481   public String[] getXItems() {
2 26 Feb 07 jari 482     return xItems;
2 26 Feb 07 jari 483   }
2 26 Feb 07 jari 484   /**
2 26 Feb 07 jari 485    * @param items The xItems to set.
2 26 Feb 07 jari 486    */
2 26 Feb 07 jari 487   public void setXItems(String[] items) {
2 26 Feb 07 jari 488     xItems = items;
2 26 Feb 07 jari 489   }
2 26 Feb 07 jari 490   /**
2 26 Feb 07 jari 491    * @return Returns the xLabel.
2 26 Feb 07 jari 492    */
2 26 Feb 07 jari 493   public String getXLabel() {
2 26 Feb 07 jari 494     return xLabel;
2 26 Feb 07 jari 495   }
2 26 Feb 07 jari 496   /**
2 26 Feb 07 jari 497    * @param label The xLabel to set.
2 26 Feb 07 jari 498    */
2 26 Feb 07 jari 499   public void setXLabel(String label) {
2 26 Feb 07 jari 500     xLabel = label;
2 26 Feb 07 jari 501   }
2 26 Feb 07 jari 502   /**
2 26 Feb 07 jari 503    * @return Returns the yItems.
2 26 Feb 07 jari 504    */
2 26 Feb 07 jari 505   public String[] getYItems() {
2 26 Feb 07 jari 506     return yItems;
2 26 Feb 07 jari 507   }
2 26 Feb 07 jari 508   /**
2 26 Feb 07 jari 509    * @param items The yItems to set.
2 26 Feb 07 jari 510    */
2 26 Feb 07 jari 511   public void setYItems(String[] items) {
2 26 Feb 07 jari 512     yItems = items;
2 26 Feb 07 jari 513   }
2 26 Feb 07 jari 514   /**
2 26 Feb 07 jari 515    * @return Returns the yLabel.
2 26 Feb 07 jari 516    */
2 26 Feb 07 jari 517   public String getYLabel() {
2 26 Feb 07 jari 518     return yLabel;
2 26 Feb 07 jari 519   }
2 26 Feb 07 jari 520   /**
2 26 Feb 07 jari 521    * @param label The yLabel to set.
2 26 Feb 07 jari 522    */
2 26 Feb 07 jari 523   public void setYLabel(String label) {
2 26 Feb 07 jari 524     yLabel = label;
2 26 Feb 07 jari 525   }
2 26 Feb 07 jari 526   /**
2 26 Feb 07 jari 527    * @return Returns the isAntiAliasing.
2 26 Feb 07 jari 528    */
2 26 Feb 07 jari 529   public boolean isAntiAliasing() {
2 26 Feb 07 jari 530     return isAntiAliasing;
2 26 Feb 07 jari 531   }
2 26 Feb 07 jari 532   /**
2 26 Feb 07 jari 533    * @return Returns the maxYValue.
2 26 Feb 07 jari 534    */
2 26 Feb 07 jari 535   public float getMaxYValue() {
2 26 Feb 07 jari 536     return maxYValue;
2 26 Feb 07 jari 537   }
2 26 Feb 07 jari 538 }