1 // $Id$ 2 import ptolemy.plot.*; 3 import java.awt.*; 4 import java.util.*; 5 import java.awt.event.*; 6 import javax.swing.*; 7 import javax.swing.event.*; 8 9 public class Graph extends Plot{ 10 11 public boolean first = true, refill = true; 12 public double xmin, xmax, ymin, ymax, dx, dy; 13 addData(int set, double xval, double yval, boolean connect, boolean doRefill)14 public void addData(int set, double xval, double yval, boolean connect, boolean doRefill){ 15 if(first){ 16 xmin=xval; 17 xmax=xval; 18 ymin=yval; 19 ymax=yval; 20 } else { 21 dx=xmax-xmin; 22 dy=ymax-ymin; 23 if(xval<xmin) { xmin=xval-0.2*dx; refill=true; }; 24 if(xval>xmax) { xmax=xval+0.2*dx; refill=true; }; 25 if(yval<ymin) { ymin=yval-0.2*dy; refill=true; }; 26 if(yval>ymax) { ymax=yval+0.2*dy; refill=true; }; 27 }; 28 addPoint(set,xval,yval,connect); 29 if(refill && doRefill) { 30 setXRange(xmin,xmax); 31 setYRange(ymin,ymax); 32 _drawPlot(getGraphics(),true); 33 }; 34 first=false; 35 refill=false; 36 } 37 removeSet(int dataset)38 public void removeSet(int dataset){ 39 Vector pts = (Vector)_points.elementAt(dataset); 40 pts.removeAllElements(); 41 _xTop = - Double.MAX_VALUE; 42 _yTop = - Double.MAX_VALUE; 43 _xBottom = Double.MAX_VALUE; 44 _yBottom = Double.MAX_VALUE; 45 } 46 fixRange(double xmin, double xmax, double ymin, double ymax)47 public void fixRange(double xmin, double xmax, double ymin, double ymax){ 48 setXRange(xmin,xmax); 49 setYRange(ymin,ymax); 50 } 51 } 52