Changeset 86 in josm for src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
- Timestamp:
- 2006-04-21T14:31:51+02:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
r81 r86 11 11 import java.awt.event.MouseEvent; 12 12 import java.util.Collection; 13 import java.util.LinkedList; 13 14 14 15 import javax.swing.ButtonGroup; … … 61 62 displaylist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 62 63 displaylist.addMouseListener(new MouseAdapter(){ 63 @Override 64 public void mouseClicked(MouseEvent e) { 64 @Override public void mouseClicked(MouseEvent e) { 65 65 if (e.getClickCount() < 2) 66 66 return; … … 122 122 lastSearch = input.getText(); 123 123 SearchCompiler.Match matcher = SearchCompiler.compile(lastSearch); 124 for (OsmPrimitive osm : Main.main.ds.allNonDeletedPrimitives()) { 125 if (replace.isSelected()) 126 osm.setSelected(matcher.match(osm)); 127 else if (add.isSelected() && !osm.isSelected() && matcher.match(osm)) 128 osm.setSelected(true); 129 else if (remove.isSelected() && osm.isSelected() && matcher.match(osm)) 130 osm.setSelected(false); 124 Collection<OsmPrimitive> sel = Main.ds.getSelected(); 125 for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) { 126 if (replace.isSelected()) { 127 if (matcher.match(osm)) 128 sel.add(osm); 129 else 130 sel.remove(osm); 131 } else if (add.isSelected() && !osm.selected && matcher.match(osm)) 132 sel.add(osm); 133 else if (remove.isSelected() && osm.selected && matcher.match(osm)) 134 sel.remove(osm); 131 135 } 132 selectionChanged(Main.main.ds.getSelected()); 133 Main.main.getMapFrame().repaint(); 136 Main.ds.setSelected(sel); 134 137 } 135 138 }); … … 137 140 138 141 add(buttonPanel, BorderLayout.SOUTH); 139 selectionChanged(Main. main.ds.getSelected());142 selectionChanged(Main.ds.getSelected()); 140 143 } 141 144 142 @Override 143 public void setVisible(boolean b) { 145 @Override public void setVisible(boolean b) { 144 146 if (b) { 145 Main. main.ds.addSelectionChangedListener(this);146 selectionChanged(Main. main.ds.getSelected());147 Main.ds.addSelectionChangedListener(this); 148 selectionChanged(Main.ds.getSelected()); 147 149 } else { 148 Main. main.ds.removeSelectionChangedListener(this);150 Main.ds.removeSelectionChangedListener(this); 149 151 } 150 152 super.setVisible(b); … … 158 160 */ 159 161 public void selectionChanged(Collection<OsmPrimitive> newSelection) { 162 if (list == null) 163 return; // selection changed may be received in base class constructor before init 160 164 list.removeAllElements(); 161 165 list.setSize(newSelection.size()); … … 169 173 */ 170 174 public void updateMap() { 171 Main.main.ds.clearSelection();175 Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>(); 172 176 for (int i = 0; i < list.getSize(); ++i) 173 177 if (displaylist.isSelectedIndex(i)) 174 ((OsmPrimitive)list.get(i) ).setSelected(true);175 Main. main.getMapFrame().repaint();178 sel.add((OsmPrimitive)list.get(i)); 179 Main.ds.setSelected(sel); 176 180 } 177 181 }
Note:
See TracChangeset
for help on using the changeset viewer.