Ticket #5564: DefaultValuesFilling-property_4018.diff
File DefaultValuesFilling-property_4018.diff, 4.5 KB (added by , 13 years ago) |
---|
-
src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
56 56 import org.openstreetmap.josm.data.osm.RelationMember; 57 57 import org.openstreetmap.josm.data.osm.Tag; 58 58 import org.openstreetmap.josm.data.osm.Way; 59 import org.openstreetmap.josm.data.preferences.BooleanProperty; 59 60 import org.openstreetmap.josm.gui.ExtendedDialog; 60 61 import org.openstreetmap.josm.gui.MapView; 61 62 import org.openstreetmap.josm.gui.QuadStateCheckBox; … … 113 114 public String locale_name; 114 115 public final static String OPTIONAL_TOOLTIP_TEXT = "Optional tooltip text"; 115 116 private static File zipIcons = null; 117 // filling default values for tagged osm primitives feature - see http://josm.openstreetmap.de/ticket/5564 118 private static final BooleanProperty PROP_FILL_DEFAULT = new BooleanProperty("taggingpreset.fill-default-for-tagged-primitives", false); 116 119 117 120 public static abstract class Item { 118 121 protected void initAutoCompletionField(AutoCompletingTextField field, String key) { … … 246 249 AutoCompletingTextField textField = new AutoCompletingTextField(); 247 250 initAutoCompletionField(textField, key); 248 251 if (usage.unused()){ 249 if (use_last_as_default && lastValue.containsKey(key)) { 250 textField.setText(lastValue.get(key)); 252 if (!usage.hadKeys() || PROP_FILL_DEFAULT.get()) { 253 // selected osm primitives are untagged or filling default values feature is enabled 254 if (use_last_as_default && lastValue.containsKey(key)) { 255 textField.setText(lastValue.get(key)); 256 } else { 257 textField.setText(default_); 258 } 251 259 } else { 252 textField.setText(default_); 260 // selected osm primitives are tagged and filling default values feature is disabled 261 textField.setText(""); 253 262 } 254 263 value = textField; 255 264 originalValue = null; … … 336 345 oneValue = s; 337 346 } 338 347 if (usage.values.size() < 2 && (oneValue == null || value_on.equals(oneValue) || value_off.equals(oneValue))) { 339 if (def)340 {348 if (def && !PROP_FILL_DEFAULT.get()) { 349 // default is set and filling default values feature is disabled - check if all primitives are untagged 341 350 for (OsmPrimitive s : sel) 342 351 if(s.hasKeys()) { 343 352 def = false; … … 487 496 tf.getAutoCompletionList().add(Arrays.asList(display_array), AutoCompletionItemPritority.IS_IN_STANDARD); 488 497 combo.setEditor(tf); 489 498 490 if (usage.hasUniqueValue() && !usage.unused()){ 499 if (usage.hasUniqueValue()) { 500 // all items have the same value (and there were no unset items) 491 501 originalValue=lhm.get(usage.getFirst()); 502 combo.setSelectedItem(originalValue); 492 503 } 493 // use default only in case it is a totally new entry 494 else if(def != null && !usage.hadKeys()) { 504 else if (def != null && usage.unused()) { 505 // default is set and all items were unset 506 if (!usage.hadKeys() || PROP_FILL_DEFAULT.get()) { 507 // selected osm primitives are untagged or filling default feature is enabled 508 combo.setSelectedItem(def); 509 } else { 510 // selected osm primitives are tagged and filling default feature is disabled 511 combo.setSelectedItem(""); 512 } 495 513 originalValue=lhm.get(DIFFERENT); 496 514 } 497 else if(usage.unused()){ 515 else if (usage.unused()) { 516 // all items were unset (and so is default) 498 517 originalValue=lhm.get(""); 518 combo.setSelectedItem(originalValue); 499 519 } 500 else {520 else { 501 521 originalValue=lhm.get(DIFFERENT); 522 combo.setSelectedItem(originalValue); 502 523 } 503 combo.setSelectedItem(originalValue);504 524 505 525 if(locale_text == null) { 506 526 if(text_context != null) {