Ticket #5564: DefaultValuesFilling-property.diff
File DefaultValuesFilling-property.diff, 4.6 KB (added by , 14 years ago) |
---|
-
src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
51 51 import org.openstreetmap.josm.data.osm.RelationMember; 52 52 import org.openstreetmap.josm.data.osm.Tag; 53 53 import org.openstreetmap.josm.data.osm.Way; 54 import org.openstreetmap.josm.data.preferences.BooleanProperty; 54 55 import org.openstreetmap.josm.gui.ExtendedDialog; 55 56 import org.openstreetmap.josm.gui.MapView; 56 57 import org.openstreetmap.josm.gui.QuadStateCheckBox; … … 104 105 public String locale_name; 105 106 public final static String OPTIONAL_TOOLTIP_TEXT = "Optional tooltip text"; 106 107 private static File zipIcons = null; 108 // filling default values for tagged osm primitives feature - see http://josm.openstreetmap.de/ticket/5564 109 private static final BooleanProperty PROP_FILL_DEFAULT = new BooleanProperty("taggingpreset.fill-default-for-tagged-primitives", false); 107 110 108 111 public static abstract class Item { 109 112 protected void initAutoCompletionField(AutoCompletingTextField field, String key) { … … 192 195 AutoCompletingTextField textField = new AutoCompletingTextField(); 193 196 initAutoCompletionField(textField, key); 194 197 if (usage.unused()){ 195 if (use_last_as_default && lastValue.containsKey(key)) { 196 textField.setText(lastValue.get(key)); 198 if (!usage.hadKeys() || PROP_FILL_DEFAULT.get()) { 199 // selected osm primitives are untagged or filling default values feature is enabled 200 if (use_last_as_default && lastValue.containsKey(key)) { 201 textField.setText(lastValue.get(key)); 202 } else { 203 textField.setText(default_); 204 } 197 205 } else { 198 textField.setText(default_); 206 // selected osm primitives are tagged and filling default values feature is disabled 207 textField.setText(""); 199 208 } 200 209 value = textField; 201 210 originalValue = null; … … 282 291 oneValue = s; 283 292 } 284 293 if (usage.values.size() < 2 && (oneValue == null || value_on.equals(oneValue) || value_off.equals(oneValue))) { 285 if (def)286 {294 if (def && !PROP_FILL_DEFAULT.get()) { 295 // default is set and filling default values feature is disabled - check if all primitives are untagged 287 296 for (OsmPrimitive s : sel) 288 297 if(s.hasKeys()) { 289 298 def = false; … … 412 421 tf.getAutoCompletionList().add(Arrays.asList(display_array), AutoCompletionItemPritority.IS_IN_STANDARD); 413 422 combo.setEditor(tf); 414 423 415 if (usage.hasUniqueValue() && !usage.unused()){ 416 originalValue=usage.getFirst(); 424 if (usage.hasUniqueValue()) { 425 // all items have the same value (and there were no unset items) 426 originalValue = usage.getFirst(); 417 427 combo.setSelectedItem(lhm.get(originalValue)); 418 428 } 419 // use default only in case it is a totally new entry 420 else if(def != null && !usage.hadKeys()) { 421 combo.setSelectedItem(def); 422 originalValue=DIFFERENT; 429 else if (def != null && usage.unused()) { 430 // default is set and all items were unset 431 if (!usage.hadKeys() || PROP_FILL_DEFAULT.get()) { 432 // selected osm primitives are untagged or filling default feature is enabled 433 combo.setSelectedItem(def); 434 } else { 435 // selected osm primitives are tagged and filling default feature is disabled 436 combo.setSelectedItem(""); 437 } 438 originalValue = DIFFERENT; 423 439 } 424 else if(usage.unused()){ 440 else if (usage.unused()) { 441 // all items were unset (and so is default) 425 442 combo.setSelectedItem(""); 426 originalValue ="";443 originalValue = ""; 427 444 } 428 else {445 else { 429 446 combo.setSelectedItem(DIFFERENT); 430 originalValue =DIFFERENT;447 originalValue = DIFFERENT; 431 448 } 432 449 433 450 if(locale_text == null) {