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 ZoomInAction extends JosmAction { 016 017 public ZoomInAction() { 018 super( 019 tr("Zoom In"), 020 "dialogs/zoomin", 021 tr("Zoom In"), 022 Shortcut.registerShortcut("view:zoomin", tr("View: {0}", tr("Zoom In")),KeyEvent.VK_PLUS, Shortcut.DIRECT), 023 true 024 ); 025 putValue("help", ht("/Action/ZoomIn")); 026 // make numpad + behave like + 027 Main.registerActionShortcut(this, 028 Shortcut.registerShortcut("view:zoominkeypad", tr("View: {0}", tr("Zoom In (Keypad)")), 029 KeyEvent.VK_ADD, Shortcut.DIRECT)); 030 } 031 032 public void actionPerformed(ActionEvent e) { 033 if (!Main.isDisplayingMapView()) return; 034 Main.map.mapView.zoomToFactor(1/Math.sqrt(2)); 035 } 036 037 @Override 038 protected void updateEnabledState() { 039 setEnabled( 040 Main.isDisplayingMapView() 041 && Main.map.mapView.hasLayers() 042 ); 043 } 044 045 }