// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.actions;
import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.tools.Shortcut;
/**
* Zoom in map.
* @since 770
*/
public final class ZoomInAction extends JosmAction {
/**
* Constructs a new {@code ZoomInAction}.
*/
public ZoomInAction() {
super(
tr("Zoom In"),
"dialogs/zoomin",
tr("Zoom In"),
// Although it might be possible on few custom keyboards, the vast majority of layouts do not have a direct '+' key, see below
Shortcut.registerShortcut("view:zoomin", tr("View: {0}", tr("Zoom In")), KeyEvent.VK_PLUS, Shortcut.DIRECT),
true
);
putValue("help", ht("/Action/ZoomIn"));
// On standard QWERTY, AZERTY and other common layouts the '+' key is obtained with Shift+EQUALS
Main.registerActionShortcut(this,
Shortcut.registerShortcut("view:zoominbis", tr("View: {0}", tr("Zoom In")),
KeyEvent.VK_EQUALS, Shortcut.SHIFT));
// But on some systems (Belgian keyboard under Ubuntu) it seems not to work, so use also EQUALS
Main.registerActionShortcut(this,
Shortcut.registerShortcut("view:zoominter", tr("View: {0}", tr("Zoom In")),
KeyEvent.VK_EQUALS, Shortcut.DIRECT));
// make numpad + behave like +
Main.registerActionShortcut(this,
Shortcut.registerShortcut("view:zoominkeypad", tr("View: {0}", tr("Zoom In (Keypad)")),
KeyEvent.VK_ADD, Shortcut.DIRECT));
}
@Override
public void actionPerformed(ActionEvent e) {
if (!Main.isDisplayingMapView()) return;
Main.map.mapView.zoomIn();
}
@Override
protected void updateEnabledState() {
setEnabled(!Main.getLayerManager().getLayers().isEmpty());
}
}