/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.eas.client.controls.geopane.mousetools; import com.eas.client.controls.geopane.Cursors; import com.eas.client.controls.geopane.JGeoPane; import java.awt.Point; import java.awt.event.MouseEvent; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.SwingUtilities; /** * * @author mg */ public class DragPanner extends GeoPaneTool { public DragPanner(JGeoPane aPane) { super(aPane); } protected Point mouseDown; protected Point mousePrev; @Override public void mousePressed(MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) { mouseDown = e.getPoint(); mousePrev = mouseDown; pane.setCursor(Cursors.PAN); } } @Override public void mouseReleased(MouseEvent e) { try { if (SwingUtilities.isRightMouseButton(e)) { pane.translateGrid(0, 0, true); mouseDown = null; } } catch (Exception ex) { Logger.getLogger(DragPanner.class.getName()).log(Level.SEVERE, null, ex); } } @Override public void mouseDragged(MouseEvent e) { super.mouseDragged(e); if (SwingUtilities.isRightMouseButton(e)) { try { assert mousePrev != null; pane.setCursor(Cursors.PAN); Point mouseCurrent = e.getPoint(); pane.translateGrid(mouseCurrent.x - mousePrev.x, mouseCurrent.y - mousePrev.y, false); mousePrev = e.getPoint(); pane.repaint(); } catch (Exception ex) { Logger.getLogger(DragPanner.class.getName()).log(Level.SEVERE, null, ex); } } } @Override public boolean isCapable(MouseToolCapability aCapability) { return aCapability == MouseToolCapability.MOTION || aCapability == MouseToolCapability.BUTTONS; } }