source: josm/trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java@ 9675

Last change on this file since 9675 was 9448, checked in by simon04, 8 years ago

see #12352 - Fix "Registered toolbar action dialogs/delete overwritten"

File size: 1.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
6
7import java.awt.event.ActionEvent;
8import java.awt.event.KeyEvent;
9import java.util.Collections;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.tools.Shortcut;
13import org.openstreetmap.josm.gui.layer.Layer;
14
15/**
16 * Deletes the active layer.
17 */
18public final class DeleteLayerAction extends JosmAction {
19
20 /**
21 * Constructs a {@link DeleteLayerAction} which will delete the active layer.
22 */
23 public DeleteLayerAction() {
24 super(tr("Delete Layer"), "dialogs/delete", tr("Delete the active layer. Does not delete the associated file."),
25 Shortcut.registerShortcut("system:deletelayer", tr("File: {0}", tr("Delete Layer")), KeyEvent.VK_F4, Shortcut.CTRL),
26 true, "delete-layer", true);
27 putValue("help", ht("/Action/DeleteLayer"));
28 }
29
30 @Override
31 public void actionPerformed(ActionEvent e) {
32 Layer activeLayer = Main.main.getActiveLayer();
33 if (activeLayer == null) {
34 return;
35 }
36 if (!Main.saveUnsavedModifications(Collections.singletonList(activeLayer), false)) {
37 return;
38 }
39 Main.main.removeLayer(activeLayer);
40 }
41
42 @Override
43 protected void updateEnabledState() {
44 setEnabled(Main.isDisplayingMapView() && Main.map.mapView.getActiveLayer() != null);
45 }
46}
Note: See TracBrowser for help on using the repository browser.