Changeset 2256 in josm


Ignore:
Timestamp:
2009-10-09T17:16:54+02:00 (15 years ago)
Author:
Gubaer
Message:

Removed inefficient DataSet:getSelected() when responding to fireSelectionChanged() in JOSM actions, see thread on dev
Still uses DataSet:getSelected() when responding to layer change events, this is less critical.

Location:
trunk/src/org/openstreetmap/josm/actions
Files:
24 edited

Legend:

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

    r2233 r2256  
    77import java.net.URL;
    88import java.util.ArrayList;
     9import java.util.Collection;
    910import java.util.Iterator;
    1011import java.util.regex.Pattern;
     
    142143        setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty());
    143144    }
     145
     146    @Override
     147    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     148        setEnabled(selection != null && !selection.isEmpty());
     149    }
    144150}
  • trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java

    r2017 r2256  
    260260        setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty());
    261261    }
     262
     263    @Override
     264    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     265        setEnabled(selection != null && !selection.isEmpty());
     266    }
    262267}
  • trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java

    r2017 r2256  
    137137        setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty());
    138138    }
     139
     140    @Override
     141    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     142        setEnabled(selection != null && !selection.isEmpty());
     143    }
    139144}
  • trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java

    r2017 r2256  
    175175        }
    176176    }
     177
     178    @Override
     179    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     180        if ("selection".equals(mode)) {
     181            setEnabled(selection != null && !selection.isEmpty());
     182        }
     183    }
    177184}
  • trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java

    r2220 r2256  
    202202        }
    203203        Collection<OsmPrimitive> selection = getCurrentDataSet().getSelected();
     204        updateEnabledState(selection);
     205    }
     206
     207    @Override
     208    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
    204209        int numWays = 0;
    205 
    206210        for (OsmPrimitive osm : selection)
    207211            if (osm instanceof Way) {
  • trunk/src/org/openstreetmap/josm/actions/CopyAction.java

    r2070 r2256  
    116116    @Override
    117117    protected void updateEnabledState() {
    118         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     118        if (getCurrentDataSet() == null) {
     119            setEnabled(false);
     120        } else {
     121            updateEnabledState(getCurrentDataSet().getSelected());
     122        }
     123    }
     124
     125    @Override
     126    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     127        setEnabled(selection != null && !selection.isEmpty());
    119128    }
    120129
  • trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java

    r2166 r2256  
    277277    @Override
    278278    protected void updateEnabledState() {
    279         setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty());
     279        if (getCurrentDataSet() == null) {
     280            setEnabled(false);
     281        } else {
     282            updateEnabledState(getCurrentDataSet().getSelected());
     283        }
     284    }
     285
     286    @Override
     287    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     288        setEnabled(selection != null && !selection.isEmpty());
    280289    }
    281290}
  • trunk/src/org/openstreetmap/josm/actions/DeleteAction.java

    r1820 r2256  
    66import java.awt.event.ActionEvent;
    77import java.awt.event.KeyEvent;
     8import java.util.Collection;
    89
    910import org.openstreetmap.josm.Main;
     11import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1012import org.openstreetmap.josm.tools.Shortcut;
    1113
     
    2830    @Override
    2931    protected void updateEnabledState() {
    30         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     32        if (getCurrentDataSet() == null) {
     33            setEnabled(false);
     34        } else {
     35            updateEnabledState(getCurrentDataSet().getSelected());
     36        }
     37    }
     38
     39    @Override
     40    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     41        setEnabled(selection != null && !selection.isEmpty());
    3142    }
    3243}
  • trunk/src/org/openstreetmap/josm/actions/DistributeAction.java

    r2017 r2256  
    136136    @Override
    137137    protected void updateEnabledState() {
    138         setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty());
     138        if (getCurrentDataSet() == null) {
     139            setEnabled(false);
     140        } else {
     141            updateEnabledState(getCurrentDataSet().getSelected());
     142        }
     143    }
     144
     145    @Override
     146    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     147        setEnabled(selection != null && !selection.isEmpty());
    139148    }
    140149}
  • trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java

    r2254 r2256  
    155155    }
    156156
    157     /**
    158      * Refreshes the enabled state
    159      *
    160      */
    161157    @Override
    162158    protected void updateEnabledState() {
    163         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     159        if (getCurrentDataSet() == null) {
     160            setEnabled(false);
     161        } else {
     162            updateEnabledState(getCurrentDataSet().getSelected());
     163        }
     164    }
     165
     166    @Override
     167    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     168        setEnabled(selection != null && !selection.isEmpty());
    164169    }
    165170}
  • trunk/src/org/openstreetmap/josm/actions/DuplicateAction.java

    r1820 r2256  
    77import java.awt.event.ActionEvent;
    88import java.awt.event.KeyEvent;
     9import java.util.Collection;
    910
     11import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1012import org.openstreetmap.josm.tools.Shortcut;
    1113
     
    2224    }
    2325
     26    @Override
     27    protected void updateEnabledState() {
     28        if (getCurrentDataSet() == null) {
     29            setEnabled(false);
     30        } else {
     31            updateEnabledState(getCurrentDataSet().getSelected());
     32        }
     33    }
    2434
    2535    @Override
    26     protected void updateEnabledState() {
    27         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     36    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     37        setEnabled(selection != null && !selection.isEmpty());
    2838    }
    2939}
  • trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java

    r1924 r2256  
    9191    @Override
    9292    protected void updateEnabledState() {
    93         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     93        if (getCurrentDataSet() == null) {
     94            setEnabled(false);
     95        } else {
     96            updateEnabledState(getCurrentDataSet().getSelected());
     97        }
     98    }
     99
     100    @Override
     101    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     102        setEnabled(selection != null && !selection.isEmpty());
    94103    }
    95104}
  • trunk/src/org/openstreetmap/josm/actions/JosmAction.java

    r1935 r2256  
    149149        Layer.listeners.add(layerChangeAdapter);
    150150        DataSet.selListeners.add(selectionChangeAdapter);
    151         updateEnabledState();
     151        initEnabledState();
    152152    }
    153153
    154     /**
    155      * This method is called when a layer change event or a selection update event
    156      * occurs, see {@see LayerChangeListener} and {@see SelectionChangedListener}.
    157      *
    158      * The default implementation is empty. Subclasses can override the method
    159      * in order to set the {@see #isEnabled()}-state of a JosmAction depending on
    160      * the {@see #getCurrentDataSet()} and the current layers (see
    161      * also {@see #getEditLayer()}).
    162      *
    163      */
     154
     155    protected void initEnabledState() {
     156        setEnabled(true);
     157    }
     158
    164159    protected void updateEnabledState() {
    165         // override in subclasses
     160
     161    }
     162
     163    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     164
    166165    }
    167166
     
    190189    private class SelectionChangeAdapter implements SelectionChangedListener {
    191190        public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
    192             updateEnabledState();
     191            updateEnabledState(newSelection);
    193192        }
    194193    }
  • trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java

    r2220 r2256  
    263263    }
    264264
    265     /**
    266      * Enable the "Merge Nodes" menu option if more than one node is selected
    267      */
    268265    @Override
    269     public void updateEnabledState() {
    270         if (getCurrentDataSet() == null || getCurrentDataSet().getSelected().isEmpty()) {
     266    protected void updateEnabledState() {
     267        if (getCurrentDataSet() == null) {
    271268            setEnabled(false);
     269        } else {
     270            updateEnabledState(getCurrentDataSet().getSelected());
     271        }
     272    }
     273
     274    @Override
     275    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     276        if (selection == null || selection.isEmpty()) {
     277            setEnabled(false);
    272278            return;
    273279        }
    274280        boolean ok = true;
    275         if (getCurrentDataSet().getSelected().size() < 2) {
     281        if (selection.size() < 2) {
    276282            setEnabled(false);
    277283            return;
    278284        }
    279         for (OsmPrimitive osm : getCurrentDataSet().getSelected()) {
     285        for (OsmPrimitive osm : selection) {
    280286            if (!(osm instanceof Node)) {
    281287                ok = false;
  • trunk/src/org/openstreetmap/josm/actions/MergeSelectionAction.java

    r2198 r2256  
    66import java.awt.event.ActionEvent;
    77import java.awt.event.KeyEvent;
     8import java.util.Collection;
    89import java.util.List;
    910
    1011import org.openstreetmap.josm.data.osm.DataSet;
     12import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1113import org.openstreetmap.josm.data.osm.visitor.MergeSourceBuildingVisitor;
    1214import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
     
    4547    @Override
    4648    protected void updateEnabledState() {
    47         if (getEditLayer() == null) {
     49        if (getCurrentDataSet() == null) {
    4850            setEnabled(false);
    49             return;
     51        } else {
     52            updateEnabledState(getCurrentDataSet().getSelected());
    5053        }
    51         setEnabled(!getEditLayer().data.getSelected().isEmpty());
     54    }
     55
     56    @Override
     57    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     58        setEnabled(selection != null && !selection.isEmpty());
    5259    }
    5360}
  • trunk/src/org/openstreetmap/josm/actions/MirrorAction.java

    r2017 r2256  
    7979    @Override
    8080    protected void updateEnabledState() {
    81         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     81        if (getCurrentDataSet() == null) {
     82            setEnabled(false);
     83        } else {
     84            updateEnabledState(getCurrentDataSet().getSelected());
     85        }
     86    }
     87
     88    @Override
     89    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     90        setEnabled(selection != null && !selection.isEmpty());
    8291    }
    8392}
  • trunk/src/org/openstreetmap/josm/actions/MoveAction.java

    r2017 r2256  
    7171
    7272        switch (myDirection) {
    73         case UP:
    74             distx = 0;
    75             disty = -disty;
    76             break;
    77         case DOWN:
    78             distx = 0;
    79             break;
    80         case LEFT:
    81             disty = 0;
    82             distx = -distx;
    83         default:
    84             disty = 0;
     73            case UP:
     74                distx = 0;
     75                disty = -disty;
     76                break;
     77            case DOWN:
     78                distx = 0;
     79                break;
     80            case LEFT:
     81                disty = 0;
     82                distx = -distx;
     83            default:
     84                disty = 0;
    8585        }
    8686
     
    117117    @Override
    118118    protected void updateEnabledState() {
    119         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     119        if (getCurrentDataSet() == null) {
     120            setEnabled(false);
     121        } else {
     122            updateEnabledState(getCurrentDataSet().getSelected());
     123        }
     124    }
     125
     126    @Override
     127    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     128        setEnabled(selection != null && !selection.isEmpty());
    120129    }
    121130}
  • trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java

    r2017 r2256  
    408408    @Override
    409409    protected void updateEnabledState() {
    410         setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
     410        if (getCurrentDataSet() == null) {
     411            setEnabled(false);
     412        } else {
     413            updateEnabledState(getCurrentDataSet().getSelected());
     414        }
     415    }
     416
     417    @Override
     418    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     419        setEnabled(selection != null && !selection.isEmpty());
    411420    }
    412421}
  • trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java

    r2220 r2256  
    284284        );
    285285    }
     286
     287    @Override
     288    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     289        setEnabled(
     290                selection!= null && !selection.isEmpty()
     291                && !TagCollection.unionOfAllPrimitives(Main.pasteBuffer.getSelected()).isEmpty()
     292        );
     293    }
    286294}
  • trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java

    r2017 r2256  
    9797    @Override
    9898    protected void updateEnabledState() {
    99         setEnabled(getNumWaysInSelection() > 0);
     99        if (getCurrentDataSet() == null) {
     100            setEnabled(false);
     101        } else {
     102            updateEnabledState(getCurrentDataSet().getSelected());
     103        }
     104    }
     105
     106    @Override
     107    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     108        if (selection == null) {
     109            setEnabled(false);
     110            return;
     111        }
     112        int n = 0;
     113        for (OsmPrimitive primitive : selection) {
     114            if (primitive instanceof Way) {
     115                n++;
     116            }
     117        }
     118        setEnabled(n > 0);
    100119    }
    101120}
  • trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java

    r2120 r2256  
    366366        if (getCurrentDataSet() == null) {
    367367            setEnabled(false);
     368        } else {
     369            updateEnabledState(getCurrentDataSet().getSelected());
     370        }
     371    }
     372
     373    @Override
     374    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     375        if (selection == null) {
     376            setEnabled(false);
    368377            return;
    369378        }
    370         setEnabled(checkSelection(getCurrentDataSet().getSelected()));
     379        setEnabled(checkSelection(selection));
    371380    }
    372381}
  • trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java

    r2120 r2256  
    413413    @Override
    414414    protected void updateEnabledState() {
    415         setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty());
     415        if (getCurrentDataSet() == null) {
     416            setEnabled(false);
     417        } else {
     418            updateEnabledState(getCurrentDataSet().getSelected());
     419        }
     420    }
     421
     422    @Override
     423    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     424        setEnabled(selection != null && !selection.isEmpty());
    416425    }
    417426}
  • trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java

    r2253 r2256  
    9797    }
    9898
    99     /**
    100      * Refreshes the enabled state
    101      *
    102      */
    10399    @Override
    104100    protected void updateEnabledState() {
    105         setEnabled(getCurrentDataSet() != null
    106                 && ! getCurrentDataSet().getSelected().isEmpty()
    107         );
     101        if (getCurrentDataSet() == null) {
     102            setEnabled(false);
     103        } else {
     104            updateEnabledState(getCurrentDataSet().getSelected());
     105        }
     106    }
     107
     108    @Override
     109    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     110        setEnabled(selection != null && !selection.isEmpty());
    108111    }
    109112
  • trunk/src/org/openstreetmap/josm/actions/UploadSelectionAction.java

    r2255 r2256  
    5151    }
    5252
    53     /**
    54      * Refreshes the enabled state
    55      *
    56      */
    5753    @Override
    5854    protected void updateEnabledState() {
    59         setEnabled(getEditLayer() != null);
     55        if (getCurrentDataSet() == null) {
     56            setEnabled(false);
     57        } else {
     58            updateEnabledState(getCurrentDataSet().getSelected());
     59        }
     60    }
     61
     62    @Override
     63    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
     64        setEnabled(selection != null && !selection.isEmpty());
    6065    }
    6166
Note: See TracChangeset for help on using the changeset viewer.