Changeset 3481 in josm


Ignore:
Timestamp:
Aug 29, 2010 3:30:31 PM (3 years ago)
Author:
stoecker
Message:

add use_last_as_default for combos, fix long-time broken tagged/untagged detection for combo-box and textbox default value selection

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/defaultpresets.xml

    r3475 r3481  
    35013501                <text key="addr:city" text="City name" use_last_as_default="true" delete_if_empty="true" /> 
    35023502                <text key="addr:postcode" text="Post code" use_last_as_default="true" delete_if_empty="true" /> 
    3503                 <text key="addr:country" text="Country code" use_last_as_default="true" delete_if_empty="true" /> 
     3503                <combo key="addr:country" text="Country code" values="AT,CH,DE,FR,GB,IT,US" use_last_as_default="true" delete_if_empty="true" /> 
    35043504            </optional> 
    35053505        </item> 
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

    r3472 r3481  
    145145                returnValue.hadEmpty = true; 
    146146            } 
    147             returnValue.hadKeys = ! returnValue.values.isEmpty() | returnValue.hadEmpty; 
     147            if(s.hasKeys()) { 
     148                returnValue.hadKeys = true; 
     149            } 
    148150        } 
    149151        return returnValue; 
     
    347349            // find out if our key is already used in the selection. 
    348350            usage = determineTextUsage(sel, key); 
     351            String def = default_; 
    349352 
    350353            String[] value_array = values.split(","); 
     
    359362            } 
    360363 
     364            if(use_last_as_default && def == null && lastValue.containsKey(key)) 
     365            { 
     366                def = lastValue.get(key); 
     367            } 
     368 
    361369            if (display_array.length != value_array.length) { 
    362370                System.err.println(tr("Broken tagging preset \"{0}-{1}\" - number of items in display_values must be the same as in values", key, text)); 
     
    380388                } 
    381389            } 
    382             if (default_ != null && !lhm.containsKey(default_)) { 
    383                 lhm.put(default_, default_); 
     390            if (def != null && !lhm.containsKey(def)) { 
     391                lhm.put(def, def); 
    384392            } 
    385393            if(!lhm.containsKey("")) { 
     
    400408            } 
    401409            // use default only in case it is a totally new entry 
    402             else if(default_ != null && !usage.hadKeys()) { 
    403                 combo.setSelectedItem(default_); 
     410            else if(def != null && !usage.hadKeys()) { 
     411                combo.setSelectedItem(def); 
    404412                originalValue=DIFFERENT; 
    405413            } 
     
    452460            if (delete_if_empty && value.length() == 0) { 
    453461                value = null; 
     462            } 
     463            if (use_last_as_default) { 
     464                lastValue.put(key, value); 
    454465            } 
    455466            cmds.add(new ChangePropertyCommand(sel, key, value)); 
Note: See TracChangeset for help on using the changeset viewer.