Changeset 6425 in josm for trunk/src


Ignore:
Timestamp:
2013-11-29T20:46:07+01:00 (10 years ago)
Author:
simon04
Message:

see #9309 - presets: make selected combo/multiselect values searchable/findable via F3

Location:
trunk/src/org/openstreetmap/josm/gui/tagging
Files:
2 edited

Legend:

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

    r6340 r6425  
    865865        public String delimiter = ";";
    866866        public String use_last_as_default = "false";
     867        /** whether to use values for search via {@link TaggingPresetSelector} */
     868        public String values_searchable = "false";
    867869
    868870        protected JComponent component;
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetSelector.java

    r6078 r6425  
    123123            TaggingPreset group = preset.group;
    124124            while (group != null) {
    125                 for (String word: group.getLocaleName().toLowerCase().split("\\s")) {
    126                     groups.add(word);
    127                 }
     125                Collections.addAll(groups, group.getLocaleName().toLowerCase().split("\\s"));
    128126                group = group.group;
    129127            }
    130             for (String word: preset.getLocaleName().toLowerCase().split("\\s")) {
    131                 names.add(word);
    132             }
     128            Collections.addAll(names, preset.getLocaleName().toLowerCase().split("\\s"));
    133129            for (TaggingPresetItem item: preset.data) {
    134130                if (item instanceof KeyedItem) {
    135131                    tags.add(((KeyedItem) item).key);
    136                     // Should combo values also be added?
     132                    if (item instanceof TaggingPresetItems.ComboMultiSelect) {
     133                        final TaggingPresetItems.ComboMultiSelect cms = (TaggingPresetItems.ComboMultiSelect) item;
     134                        if (Boolean.parseBoolean(cms.values_searchable)) {
     135                            tags.addAll(cms.getDisplayValues());
     136                        }
     137                    }
    137138                    if (item instanceof Key && ((Key) item).value != null) {
    138139                        tags.add(((Key) item).value);
     
    152153                boolean foundFirst = false;
    153154                for (String value: values) {
    154                     int index = value.indexOf(word);
     155                    int index = value.toLowerCase().indexOf(word);
    155156                    if (index == 0) {
    156157                        foundFirst = true;
Note: See TracChangeset for help on using the changeset viewer.