Changeset 4218 in josm for trunk/src/org/openstreetmap


Ignore:
Timestamp:
2011-07-09T21:54:22+02:00 (13 years ago)
Author:
stoecker
Message:

introduce force parameter for use_last_as_default and fix default value handling for multiselect

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

    r4185 r4218  
    236236        public String default_;
    237237        public String originalValue;
    238         public boolean use_last_as_default = false;
     238        public String use_last_as_default = "false";
    239239        public boolean delete_if_empty = false;
    240240        public boolean required = false;
     
    249249            initAutoCompletionField(textField, key);
    250250            if (usage.unused()){
    251                 if (!usage.hadKeys() || PROP_FILL_DEFAULT.get()) {
     251                if (!usage.hadKeys() || PROP_FILL_DEFAULT.get() || "force".equals(use_last_as_default)) {
    252252                    // selected osm primitives are untagged or filling default values feature is enabled
    253                     if (use_last_as_default && lastValue.containsKey(key)) {
     253                    if (!"false".equals(use_last_as_default) && lastValue.containsKey(key)) {
    254254                        textField.setText(lastValue.get(key));
    255255                    } else {
     
    297297                        ((JTextField)value).getText();
    298298
    299                     if (use_last_as_default) {
     299                    if (!"false".equals(use_last_as_default)) {
    300300                        lastValue.put(key, v);
    301301                    }
     
    319319        public String value_off = OsmUtils.falseval;
    320320        public boolean default_ = false; // only used for tagless objects
    321         public boolean use_last_as_default = false;
    322321        public boolean required = false;
    323322
     
    411410        public boolean delete_if_empty = false;
    412411        public boolean editable = true;
    413         public boolean use_last_as_default = false;
     412        public String use_last_as_default = "false";
    414413        public boolean required = false;
    415414
     
    446445            }
    447446
    448             if (use_last_as_default && def == null && lastValue.containsKey(key)) {
     447            if (!"false".equals(use_last_as_default) && def == null && lastValue.containsKey(key)) {
    449448                def = lastValue.get(key);
    450449            }
     
    503502            else if (def != null && usage.unused()) {
    504503                // default is set and all items were unset
    505                 if (!usage.hadKeys() || PROP_FILL_DEFAULT.get()) {
     504                if (!usage.hadKeys() || PROP_FILL_DEFAULT.get() || "force".equals(use_last_as_default)) {
    506505                    // selected osm primitives are untagged or filling default feature is enabled
    507506                    combo.setSelectedItem(def);
     
    605604                value = null;
    606605            }
    607             if (use_last_as_default) {
     606            if (!"false".equals(use_last_as_default)) {
    608607                lastValue.put(key, value);
    609608            }
     
    681680        public String delimiter = ";";
    682681        public boolean delete_if_empty = false;
    683         public boolean use_last_as_default = false;
     682        public String use_last_as_default = "false";
    684683        public boolean required = false;
    685684        public long rows = -1;
     
    722721            }
    723722
    724             if (use_last_as_default && def == null && lastValue.containsKey(key)) {
     723            if (!"false".equals(use_last_as_default) && def == null && lastValue.containsKey(key)) {
    725724                def = lastValue.get(key);
    726725            }
     
    758757            if (usage.hasUniqueValue() && !usage.unused()) {
    759758                originalValue=usage.getFirst();
    760             }
    761             else if (def != null && !usage.hadKeys()) {
    762                 originalValue=def;
     759                list.setSelectedItem(originalValue);
     760            }
     761            else if (def != null && !usage.hadKeys() || PROP_FILL_DEFAULT.get() || "force".equals(use_last_as_default)) {
     762                originalValue=DIFFERENT;
     763                list.setSelectedItem(def);
    763764            }
    764765            else if (usage.unused()) {
    765766                originalValue=null;
     767                list.setSelectedItem(originalValue);
    766768            }
    767769            else {
    768770                originalValue=DIFFERENT;
    769             }
    770             list.setSelectedItem(originalValue);
     771                list.setSelectedItem(originalValue);
     772            }
    771773
    772774            if (locale_text == null) {
     
    859861                value = null;
    860862            }
    861             if (use_last_as_default) {
     863            if (!"false".equals(use_last_as_default)) {
    862864                lastValue.put(key, value);
    863865            }
Note: See TracChangeset for help on using the changeset viewer.