package jas2.hist;

import jas2.plot.CoordinateTransformation;
import jas2.plot.DateCoordinateTransformation;
import jas2.plot.DoubleCoordinateTransformation;
import jas2.plot.Overlay;
import jas2.plot.OverlayContainer;
import jas2.plot.PlotGraphics;
import jas2.plot.PrintHelper;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

public abstract class OverlayWithHandles implements Overlay, MouseListener, MouseMotionListener
{
    private Cursor defaultCursor = null;
    private static MouseEvent mouseEvent = null;
    private static boolean changeCursor;
    private boolean handlesPainted = false;
    
	protected OverlayWithHandles(DataSource ds)
	{
		if (ds instanceof HasHandles)
		{
			hasHandles = (HasHandles) ds;
		}
	}
	public void paint(PlotGraphics g)
	{
		if (handles != null && !PrintHelper.isPrinting())
		{
			CoordinateTransformation xt = container.getXTransformation();
			CoordinateTransformation yt = container.getYTransformation();
			g.clearTransformation();
			for (int i=0; i= x && p.x <= x+2*handleSize && p.y >= y && p.y > y && p.y <= y+2*handleSize);
		}
		void moveTo(Point p)
		{
                    CoordinateTransformation xt = (CoordinateTransformation) container.getXTransformation();
                    CoordinateTransformation yt = (CoordinateTransformation) container.getYTransformation();
                    DoubleCoordinateTransformation xp;
                    DoubleCoordinateTransformation yp;
                    if ( xt instanceof DateCoordinateTransformation )
                        xp = new DateTransformationConverter( (DateCoordinateTransformation) xt );
                    else
                        xp = (DoubleCoordinateTransformation) xt;
                
                    if ( yt instanceof DateCoordinateTransformation )
                        yp = new DateTransformationConverter( (DateCoordinateTransformation) yt );
                    else
                        yp = (DoubleCoordinateTransformation) yt;
			handle.moveTo(xp.unConvert(p.x),yp.unConvert(p.y));
		}
                Cursor cursor() {
                    return handle.cursor();
                }
                
		private Handle handle;
	}
	private static final double handleSize = 2.5;
	private HandleWrapper[] handles = null;
	private HandleWrapper currentHandle = null;
	private HandleWrapper capturedHandle = null;
	private HasHandles hasHandles;
	protected OverlayContainer container;
}

 

Ads help maintain this website.