Changeset 297 in josm


Ignore:
Timestamp:
2007-07-27T10:50:54+02:00 (14 years ago)
Author:
imi
Message:
  • fixed bug that selection listener were informed twice on selection changes
Files:
5 edited

Legend:

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

    r181 r297  
    1515
    1616        public void actionPerformed(ActionEvent e) {
    17                 Main.ds.clearSelection();
     17                Main.ds.setSelected();
    1818        }
    1919}
  • src/org/openstreetmap/josm/data/osm/DataSet.java

    r290 r297  
    8282        /**
    8383         * Remove the selection of the whole dataset.
     84         * @deprecated Use setSelected() instead.
    8485         */
     86        @Deprecated
    8587        public void clearSelection() {
    8688                clearSelection(nodes);
     
    103105
    104106        public void setSelected(Collection<? extends OsmPrimitive> selection) {
    105                 clearSelection();
     107                clearSelection(nodes);
     108                clearSelection(segments);
     109                clearSelection(ways);
    106110                for (OsmPrimitive osm : selection)
    107111                        osm.selected = true;
     
    110114
    111115        public void setSelected(OsmPrimitive... osm) {
    112                 clearSelection();
    113                 if (osm.length == 0 || (osm.length == 1 && osm[0] == null))
     116                if (osm.length == 1 && osm[0] == null) {
     117                        setSelected();
    114118                        return;
     119                }
     120                clearSelection(nodes);
     121                clearSelection(segments);
     122                clearSelection(ways);
    115123                for (OsmPrimitive o : osm)
    116                         o.selected = true;
     124                        if (o != null)
     125                                o.selected = true;
    117126                fireSelectionChanged(Arrays.asList(osm));
    118127        }
  • src/org/openstreetmap/josm/gui/MapView.java

    r290 r297  
    132132                if (layer == editLayer) {
    133133                        editLayer = null;
    134                         Main.ds.clearSelection();
     134                        Main.ds.setSelected();
    135135                }
    136136                layer.destroy();
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r290 r297  
    230230                redoCommands.push(c);
    231231                setModified(uploadedModified || !commands.isEmpty());
    232                 Main.ds.clearSelection();
     232                Main.ds.setSelected();
    233233                fireCommandsChanged();
    234234        }
  • test/unit/org/openstreetmap/josm/data/osm/DataSetTest.java

    r290 r297  
    4646        }
    4747
    48         public void testClearSelection() {
    49                 node1.selected = true;
    50                 ds.clearSelection();
    51                 assertFalse(node1.selected);
    52         }
    53 
    5448        public void testGetSelected() {
    5549                node1.selected = true;
Note: See TracChangeset for help on using the changeset viewer.