Changeset 17077 in josm


Ignore:
Timestamp:
2020-09-30T23:55:37+02:00 (4 years ago)
Author:
Don-vip
Message:

fix #19813 - see #16031 - fix selection of Multiselect presets (regression from r16687:16688)

Location:
trunk/src/org/openstreetmap/josm/gui/tagging/presets/items
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Combo.java

    r16688 r17077  
    7777        }
    7878        combobox.setEditor(tf);
    79         combobox.setSelectedItem(getItemToSelect(def, presetInitiallyMatches));
     79        combobox.setSelectedItem(getItemToSelect(def, presetInitiallyMatches, false));
    8080
    8181        if (key != null && ("colour".equals(key) || key.startsWith("colour:") || key.endsWith(":colour"))) {
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java

    r16733 r17077  
    342342    }
    343343
    344     protected Object getItemToSelect(String def, boolean presetInitiallyMatches) {
     344    protected Object getItemToSelect(String def, boolean presetInitiallyMatches, boolean multi) {
    345345        final Object itemToSelect;
    346346        if (usage.hasUniqueValue()) {
    347347            // all items have the same value (and there were no unset items)
    348             originalValue = getListEntry(usage.getFirst());
     348            originalValue = multi ? usage.getFirst() : getListEntry(usage.getFirst());
    349349            itemToSelect = originalValue;
    350350        } else if (def != null && usage.unused()) {
     
    352352            if (!usage.hadKeys() || PROP_FILL_DEFAULT.get() || isForceUseLastAsDefault()) {
    353353                // selected osm primitives are untagged or filling default feature is enabled
    354                 PresetListEntry entry = getListEntry(def);
    355                 itemToSelect = entry == null ? "" : entry.getDisplayValue();
     354                if (multi) {
     355                    itemToSelect = def;
     356                } else {
     357                    PresetListEntry entry = getListEntry(def);
     358                    itemToSelect = entry == null ? "" : entry.getDisplayValue();
     359                }
    356360            } else {
    357361                // selected osm primitives are tagged and filling default feature is disabled
    358362                itemToSelect = "";
    359363            }
    360             originalValue = getListEntry(DIFFERENT);
     364            originalValue = multi ? DIFFERENT : getListEntry(DIFFERENT);
    361365        } else if (usage.unused()) {
    362366            // all items were unset (and so is default)
    363             originalValue = getListEntry("");
     367            originalValue = multi ? null : getListEntry("");
    364368            if (LAST_VALUES.containsKey(key) && isUseLastAsDefault() && (!presetInitiallyMatches || isForceUseLastAsDefault())) {
    365369                itemToSelect = getListEntry(LAST_VALUES.get(key));
     
    368372            }
    369373        } else {
    370             originalValue = getListEntry(DIFFERENT);
     374            originalValue = multi ? DIFFERENT : getListEntry(DIFFERENT);
    371375            itemToSelect = originalValue;
    372376        }
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/MultiSelect.java

    r16689 r17077  
    3535        ListCellRenderer<PresetListEntry> renderer = getListCellRenderer();
    3636        list.setCellRenderer(renderer);
    37         list.setSelectedItem(getItemToSelect(def, presetInitiallyMatches));
    38 
     37        list.setSelectedItem(getItemToSelect(def, presetInitiallyMatches, true));
    3938        JScrollPane sp = new JScrollPane(list);
    4039        // if a number of rows has been specified in the preset,
Note: See TracChangeset for help on using the changeset viewer.