Changeset 4959 in josm


Ignore:
Timestamp:
Feb 16, 2012 7:44:06 PM (15 months ago)
Author:
stoecker
Message:

join DuplicateLayerAction with the only caller of it

Location:
trunk/src/org/openstreetmap/josm
Files:
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java

    r4953 r4959  
    5252 
    5353import org.openstreetmap.josm.Main; 
    54 import org.openstreetmap.josm.actions.DuplicateLayerAction; 
    5554import org.openstreetmap.josm.actions.MergeLayerAction; 
    5655import org.openstreetmap.josm.gui.MapFrame; 
     
    794793        } 
    795794 
     795        private void duplicate(Layer layer) { 
     796            if (Main.map == null || Main.map.mapView == null) 
     797                return; 
     798 
     799            List<String> layerNames = new ArrayList<String>(); 
     800            for (Layer l: Main.map.mapView.getAllLayers()) { 
     801                layerNames.add(l.getName()); 
     802            } 
     803            if (layer instanceof OsmDataLayer) { 
     804                OsmDataLayer oldLayer = (OsmDataLayer)layer; 
     805                // Translators: "Copy of {layer name}" 
     806                String newName = tr("Copy of {0}", oldLayer.getName()); 
     807                int i = 2; 
     808                while (layerNames.contains(newName)) { 
     809                    // Translators: "Copy {number} of {layer name}" 
     810                    newName = tr("Copy {1} of {0}", oldLayer.getName(), i); 
     811                    i++; 
     812                } 
     813                Main.main.addLayer(new OsmDataLayer(oldLayer.data.clone(), newName, null)); 
     814            } 
     815        } 
     816 
    796817        @Override 
    797818        public void actionPerformed(ActionEvent e) { 
    798819            if (layer != null) { 
    799                 new DuplicateLayerAction().duplicate(layer); 
     820                duplicate(layer); 
    800821            } else { 
    801                 Layer selectedLayer = getModel().getSelectedLayers().get(0); 
    802                 new DuplicateLayerAction().duplicate(selectedLayer); 
     822                duplicate(getModel().getSelectedLayers().get(0)); 
    803823            } 
    804824        } 
    805825 
    806826        protected boolean isActiveLayer(Layer layer) { 
    807             if (Main.map == null) return false; 
    808             if (Main.map.mapView == null) return false; 
     827            if (Main.map == null || Main.map.mapView == null) 
     828                return false; 
    809829            return Main.map.mapView.getActiveLayer() == layer; 
    810830        } 
     
    814834            if (layer == null) { 
    815835                if (getModel().getSelectedLayers().size() == 1) { 
    816                     setEnabled(DuplicateLayerAction.canDuplicate(getModel().getSelectedLayers().get(0))); 
     836                    setEnabled(getModel().getSelectedLayers().get(0) instanceof OsmDataLayer); 
    817837                } else { 
    818838                    setEnabled(false); 
    819839                } 
    820840            } else { 
    821                 setEnabled(DuplicateLayerAction.canDuplicate(layer)); 
     841                setEnabled(layer instanceof OsmDataLayer); 
    822842            } 
    823843        } 
Note: See TracChangeset for help on using the changeset viewer.