import java.awt.*;

// Written by Julian Devlin, 8/97, for the text book
// "Introduction to Probability," by Charles M. Grinstead & J. Laurie Snell

public class StockGraph extends Graph {

	boolean owner;

	public StockGraph() {
		super();
		owner = false;
	}
	
	public StockGraph(Float[] x, Float[] y) {
		super(x, y);
		owner = false;
	}
	
	public void paint(Graphics g) {
	
		Font f;
		String fName;
		FontMetrics fm;
	
		if (length > 0) { 					// Make sure we have at least one point
			f = g.getFont();
			fName = f.getName();
			f = new Font(fName, Font.PLAIN, 9);
			g.setFont(f);
			fm = g.getFontMetrics();
		
			setPoints();				// When we are ready to paint, the dimensions of the component have been
			setTicks(true, fm);			// set, so we can calculate coordinates of all the points
			g.setColor(new Color(0, 0, 0));
			for (int i = 0; i < length - 1; i++) {		// For each point
				if (owner == false && yCoords[i].floatValue() == 0)
					owner = true;
				else if (owner == true && yCoords[i].floatValue() == 1)
					owner = false;
				if (owner == true) {
					g.setColor(new Color(150, 0, 0));
					g.drawLine(pixels[i].x, pixels[i].y, pixels[i].x + (pixels[i + 1].x -
						pixels[i].x) / 3, pixels[i].y + (pixels[i + 1].y -
						pixels[i].y) / 3);				// Make it dashed
					g.drawLine(pixels[i + 1].x - (pixels[i + 1].x - pixels[i].x) / 3, 
						pixels[i + 1].y - (pixels[i + 1].y - pixels[i].y) / 3, pixels[i + 1].x,
						pixels[i + 1].y);
					g.setColor(new Color(0, 0, 0));
				}
				else {
					g.drawLine(pixels[i].x, pixels[i].y, pixels[i + 1].x,
						pixels[i + 1].y);				// Connect it to the next point
				}
			}
			
			drawXAxis(g);
			drawYAxis(g);
			g.setColor(new Color(150, 0, 0));			// Make ticks red
			drawTicks(g);
			g.setColor(new Color(0, 0, 100));			// Make labels blue
			labelTicks(g);
			g.setColor(new Color(0, 0, 0));
		}
	}	
}