/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.eas.client.controls.geopane.actions;
import com.eas.client.controls.geopane.JGeoPane;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.geom.Point2D;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.Action;
import javax.swing.KeyStroke;
/**
*
* @author mg
*/
public class ZoomOutAction extends GeoPaneAction {
public ZoomOutAction(JGeoPane aPane) {
super(aPane);
putValue(Action.NAME, " + ");
putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, 0));
}
@Override
public void actionPerformed(ActionEvent e) {
try {
Point2D.Double screenCenterBefore = pane.screen2Cartesian(new Point(0, 0));
pane.scaleView(1/ZoomInAction.DEFAULT_ZOOM_FACTOR_STEP, 1/ZoomInAction.DEFAULT_ZOOM_FACTOR_STEP, false);
Point2D.Double screenCenterAfter = pane.screen2Cartesian(new Point(0, 0));
pane.translateView(screenCenterAfter.x-screenCenterBefore.x, screenCenterAfter.y-screenCenterBefore.y, true);
pane.repaint();
} catch (Exception ex) {
Logger.getLogger(ZoomInAction.class.getName()).log(Level.SEVERE, null, ex);
}
}
}