Changeset 64 in josm for src/org/openstreetmap/josm/gui/dialogs
- Timestamp:
- 2006-03-16T19:35:44+01:00 (19 years ago)
- Location:
- src/org/openstreetmap/josm/gui/dialogs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
r62 r64 14 14 import java.awt.event.WindowFocusListener; 15 15 import java.util.Collection; 16 import java.util.HashMap;17 16 import java.util.Iterator; 18 17 import java.util.TreeMap; … … 37 36 import org.openstreetmap.josm.command.ChangeKeyValueCommand; 38 37 import org.openstreetmap.josm.data.SelectionChangedListener; 39 import org.openstreetmap.josm.data.osm.Key;40 38 import org.openstreetmap.josm.data.osm.OsmPrimitive; 41 39 import org.openstreetmap.josm.gui.ImageProvider; … … 125 123 if (value.equals("")) 126 124 value = null; // delete the key 127 mv.editLayer().add(new ChangeKeyValueCommand(sel, Key.get(key), value));125 mv.editLayer().add(new ChangeKeyValueCommand(sel, key, value)); 128 126 129 127 if (value == null) … … 143 141 p.add(new JLabel("<html>This will change "+sel.size()+" object"+(sel.size()==1?"":"s")+".<br><br>"+ 144 142 "Please select a key"), BorderLayout.NORTH); 145 Vector<String> allKeys = new Vector<String>(Key.allKeys.keySet()); 143 Vector<String> allKeys = new Vector<String>(); 144 for (OsmPrimitive osm : Main.main.ds.allNonDeletedPrimitives()) 145 if (osm.keys != null) 146 allKeys.addAll(osm.keys.keySet()); 146 147 for (Iterator<String> it = allKeys.iterator(); it.hasNext();) { 147 148 String s = it.next(); … … 170 171 if (value.equals("")) 171 172 return; 172 mv.editLayer().add(new ChangeKeyValueCommand(sel, Key.get(key), value));173 mv.editLayer().add(new ChangeKeyValueCommand(sel, key, value)); 173 174 selectionChanged(sel); // update table 174 175 } … … 181 182 String key = data.getValueAt(row, 0).toString(); 182 183 Collection<OsmPrimitive> sel = Main.main.ds.getSelected(); 183 mv.editLayer().add(new ChangeKeyValueCommand(sel, Key.get(key), null));184 mv.editLayer().add(new ChangeKeyValueCommand(sel, key, null)); 184 185 selectionChanged(sel); // update table 185 186 } … … 293 294 data.setRowCount(0); 294 295 TreeMap<String, Collection<String>> props = new TreeMap<String, Collection<String>>(); 295 HashMap<String, Integer> valueCounts = new HashMap<String, Integer>();296 296 for (OsmPrimitive osm : newSelection) { 297 297 if (osm.keys != null) { 298 for (Entry< Key, String> e : osm.keys.entrySet()) {299 Collection<String> value = props.get(e.getKey() .name);298 for (Entry<String, String> e : osm.keys.entrySet()) { 299 Collection<String> value = props.get(e.getKey()); 300 300 if (value == null) { 301 301 value = new TreeSet<String>(); 302 props.put(e.getKey() .name, value);302 props.put(e.getKey(), value); 303 303 } 304 304 value.add(e.getValue()); 305 306 Integer count = valueCounts.get(e.getValue());307 if (count == null)308 count = 0;309 valueCounts.put(e.getValue(), count+1);310 305 } 311 306 } 312 307 } 313 int selCount = newSelection.size();314 308 for (Entry<String, Collection<String>> e : props.entrySet()) { 315 309 JComboBox value = new JComboBox(e.getValue().toArray()); 316 310 value.setEditable(true); 317 if (e.getValue().size() > 1 || valueCounts.get(e.getValue().iterator().next()) != selCount) 318 value.getEditor().setItem("<different>"); 311 value.getEditor().setItem(e.getValue().size() > 1 ? "<different>" : e.getValue().iterator().next()); 319 312 data.addRow(new Object[]{e.getKey(), value}); 320 313 } -
src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
r62 r64 23 23 import org.openstreetmap.josm.Main; 24 24 import org.openstreetmap.josm.data.SelectionChangedListener; 25 import org.openstreetmap.josm.data.osm.Key;26 25 import org.openstreetmap.josm.data.osm.OsmPrimitive; 27 26 import org.openstreetmap.josm.gui.ImageProvider; … … 95 94 for (OsmPrimitive osm : Main.main.ds.allNonDeletedPrimitives()) { 96 95 if (osm.keys != null) { 97 for (Entry< Key, String> ent : osm.keys.entrySet()) {96 for (Entry<String, String> ent : osm.keys.entrySet()) { 98 97 if (match(lastSearch, ent.getKey(), ent.getValue())) { 99 98 osm.setSelected(true); … … 106 105 Main.main.getMapFrame().repaint(); 107 106 } 108 private boolean match(String search, Keykey, String value) {107 private boolean match(String search, String key, String value) { 109 108 int colon = search.indexOf(':'); 110 109 if (colon == -1) 111 return key. name.indexOf(search) != -1 || value.indexOf(search) != -1;112 return key. name.equals(search.substring(0, colon)) && value.indexOf(search.substring(colon+1)) != -1;110 return key.indexOf(search) != -1 || value.indexOf(search) != -1; 111 return key.equals(search.substring(0, colon)) && value.indexOf(search.substring(colon+1)) != -1; 113 112 } 114 113 });
Note:
See TracChangeset
for help on using the changeset viewer.