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

Last change on this file since 11447 was 11093, checked in by simon04, 8 years ago

fix #13320 - Use restart text and icon in unsaved changes dialog

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