Changeset 4218 in josm


Ignore:
Timestamp:
Jul 9, 2011 9:54:22 PM (23 months 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.