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

Last change on this file since 12728 was 12636, checked in by Don-vip, 7 years ago

see #15182 - deprecate Main.getLayerManager(). Replacement: gui.MainApplication.getLayerManager()

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.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.gui.io.SaveLayersDialog;
12import org.openstreetmap.josm.gui.layer.Layer;
13import org.openstreetmap.josm.tools.Shortcut;
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 = getLayerManager().getActiveLayer();
33 if (activeLayer == null) {
34 return;
35 }
36 if (!SaveLayersDialog.saveUnsavedModifications(Collections.singletonList(activeLayer), SaveLayersDialog.Reason.DELETE)) {
37 return;
38 }
39 getLayerManager().removeLayer(activeLayer);
40 }
41
42 @Override
43 protected void updateEnabledState() {
44 setEnabled(getLayerManager().getActiveLayer() != null);
45 }
46}
Note: See TracBrowser for help on using the repository browser.