001 // License: GPL. Copyright 2007 by Immanuel Scholz and others 002 package org.openstreetmap.josm.actions; 003 004 import static org.openstreetmap.josm.gui.help.HelpUtil.ht; 005 import static org.openstreetmap.josm.tools.I18n.tr; 006 007 import java.awt.event.ActionEvent; 008 import java.awt.event.KeyEvent; 009 010 import javax.swing.KeyStroke; 011 012 import org.openstreetmap.josm.Main; 013 import org.openstreetmap.josm.tools.Shortcut; 014 015 public final class ZoomOutAction extends JosmAction { 016 017 public ZoomOutAction() { 018 super(tr("Zoom Out"), "dialogs/zoomout", tr("Zoom Out"), 019 Shortcut.registerShortcut("view:zoomout", tr("View: {0}", tr("Zoom Out")), KeyEvent.VK_MINUS, Shortcut.DIRECT), true); 020 putValue("help", ht("/Action/ZoomOut")); 021 // make numpad - behave like - 022 Main.registerActionShortcut(this, 023 Shortcut.registerShortcut("view:zoomoutkeypad", tr("View: {0}", tr("Zoom Out (Keypad)")), 024 KeyEvent.VK_SUBTRACT, Shortcut.DIRECT)); 025 } 026 027 public void actionPerformed(ActionEvent e) { 028 if (!Main.isDisplayingMapView()) return; 029 Main.map.mapView.zoomToFactor(Math.sqrt(2)); 030 } 031 032 @Override 033 protected void updateEnabledState() { 034 setEnabled( 035 Main.isDisplayingMapView() 036 && Main.map.mapView.hasLayers() 037 ); 038 } 039 }