Changeset 558 in josm


Ignore:
Timestamp:
2008-02-24T18:25:31+01:00 (16 years ago)
Author:
david
Message:

implement Paste Tags

Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/CopyAction.java

    r404 r558  
    1010import java.util.HashMap;
    1111import java.util.List;
     12import java.util.LinkedList;
    1213import java.util.Collection;
    1314
     
    2627public final class CopyAction extends JosmAction implements SelectionChangedListener {
    2728
     29        private LinkedList<JosmAction> listeners;
     30       
    2831        public CopyAction() {
    2932                super(tr("Copy"), "copy",
     
    3235                setEnabled(false);
    3336                DataSet.selListeners.add(this);
     37                listeners = new LinkedList<JosmAction>();
    3438        }
    3539
     40        @Override public void addListener(JosmAction a) {
     41                listeners.add(a);
     42        }
     43       
    3644        public void actionPerformed(ActionEvent e) {
    3745                Collection<OsmPrimitive> sel = Main.ds.getSelected();
     
    99107                Main.pasteBuffer = pasteBuffer;
    100108                Main.main.menu.paste.setEnabled(true); /* now we have a paste buffer we can make paste available */
     109               
     110                for(JosmAction a : listeners) {
     111                        a.pasteBufferChanged(Main.pasteBuffer);
     112                }
    101113        }
    102114
  • trunk/src/org/openstreetmap/josm/actions/JosmAction.java

    r526 r558  
    88
    99import org.openstreetmap.josm.Main;
     10import org.openstreetmap.josm.data.osm.DataSet;
    1011import org.openstreetmap.josm.tools.Destroyable;
    1112import org.openstreetmap.josm.tools.ImageProvider;
     
    5152        }
    5253
    53 
     54        /**
     55         * needs to be overridden to be useful
     56         */
     57        public void pasteBufferChanged(DataSet newPasteBuffer) {
     58                return;
     59        }
     60       
     61        /**
     62         * needs to be overridden to be useful
     63         */
     64        public void addListener(JosmAction a) {
     65                return;
     66        }
     67       
    5468        private void setHelpId() {
    5569                String helpId = "Action/"+getClass().getName().substring(getClass().getName().lastIndexOf('.')+1);
  • trunk/src/org/openstreetmap/josm/data/osm/DataSet.java

    r369 r558  
    111111                sel.addAll(getSelected(relations));
    112112                return sel;
     113        }
     114
     115        /**
     116         * Return selected nodes.
     117         */
     118        public Collection<OsmPrimitive> getSelectedNodes() {
     119                return getSelected(nodes);
     120        }
     121
     122        /**
     123         * Return selected ways.
     124         */
     125        public Collection<OsmPrimitive> getSelectedWays() {
     126                return getSelected(ways);
     127        }
     128
     129        /**
     130         * Return selected relations.
     131         */
     132        public Collection<OsmPrimitive> getSelectedRelations() {
     133                return getSelected(relations);
    113134        }
    114135
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r547 r558  
    3131import org.openstreetmap.josm.actions.OpenAction;
    3232import org.openstreetmap.josm.actions.PasteAction;
     33import org.openstreetmap.josm.actions.PasteTagsAction;
    3334import org.openstreetmap.josm.actions.PreferencesAction;
    3435import org.openstreetmap.josm.actions.RedoAction;
     
    7475        public final JosmAction copy = new CopyAction();
    7576        public final JosmAction paste = new PasteAction();
     77        public final JosmAction pasteTags = new PasteTagsAction(copy);
    7678        public final JosmAction duplicate = new DuplicateAction();
    7779        public final JosmAction selectAll = new SelectAllAction();
     
    147149                current = editMenu.add(paste);
    148150                current.setAccelerator(paste.shortCut);
     151                current = editMenu.add(pasteTags);
     152                current.setAccelerator(pasteTags.shortCut);
    149153                current = editMenu.add(duplicate);
    150154                current.setAccelerator(duplicate.shortCut);
Note: See TracChangeset for help on using the changeset viewer.