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

Last change on this file since 4175 was 4139, checked in by stoecker, 13 years ago

fix #6474 - fix toolbar action entries for some actions and fix fullscreen mode start

  • Property svn:eol-style set to native
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 false /* register */
22 );
23 putValue("help", ht("/Action/MergeLayer"));
24 putValue("toolbar", "action/mergelayer");
25 Main.toolbar.register(this);
26 }
27
28 public void merge(Layer sourceLayer) {
29 if (sourceLayer == null)
30 return;
31 List<Layer> targetLayers = LayerListDialog.getInstance().getModel().getPossibleMergeTargets(sourceLayer);
32 if (targetLayers.isEmpty()) {
33 warnNoTargetLayersForSourceLayer(sourceLayer);
34 return;
35 }
36 Layer targetLayer = askTargetLayer(targetLayers);
37 if (targetLayer == null)
38 return;
39 targetLayer.mergeFrom(sourceLayer);
40 Main.map.mapView.removeLayer(sourceLayer);
41 Main.map.mapView.setActiveLayer(targetLayer);
42 }
43
44 public void actionPerformed(ActionEvent e) {
45 Layer sourceLayer = Main.main.getEditLayer();
46 if (sourceLayer == null)
47 return;
48 merge(sourceLayer);
49 }
50
51 @Override
52 protected void updateEnabledState() {
53 if (getEditLayer() == null) {
54 setEnabled(false);
55 return;
56 }
57 setEnabled(!LayerListDialog.getInstance().getModel().getPossibleMergeTargets(getEditLayer()).isEmpty());
58 }
59}
Note: See TracBrowser for help on using the repository browser.