Changeset 4218 in josm


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

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/defaultpresets.xml

    r4210 r4218  
    3131  default: default string to display
    3232  delete_if_empty: true/false
    33   use_last_as_default: true/false
     33  use_last_as_default: true/false/force
    3434
    3535combo: combo box, with multiple choices and possible to enter free form text
     
    4848  default: default string to display
    4949  delete_if_empty: true/false
    50   use_last_as_default: true/false
     50  use_last_as_default: true/false/force
    5151
    5252multiselect: list of values from which zero or more can be selected
     
    6868  default: default string to display
    6969  delete_if_empty: true/false
    70   use_last_as_default: true/false
     70  use_last_as_default: true/false/force
    7171
    7272check: checkbox
     
    40684068            <optional>
    40694069                <text key="addr:housename" text="House name" default="" delete_if_empty="true" />
    4070                 <text key="addr:street" text="Street name" use_last_as_default="true" delete_if_empty="true" />
    4071                 <text key="addr:city" text="City name" use_last_as_default="true" delete_if_empty="true" />
    4072                 <text key="addr:postcode" text="Post code" use_last_as_default="true" delete_if_empty="true" />
    4073                 <combo key="addr:country" text="Country code" values="AT,CH,DE,FR,GB,IT,US" use_last_as_default="true" delete_if_empty="true" />
     4070                <text key="addr:street" text="Street name" use_last_as_default="force" delete_if_empty="true" />
     4071                <text key="addr:city" text="City name" use_last_as_default="force" delete_if_empty="true" />
     4072                <text key="addr:postcode" text="Post code" use_last_as_default="force" delete_if_empty="true" />
     4073                <combo key="addr:country" text="Country code" values="AT,CH,DE,FR,GB,IT,US" use_last_as_default="force" delete_if_empty="true" />
    40744074            </optional>
    40754075        </item>
  • trunk/data/tagging-preset.xsd

    r3839 r4218  
    114114                <attribute name="default" type="string" />
    115115                <attribute name="delete_if_empty" type="boolean" />
    116                 <attribute name="use_last_as_default" type="boolean" />
     116                <attribute name="use_last_as_default" type="tns:last_default" />
    117117                <attribute name="required" type="boolean" />
    118118
     
    136136                <attribute name="display_values" type="string" />
    137137                <attribute name="default" type="string" />
     138                <attribute name="use_last_as_default" type="tns:last_default" />
    138139                <attribute name="editable" type="boolean" />
    139140                <attribute name="delete_if_empty" type="boolean" />
     
    156157                <attribute name="display_values" type="string" />
    157158                <attribute name="default" type="string" />
     159                <attribute name="use_last_as_default" type="tns:last_default" />
    158160                <attribute name="delimiter" type="string" />
    159161                <attribute name="delete_if_empty" type="boolean" />
     
    173175                <attribute name="text_context" type="string" />
    174176                <attribute name="default" type="tns:check_default" />
    175                 <attribute name="use_last_as_default" type="boolean" />
    176177                <attribute name="required" type="boolean" />
    177178                <attribute name="value_on" type="string" />
     
    191192        </simpleType>
    192193
     194        <simpleType name="last_default">
     195                <restriction base="string">
     196                        <enumeration value="true" />
     197                        <enumeration value="false" />
     198                        <enumeration value="force" />
     199                </restriction>
     200        </simpleType>
     201
    193202        <complexType name="roles">
    194203                <sequence>
  • 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.