Changeset 3214 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
- Timestamp:
- 02.05.2010 18:12:34 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
r3210 r3214 26 26 import java.util.HashMap; 27 27 import java.util.HashSet; 28 import java.util.Iterator; 28 29 import java.util.List; 29 30 import java.util.Map; … … 81 82 import org.openstreetmap.josm.gui.tagging.TaggingPreset; 82 83 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox; 84 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList; 85 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem; 83 86 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager; 84 87 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher; … … 148 151 private final Map<String, Map<String, Integer>> valueCount = new TreeMap<String, Map<String, Integer>>(); 149 152 150 Comparator<String> defaultKeyComparator = String.CASE_INSENSITIVE_ORDER; 151 Comparator<String> defaultValueComparator = String.CASE_INSENSITIVE_ORDER; 153 Comparator<AutoCompletionListItem> defaultACItemComparator = new Comparator<AutoCompletionListItem>() { 154 public int compare(AutoCompletionListItem o1, AutoCompletionListItem o2) { 155 return String.CASE_INSENSITIVE_ORDER.compare(o1.getValue(), o2.getValue()); 156 } 157 }; 152 158 153 159 private DataSetListenerAdapter dataChangedAdapter = new DataSetListenerAdapter(this); … … 191 197 192 198 AutoCompletionManager autocomplete = Main.main.getEditLayer().data.getAutoCompletionManager(); 193 199 List<AutoCompletionListItem> keyList = autocomplete.getKeys(); 200 Collections.sort(keyList, defaultACItemComparator); 201 194 202 final AutoCompletingComboBox keys = new AutoCompletingComboBox(); 195 keys.setPossible Items(autocomplete.getKeys(defaultKeyComparator));203 keys.setPossibleACItems(keyList); 196 204 keys.setEditable(true); 197 205 keys.setSelectedItem(key); … … 209 217 if (c instanceof JLabel) { 210 218 String str = null; 211 str=( String) value;219 str=((AutoCompletionListItem) value).getValue(); 212 220 if (valueCount.containsKey(objKey)){ 213 221 Map<String, Integer> m=valueCount.get(objKey); … … 223 231 }); 224 232 values.setEditable(true); 225 values.setPossibleItems(autocomplete.getValues(key, defaultValueComparator)); 233 234 List<AutoCompletionListItem> valueList = autocomplete.getValues(key); 235 Collections.sort(valueList, defaultACItemComparator); 236 237 values.setPossibleACItems(valueList); 226 238 Map<String, Integer> m=(Map<String, Integer>)propertyData.getValueAt(row, 1); 227 239 final String selection= m.size()!=1?tr("<different>"):m.entrySet().iterator().next().getKey(); … … 344 356 final AutoCompletingComboBox keys = new AutoCompletingComboBox(); 345 357 AutoCompletionManager autocomplete = Main.main.getEditLayer().data.getAutoCompletionManager(); 346 List<String> usedKeys = 347 new ArrayList<String>(autocomplete.getKeys(defaultKeyComparator)); 348 for (int i = 0; i < propertyData.getRowCount(); ++i) { 349 usedKeys.remove(propertyData.getValueAt(i, 0)); 350 } 351 keys.setPossibleItems(usedKeys); 358 List<AutoCompletionListItem> keyList = autocomplete.getKeys(); 359 360 // remove the object's tag keys from the list 361 Iterator<AutoCompletionListItem> iter = keyList.iterator(); 362 while (iter.hasNext()) { 363 AutoCompletionListItem item = iter.next(); 364 for (int i = 0; i < propertyData.getRowCount(); ++i) { 365 if (item.getValue().equals(propertyData.getValueAt(i, 0))) { 366 iter.remove(); 367 break; 368 } 369 } 370 } 371 372 Collections.sort(keyList, defaultACItemComparator); 373 keys.setPossibleACItems(keyList); 352 374 keys.setEditable(true); 353 375 … … 397 419 @Override public void focusGained(FocusEvent e) { 398 420 String key = keys.getEditor().getItem().toString(); 399 values.setPossibleItems(autocomplete.getValues(key, defaultValueComparator)); 421 422 List<AutoCompletionListItem> valueList = autocomplete.getValues(key); 423 Collections.sort(valueList, defaultACItemComparator); 424 425 values.setPossibleACItems(valueList); 400 426 objKey=key; 401 427 }
Note: See TracChangeset
for help on using the changeset viewer.
