/**
* Copyright (c) 2009-2011, chunquedong(YangJiandong)
*
* This file is part of ChunMap project
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE(Version >=3)
*
* History:
* 2010-05-05 Jed Young Creation
*/
package chunmap.app.tools.navigate;
import java.awt.AWTEvent;
import java.awt.event.MouseWheelEvent;
import chunmap.app.bench.AbstractTool;
import chunmap.app.bench.EventType;
import chunmap.app.command.ZoomCommand;
/**
* @author chunquedong
*
*/
public class ZoomTool extends AbstractTool {
@Override
public boolean actionEvent(AWTEvent event, EventType type) {
if (event instanceof MouseWheelEvent) {
MouseWheelEvent e = (MouseWheelEvent) event;
if (MouseWheelEvent.MOUSE_WHEEL != e.getID())
return true;
mouseWheelMoved(e);
}
return true;
}
public void mouseWheelMoved(MouseWheelEvent e) {
// Point p = new Coordinate2D(e.getX(), e.getY());
//
// double s = -e.getWheelRotation() / 3d + 1;
// ZoomCommand cmd=new ZoomCommand(map,s,p);
// map.executeCommand(cmd);
// Log.log(Logger.Debug, "zoom finish");
// map.refreshMap();
double x = map.getView().x2World(e.getX());
double y = map.getView().y2World(e.getY());
if (e.getWheelRotation()== 0) return;
double s = (e.getWheelRotation() < 0) ? 2 : 0.5;
ZoomCommand cmd = new ZoomCommand(map, s, x, y);
map.executeCommand(cmd);
map.refreshMap();
}
}