source: josm/trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java@ 2474

Last change on this file since 2474 was 2323, checked in by Gubaer, 14 years ago

Added explicit help topics
See also current list of help topics with links to source files and to help pages

File size: 2.0 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.List;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
13import org.openstreetmap.josm.gui.layer.Layer;
14import org.openstreetmap.josm.tools.Shortcut;
15
16public class MergeLayerAction extends AbstractMergeAction {
17
18 public MergeLayerAction() {
19 super(tr("Merge layer"), "dialogs/mergedown", tr("Merge the current layer into another layer"), Shortcut
20 .registerShortcut("system:merge", tr("Edit: {0}", tr("Merge")), KeyEvent.VK_M, Shortcut.GROUP_MENU),
21 true /* register */
22 );
23 putValue("help", ht("/Action/MergeLayer"));
24 }
25
26 public void merge(Layer sourceLayer) {
27 if (sourceLayer == null)
28 return;
29 List<Layer> targetLayers = LayerListDialog.getInstance().getModel().getPossibleMergeTargets(sourceLayer);
30 if (targetLayers.isEmpty()) {
31 warnNoTargetLayersForSourceLayer(sourceLayer);
32 return;
33 }
34 Layer targetLayer = askTargetLayer(targetLayers);
35 if (targetLayer == null)
36 return;
37 targetLayer.mergeFrom(sourceLayer);
38 Main.map.mapView.removeLayer(sourceLayer);
39 Main.map.mapView.setActiveLayer(targetLayer);
40 }
41
42 public void actionPerformed(ActionEvent e) {
43 Layer sourceLayer = Main.main.getEditLayer();
44 if (sourceLayer == null)
45 return;
46 merge(sourceLayer);
47 }
48
49 @Override
50 protected void updateEnabledState() {
51 if (getEditLayer() == null) {
52 setEnabled(false);
53 return;
54 }
55 setEnabled(!LayerListDialog.getInstance().getModel().getPossibleMergeTargets(getEditLayer()).isEmpty());
56 }
57}
Note: See TracBrowser for help on using the repository browser.