Changeset 8863 in josm for trunk


Ignore:
Timestamp:
2015-10-12T22:58:25+02:00 (9 years ago)
Author:
Don-vip
Message:

major code cleanup/refactoring of tagging presets: slay the monster TaggingPresetItems (60 Kb, 1600 lines) and extract all its internal classes to a new package gui.tagging.presets.items

Location:
trunk
Files:
21 added
1 deleted
21 edited
17 moved

Legend:

Unmodified
Added
Removed
  • trunk/scripts/taginfoextract.groovy

    r8717 r8863  
    3737import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser
    3838import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference
    39 import org.openstreetmap.josm.gui.tagging.TaggingPreset
    40 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems
    41 import org.openstreetmap.josm.gui.tagging.TaggingPresetReader
    42 import org.openstreetmap.josm.gui.tagging.TaggingPresetType
     39import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset
     40import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetReader
     41import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType
     42import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem
     43import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem.MatchType
    4344import org.openstreetmap.josm.io.CachedFile
    4445import org.openstreetmap.josm.tools.Utils
     
    252253        def tags = []
    253254        for (TaggingPreset preset : presets) {
    254             for (TaggingPresetItems.KeyedItem item : Utils.filteredCollection(preset.data, TaggingPresetItems.KeyedItem.class)) {
     255            for (KeyedItem item : Utils.filteredCollection(preset.data, KeyedItem.class)) {
    255256                def values
    256                 switch (TaggingPresetItems.MatchType.ofString(item.match)) {
    257                     case TaggingPresetItems.MatchType.KEY_REQUIRED: values = item.getValues(); break;
    258                     case TaggingPresetItems.MatchType.KEY_VALUE_REQUIRED: values = item.getValues(); break;
     257                switch (MatchType.ofString(item.match)) {
     258                    case MatchType.KEY_REQUIRED: values = item.getValues(); break;
     259                    case MatchType.KEY_VALUE_REQUIRED: values = item.getValues(); break;
    259260                    default: values = [];
    260261                }
     
    463464        }
    464465    }
    465 
    466466}
    467 
  • trunk/src/org/openstreetmap/josm/Main.java

    r8857 r8863  
    9999import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor;
    100100import org.openstreetmap.josm.gui.progress.ProgressMonitorExecutor;
    101 import org.openstreetmap.josm.gui.tagging.TaggingPresets;
     101import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    102102import org.openstreetmap.josm.gui.util.RedirectInputMap;
    103103import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
  • trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java

    r8840 r8863  
    2121import org.openstreetmap.josm.data.validation.Test;
    2222import org.openstreetmap.josm.data.validation.TestError;
    23 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    24 import org.openstreetmap.josm.gui.tagging.TaggingPresetItem;
    25 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Key;
    26 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Role;
    27 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Roles;
    28 import org.openstreetmap.josm.gui.tagging.TaggingPresetType;
    29 import org.openstreetmap.josm.gui.tagging.TaggingPresets;
     23import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     24import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
     25import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
     26import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
     27import org.openstreetmap.josm.gui.tagging.presets.items.Key;
     28import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
     29import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
    3030import org.openstreetmap.josm.tools.Utils;
    3131
  • trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java

    r8855 r8863  
    4545import org.openstreetmap.josm.gui.preferences.validator.ValidatorPreference;
    4646import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    47 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    48 import org.openstreetmap.josm.gui.tagging.TaggingPresetItem;
    49 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Check;
    50 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.CheckGroup;
    51 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.KeyedItem;
    52 import org.openstreetmap.josm.gui.tagging.TaggingPresets;
     47import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     48import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
     49import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
     50import org.openstreetmap.josm.gui.tagging.presets.items.Check;
     51import org.openstreetmap.josm.gui.tagging.presets.items.CheckGroup;
     52import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    5353import org.openstreetmap.josm.gui.widgets.EditableList;
    5454import org.openstreetmap.josm.io.CachedFile;
  • trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java

    r8846 r8863  
    3737import org.openstreetmap.josm.data.osm.history.HistoryRelation;
    3838import org.openstreetmap.josm.data.osm.history.HistoryWay;
    39 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    40 import org.openstreetmap.josm.gui.tagging.TaggingPresetNameTemplateList;
     39import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     40import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetNameTemplateList;
    4141import org.openstreetmap.josm.tools.AlphanumComparator;
    4242import org.openstreetmap.josm.tools.I18n;
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r8840 r8863  
    130130import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference;
    131131import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    132 import org.openstreetmap.josm.gui.tagging.TaggingPresetSearchAction;
    133 import org.openstreetmap.josm.gui.tagging.TaggingPresetSearchPrimitiveDialog;
     132import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSearchAction;
     133import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSearchPrimitiveDialog;
    134134import org.openstreetmap.josm.gui.widgets.DisableShortcutsOnFocusGainedTextField;
    135135import org.openstreetmap.josm.tools.Shortcut;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java

    r7128 r8863  
    33
    44import org.openstreetmap.josm.data.osm.OsmPrimitive;
    5 import org.openstreetmap.josm.gui.tagging.PresetHandler;
    6 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    7 import org.openstreetmap.josm.gui.tagging.TaggingPresetType;
    8 import org.openstreetmap.josm.gui.tagging.PresetLabel;
     5import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
     6import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetLabel;
     7import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     8import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    99import org.openstreetmap.josm.tools.GBC;
    1010
     
    3434     * and associates an interaction with (matching) presets via {@code presetHandler}.
    3535     */
    36     public void updatePresets(final Collection<TaggingPresetType> types, final Map<String, String> tags, final PresetHandler presetHandler) {
     36    public void updatePresets(final Collection<TaggingPresetType> types, final Map<String, String> tags, final TaggingPresetHandler presetHandler) {
    3737
    3838        removeAll();
     
    4343
    4444        for (final TaggingPreset t : TaggingPreset.getMatchingPresets(types, tags, true)) {
    45             final JLabel lbl = new PresetLabel(t);
     45            final JLabel lbl = new TaggingPresetLabel(t);
    4646            lbl.addMouseListener(new MouseAdapter() {
    4747                @Override
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r8846 r8863  
    8585import org.openstreetmap.josm.gui.help.HelpUtil;
    8686import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    87 import org.openstreetmap.josm.gui.tagging.PresetHandler;
    88 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    89 import org.openstreetmap.josm.gui.tagging.TaggingPresetType;
     87import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
     88import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     89import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    9090import org.openstreetmap.josm.gui.util.GuiHelper;
    9191import org.openstreetmap.josm.gui.util.HighlightHelper;
     
    215215            + tr("Select objects for which to change tags.") + "</p></html>");
    216216
    217     private final transient PresetHandler presetHandler = new PresetHandler() {
     217    private final transient TaggingPresetHandler presetHandler = new TaggingPresetHandler() {
    218218        @Override public void updateTags(List<Tag> tags) {
    219219            Command command = TaggingPreset.createCommand(getSelection(), tags);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java

    r8846 r8863  
    6969import org.openstreetmap.josm.gui.ExtendedDialog;
    7070import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
    71 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    7271import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
    7372import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem;
    7473import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
     74import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
    7575import org.openstreetmap.josm.gui.util.GuiHelper;
    7676import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java

    r8855 r8863  
    7979import org.openstreetmap.josm.gui.help.HelpUtil;
    8080import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    81 import org.openstreetmap.josm.gui.tagging.PresetHandler;
    8281import org.openstreetmap.josm.gui.tagging.TagEditorModel;
    8382import org.openstreetmap.josm.gui.tagging.TagEditorPanel;
    84 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    85 import org.openstreetmap.josm.gui.tagging.TaggingPresetType;
    8683import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
    8784import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList;
     85import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
     86import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     87import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    8888import org.openstreetmap.josm.io.OnlineResource;
    8989import org.openstreetmap.josm.tools.CheckParameterUtil;
     
    137137                WindowGeometry.centerInWindow(Main.parent, new Dimension(700, 650)));
    138138
    139         final PresetHandler presetHandler = new PresetHandler() {
     139        final TaggingPresetHandler presetHandler = new TaggingPresetHandler() {
    140140
    141141            @Override
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

    r8855 r8863  
    3939import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator;
    4040import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    41 import org.openstreetmap.josm.gui.tagging.PresetHandler;
    42 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    43 import org.openstreetmap.josm.gui.tagging.TaggingPresetType;
     41import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
     42import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     43import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    4444import org.openstreetmap.josm.gui.widgets.OsmPrimitivesTableModel;
    4545
     
    5656    private final CopyOnWriteArrayList<IMemberModelListener> listeners;
    5757    private final transient OsmDataLayer layer;
    58     private final transient PresetHandler presetHandler;
     58    private final transient TaggingPresetHandler presetHandler;
    5959
    6060    private final transient WayConnectionTypeCalculator wayConnectionTypeCalculator = new WayConnectionTypeCalculator();
     
    6464     * constructor
    6565     */
    66     public MemberTableModel(OsmDataLayer layer, PresetHandler presetHandler) {
     66    public MemberTableModel(OsmDataLayer layer, TaggingPresetHandler presetHandler) {
    6767        members = new ArrayList<>();
    6868        listeners = new CopyOnWriteArrayList<>();
  • trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java

    r8840 r8863  
    6969import org.openstreetmap.josm.actions.ParameterizedAction;
    7070import org.openstreetmap.josm.actions.ParameterizedActionDecorator;
    71 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
     71import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
    7272import org.openstreetmap.josm.tools.GBC;
    7373import org.openstreetmap.josm.tools.ImageProvider;
  • trunk/src/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreference.java

    r8836 r8863  
    2828import org.openstreetmap.josm.gui.preferences.SourceEditor;
    2929import org.openstreetmap.josm.gui.preferences.SourceEditor.ExtendedSourceEntry;
     30import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetReader;
    3031import org.openstreetmap.josm.gui.preferences.SourceEntry;
    3132import org.openstreetmap.josm.gui.preferences.SourceProvider;
     
    3334import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
    3435import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
    35 import org.openstreetmap.josm.gui.tagging.TaggingPresetReader;
    3636import org.openstreetmap.josm.tools.GBC;
    3737import org.xml.sax.SAXException;
  • trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java

    r8760 r8863  
    2323import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList;
    2424import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
     25import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
     26import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    2527import org.openstreetmap.josm.tools.CheckParameterUtil;
    2628
     
    3941
    4042    private PresetListPanel presetListPanel;
    41     private final transient PresetHandler presetHandler;
     43    private final transient TaggingPresetHandler presetHandler;
    4244
    4345    /**
     
    140142     * internally and can be retrieved with {@link #getModel()}.
    141143     */
    142     public TagEditorPanel(PresetHandler presetHandler) {
     144    public TagEditorPanel(TaggingPresetHandler presetHandler) {
    143145        this(null, presetHandler, 0);
    144146    }
     
    151153     * @param maxCharacters maximum number of characters allowed, 0 for unlimited
    152154     */
    153     public TagEditorPanel(TagEditorModel model, PresetHandler presetHandler, final int maxCharacters) {
     155    public TagEditorPanel(TagEditorModel model, TaggingPresetHandler presetHandler, final int maxCharacters) {
    154156        this.model = model;
    155157        this.presetHandler = presetHandler;
  • trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java

    r8786 r8863  
    2828import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
    2929import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
    30 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    31 import org.openstreetmap.josm.gui.tagging.TaggingPresetItem;
    32 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems;
    33 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Role;
     30import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     31import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
     32import org.openstreetmap.josm.gui.tagging.presets.items.CheckGroup;
     33import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
     34import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
     35import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
    3436import org.openstreetmap.josm.tools.CheckParameterUtil;
    3537import org.openstreetmap.josm.tools.MultiMap;
     
    216218
    217219    protected static void cachePresetItem(TaggingPreset p, TaggingPresetItem item) {
    218         if (item instanceof TaggingPresetItems.KeyedItem) {
    219             TaggingPresetItems.KeyedItem ki = (TaggingPresetItems.KeyedItem) item;
     220        if (item instanceof KeyedItem) {
     221            KeyedItem ki = (KeyedItem) item;
    220222            if (ki.key != null && ki.getValues() != null) {
    221223                try {
     
    225227                }
    226228            }
    227         } else if (item instanceof TaggingPresetItems.Roles) {
    228             TaggingPresetItems.Roles r = (TaggingPresetItems.Roles) item;
    229             for (TaggingPresetItems.Role i : r.roles) {
     229        } else if (item instanceof Roles) {
     230            Roles r = (Roles) item;
     231            for (Role i : r.roles) {
    230232                if (i.key != null) {
    231233                    PRESET_ROLE_CACHE.add(i.key);
    232234                }
    233235            }
    234         } else if (item instanceof TaggingPresetItems.CheckGroup) {
    235             for (TaggingPresetItems.KeyedItem check : ((TaggingPresetItems.CheckGroup) item).checks) {
     236        } else if (item instanceof CheckGroup) {
     237            for (KeyedItem check : ((CheckGroup) item).checks) {
    236238                cachePresetItem(p, check);
    237239            }
  • trunk/src/org/openstreetmap/josm/gui/tagging/package-info.java

    r8624 r8863  
    22
    33/**
    4  * Provides classes for handling edition of OSM tags: tagging presets, tag tables, tag editors.
    5  * Autocompletion of tags is dealt with a subpackage.
     4 * Provides classes for handling edition of OSM tags: tag tables, tag editors.
     5 * Autocompletion of tags and tagging presets are dealt with a subpackage.
    66 */
    77package org.openstreetmap.josm.gui.tagging;
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     
    4848import org.openstreetmap.josm.gui.layer.Layer;
    4949import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
    50 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Link;
    51 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.PresetLink;
    52 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Role;
    53 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Roles;
     50import org.openstreetmap.josm.gui.tagging.presets.items.Key;
     51import org.openstreetmap.josm.gui.tagging.presets.items.Label;
     52import org.openstreetmap.josm.gui.tagging.presets.items.Link;
     53import org.openstreetmap.josm.gui.tagging.presets.items.Optional;
     54import org.openstreetmap.josm.gui.tagging.presets.items.PresetLink;
     55import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
     56import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
     57import org.openstreetmap.josm.gui.tagging.presets.items.Space;
    5458import org.openstreetmap.josm.gui.util.GuiHelper;
    5559import org.openstreetmap.josm.tools.GBC;
     
    7781    public static final int DIALOG_ANSWER_CANCEL = 3;
    7882
     83    public static final String OPTIONAL_TOOLTIP_TEXT = "Optional tooltip text";
     84
    7985    public TaggingPresetMenu group;
    8086    public String name;
     
    8389    public String locale_name;
    8490    public boolean preset_name_label;
    85     public static final String OPTIONAL_TOOLTIP_TEXT = "Optional tooltip text";
    8691
    8792    /**
     
    9398    public transient TemplateEntry nameTemplate;
    9499    public transient Match nameTemplateFilter;
     100
     101    /**
     102     * True whenever the original selection given into createSelection was empty
     103     */
     104    private boolean originalSelectionEmpty;
    95105
    96106    /**
     
    118128        if (locale_name == null) {
    119129            if (name_context != null) {
    120                 locale_name = trc(name_context, TaggingPresetItems.fixPresetString(name));
     130                locale_name = trc(name_context, TaggingPresetItem.fixPresetString(name));
    121131            } else {
    122                 locale_name = tr(TaggingPresetItems.fixPresetString(name));
     132                locale_name = tr(TaggingPresetItem.fixPresetString(name));
    123133            }
    124134        }
     
    190200     */
    191201    public void setType(String types) throws SAXException {
    192         this.types = TaggingPresetItems.getType(types);
     202        this.types = TaggingPresetItem.getType(types);
    193203    }
    194204
     
    235245        }
    236246        if (preset_name_label) {
    237             TaggingPresetItems.Label.addLabel(p, getIcon(), getName());
     247            Label.addLabel(p, getIcon(), getName());
    238248        }
    239249
     
    279289    public boolean isShowable() {
    280290        for (TaggingPresetItem i : data) {
    281             if (!(i instanceof TaggingPresetItems.Optional || i instanceof TaggingPresetItems.Space || i instanceof TaggingPresetItems.Key))
     291            if (!(i instanceof Optional || i instanceof Space || i instanceof Key))
    282292                return true;
    283293        }
     
    412422
    413423    /**
    414      * True whenever the original selection given into createSelection was empty
    415      */
    416     private boolean originalSelectionEmpty;
    417 
    418     /**
    419424     * Removes all unsuitable OsmPrimitives from the given list
    420425     * @param participants List of possible OsmPrimitives to tag
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetHandler.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import java.util.Collection;
     
    88import org.openstreetmap.josm.data.osm.Tag;
    99
    10 public interface PresetHandler {
     10public interface TaggingPresetHandler {
    1111    Collection<OsmPrimitive> getSelection();
    1212
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
     4import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.trc;
     6
     7import java.io.File;
    48import java.util.Arrays;
    59import java.util.Collection;
     10import java.util.EnumSet;
     11import java.util.LinkedHashMap;
    612import java.util.List;
    713import java.util.Map;
     14import java.util.Set;
    815
     16import javax.swing.ImageIcon;
    917import javax.swing.JPanel;
    1018
     
    1523import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
    1624import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList;
     25import org.openstreetmap.josm.tools.ImageProvider;
     26import org.xml.sax.SAXException;
    1727
    1828/**
     
    2131 */
    2232public abstract class TaggingPresetItem {
     33
     34    // cache the parsing of types using a LRU cache (http://java-planet.blogspot.com/2005/08/how-to-set-up-simple-lru-cache-using.html)
     35    private static final Map<String, Set<TaggingPresetType>> TYPE_CACHE = new LinkedHashMap<>(16, 1.1f, true);
    2336
    2437    protected void initAutoCompletionField(AutoCompletingTextField field, String... key) {
     
    4760     * @return {@code true} if this item adds semantic tagging elements, {@code false} otherwise.
    4861     */
    49     abstract boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches);
     62    protected abstract boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches);
    5063
    5164    /**
     
    5366     * @param changedTags The list of changed tags to modify if needed
    5467     */
    55     abstract void addCommands(List<Tag> changedTags);
    56 
    57     boolean requestFocusInWindow() {
    58         return false;
    59     }
     68    protected abstract void addCommands(List<Tag> changedTags);
    6069
    6170    /**
     
    6574     * @return {@code true} if matches (positive), {@code null} if neutral, {@code false} if mismatches (negative).
    6675     */
    67     Boolean matches(Map<String, String> tags) {
     76    protected Boolean matches(Map<String, String> tags) {
    6877        return null;
    6978    }
     79
     80    protected static Set<TaggingPresetType> getType(String types) throws SAXException {
     81        if (types == null || types.isEmpty()) {
     82            throw new SAXException(tr("Unknown type: {0}", types));
     83        }
     84        if (TYPE_CACHE.containsKey(types))
     85            return TYPE_CACHE.get(types);
     86        Set<TaggingPresetType> result = EnumSet.noneOf(TaggingPresetType.class);
     87        for (String type : Arrays.asList(types.split(","))) {
     88            try {
     89                TaggingPresetType presetType = TaggingPresetType.fromString(type);
     90                result.add(presetType);
     91            } catch (IllegalArgumentException e) {
     92                throw new SAXException(tr("Unknown type: {0}", type), e);
     93            }
     94        }
     95        TYPE_CACHE.put(types, result);
     96        return result;
     97    }
     98
     99    protected static String fixPresetString(String s) {
     100        return s == null ? s : s.replaceAll("'", "''");
     101    }
     102
     103    protected static String getLocaleText(String text, String text_context, String defaultText) {
     104        if (text == null) {
     105            return defaultText;
     106        } else if (text_context != null) {
     107            return trc(text_context, fixPresetString(text));
     108        } else {
     109            return tr(fixPresetString(text));
     110        }
     111    }
     112
     113    protected static Integer parseInteger(String str) {
     114        if (str == null || str.isEmpty())
     115            return null;
     116        try {
     117            return Integer.valueOf(str);
     118        } catch (Exception e) {
     119            if (Main.isTraceEnabled()) {
     120                Main.trace(e.getMessage());
     121            }
     122        }
     123        return null;
     124    }
     125
     126    protected static ImageIcon loadImageIcon(String iconName, File zipIcons, Integer maxSize) {
     127        final Collection<String> s = Main.pref.getCollection("taggingpreset.icon.sources", null);
     128        ImageProvider imgProv = new ImageProvider(iconName).setDirs(s).setId("presets").setArchive(zipIcons).setOptional(true);
     129        if (maxSize != null) {
     130            imgProv.setMaxSize(maxSize);
     131        }
     132        return imgProv.get();
     133    }
    70134}
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetLabel.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import java.awt.Cursor;
     
    1111import javax.swing.JLabel;
    1212
    13 public class PresetLabel extends JLabel {
     13public class TaggingPresetLabel extends JLabel {
    1414
    1515    protected final TaggingPreset t;
     
    1919     * @param t the tagging preset
    2020     */
    21     public PresetLabel(TaggingPreset t) {
     21    public TaggingPresetLabel(TaggingPreset t) {
    2222        super(t.getName() + " …");
    2323        setIcon(t.getIcon());
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetListener.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44/**
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetMenu.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetNameTemplateList.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import java.util.Collection;
     
    1717    private static TaggingPresetNameTemplateList instance;
    1818
     19    private final List<TaggingPreset> presetsWithPattern = new LinkedList<>();
     20
    1921    /**
    2022     * Replies the unique instance.
     
    2830        return instance;
    2931    }
    30 
    31     private final List<TaggingPreset> presetsWithPattern = new LinkedList<>();
    3232
    3333    private TaggingPresetNameTemplateList() {
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     
    2626import org.openstreetmap.josm.Main;
    2727import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
     28import org.openstreetmap.josm.gui.tagging.presets.items.Check;
     29import org.openstreetmap.josm.gui.tagging.presets.items.CheckGroup;
     30import org.openstreetmap.josm.gui.tagging.presets.items.Combo;
     31import org.openstreetmap.josm.gui.tagging.presets.items.ComboMultiSelect;
     32import org.openstreetmap.josm.gui.tagging.presets.items.ItemSeparator;
     33import org.openstreetmap.josm.gui.tagging.presets.items.Key;
     34import org.openstreetmap.josm.gui.tagging.presets.items.Label;
     35import org.openstreetmap.josm.gui.tagging.presets.items.Link;
     36import org.openstreetmap.josm.gui.tagging.presets.items.MultiSelect;
     37import org.openstreetmap.josm.gui.tagging.presets.items.Optional;
     38import org.openstreetmap.josm.gui.tagging.presets.items.PresetLink;
     39import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
     40import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
     41import org.openstreetmap.josm.gui.tagging.presets.items.Space;
     42import org.openstreetmap.josm.gui.tagging.presets.items.Text;
    2843import org.openstreetmap.josm.io.CachedFile;
    2944import org.openstreetmap.josm.io.UTFInputStreamReader;
     
    4661            "application/xml, text/xml, text/plain; q=0.8, application/zip, application/octet-stream; q=0.5";
    4762
    48     private TaggingPresetReader() {
    49         // Hide default constructor for utils classes
    50     }
    51 
    5263    private static volatile File zipIcons;
    5364    private static volatile boolean loadIcons = true;
    54 
    55     /**
    56      * Returns the set of preset source URLs.
    57      * @return The set of preset source URLs.
    58      */
    59     public static Set<String> getPresetSources() {
    60         return new TaggingPresetPreference.PresetPrefHelper().getActiveUrls();
    61     }
    6265
    6366    /**
     
    7578        /** Reference matching a chunk id defined earlier **/
    7679        public String ref;
     80    }
     81
     82    static class HashSetWithLast<E> extends LinkedHashSet<E> {
     83        protected E last;
     84
     85        @Override
     86        public boolean add(E e) {
     87            last = e;
     88            return super.add(e);
     89        }
     90
     91        /**
     92         * Returns the last inserted element.
     93         */
     94        public E getLast() {
     95            return last;
     96        }
     97    }
     98
     99    /**
     100     * Returns the set of preset source URLs.
     101     * @return The set of preset source URLs.
     102     */
     103    public static Set<String> getPresetSources() {
     104        return new TaggingPresetPreference.PresetPrefHelper().getActiveUrls();
    77105    }
    78106
     
    82110        parser.mapOnStart("separator", TaggingPresetSeparator.class);
    83111        parser.mapBoth("group", TaggingPresetMenu.class);
    84         parser.map("text", TaggingPresetItems.Text.class);
    85         parser.map("link", TaggingPresetItems.Link.class);
    86         parser.map("preset_link", TaggingPresetItems.PresetLink.class);
    87         parser.mapOnStart("optional", TaggingPresetItems.Optional.class);
    88         parser.mapOnStart("roles", TaggingPresetItems.Roles.class);
    89         parser.map("role", TaggingPresetItems.Role.class);
    90         parser.map("checkgroup", TaggingPresetItems.CheckGroup.class);
    91         parser.map("check", TaggingPresetItems.Check.class);
    92         parser.map("combo", TaggingPresetItems.Combo.class);
    93         parser.map("multiselect", TaggingPresetItems.MultiSelect.class);
    94         parser.map("label", TaggingPresetItems.Label.class);
    95         parser.map("space", TaggingPresetItems.Space.class);
    96         parser.map("key", TaggingPresetItems.Key.class);
    97         parser.map("list_entry", TaggingPresetItems.PresetListEntry.class);
    98         parser.map("item_separator", TaggingPresetItems.ItemSeparator.class);
     112        parser.map("text", Text.class);
     113        parser.map("link", Link.class);
     114        parser.map("preset_link", PresetLink.class);
     115        parser.mapOnStart("optional", Optional.class);
     116        parser.mapOnStart("roles", Roles.class);
     117        parser.map("role", Role.class);
     118        parser.map("checkgroup", CheckGroup.class);
     119        parser.map("check", Check.class);
     120        parser.map("combo", Combo.class);
     121        parser.map("multiselect", MultiSelect.class);
     122        parser.map("label", Label.class);
     123        parser.map("space", Space.class);
     124        parser.map("key", Key.class);
     125        parser.map("list_entry", ComboMultiSelect.PresetListEntry.class);
     126        parser.map("item_separator", ItemSeparator.class);
    99127        parser.mapBoth("chunk", Chunk.class);
    100128        parser.map("reference", Reference.class);
    101129        return parser;
    102     }
    103 
    104     static class HashSetWithLast<E> extends LinkedHashSet<E> {
    105         protected E last;
    106 
    107         @Override
    108         public boolean add(E e) {
    109             last = e;
    110             return super.add(e);
    111         }
    112 
    113         /**
    114          * Returns the last inserted element.
    115          */
    116         public E getLast() {
    117             return last;
    118         }
    119130    }
    120131
     
    145156        /** to detect end of reused {@code <group>} */
    146157        TaggingPresetMenu lastmenuOriginal = null;
    147         TaggingPresetItems.Roles lastrole = null;
    148         final List<TaggingPresetItems.Check> checks = new LinkedList<>();
    149         List<TaggingPresetItems.PresetListEntry> listEntries = new LinkedList<>();
     158        Roles lastrole = null;
     159        final List<Check> checks = new LinkedList<>();
     160        List<ComboMultiSelect.PresetListEntry> listEntries = new LinkedList<>();
    150161        final Map<String, List<Object>> byId = new HashMap<>();
    151162        final Deque<String> lastIds = new ArrayDeque<>();
     
    238249            } else {
    239250                if (!all.isEmpty()) {
    240                     if (o instanceof TaggingPresetItems.Roles) {
     251                    if (o instanceof Roles) {
    241252                        all.getLast().data.add((TaggingPresetItem) o);
    242253                        if (all.getLast().roles != null) {
    243254                            throw new SAXException(tr("Roles cannot appear more than once"));
    244255                        }
    245                         all.getLast().roles = (TaggingPresetItems.Roles) o;
    246                         lastrole = (TaggingPresetItems.Roles) o;
    247                     } else if (o instanceof TaggingPresetItems.Role) {
     256                        all.getLast().roles = (Roles) o;
     257                        lastrole = (Roles) o;
     258                    } else if (o instanceof Role) {
    248259                        if (lastrole == null)
    249260                            throw new SAXException(tr("Preset role element without parent"));
    250                         lastrole.roles.add((TaggingPresetItems.Role) o);
    251                     } else if (o instanceof TaggingPresetItems.Check) {
    252                         checks.add((TaggingPresetItems.Check) o);
    253                     } else if (o instanceof TaggingPresetItems.PresetListEntry) {
    254                         listEntries.add((TaggingPresetItems.PresetListEntry) o);
    255                     } else if (o instanceof TaggingPresetItems.CheckGroup) {
     261                        lastrole.roles.add((Role) o);
     262                    } else if (o instanceof Check) {
     263                        checks.add((Check) o);
     264                    } else if (o instanceof ComboMultiSelect.PresetListEntry) {
     265                        listEntries.add((ComboMultiSelect.PresetListEntry) o);
     266                    } else if (o instanceof CheckGroup) {
    256267                        all.getLast().data.add((TaggingPresetItem) o);
    257268                        // Make sure list of checks is empty to avoid adding checks several times
    258269                        // when used in chunks (fix #10801)
    259                         ((TaggingPresetItems.CheckGroup) o).checks.clear();
    260                         ((TaggingPresetItems.CheckGroup) o).checks.addAll(checks);
     270                        ((CheckGroup) o).checks.clear();
     271                        ((CheckGroup) o).checks.addAll(checks);
    261272                        checks.clear();
    262273                    } else {
     
    266277                        }
    267278                        all.getLast().data.add((TaggingPresetItem) o);
    268                         if (o instanceof TaggingPresetItems.ComboMultiSelect) {
    269                             ((TaggingPresetItems.ComboMultiSelect) o).addListEntries(listEntries);
    270                         } else if (o instanceof TaggingPresetItems.Key) {
    271                             if (((TaggingPresetItems.Key) o).value == null) {
    272                                 ((TaggingPresetItems.Key) o).value = ""; // Fix #8530
     279                        if (o instanceof ComboMultiSelect) {
     280                            ((ComboMultiSelect) o).addListEntries(listEntries);
     281                        } else if (o instanceof Key) {
     282                            if (((Key) o).value == null) {
     283                                ((Key) o).value = ""; // Fix #8530
    273284                            }
    274285                        }
     
    403414        TaggingPresetReader.loadIcons = loadIcons;
    404415    }
     416
     417    private TaggingPresetReader() {
     418        // Hide default constructor for utils classes
     419    }
    405420}
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchAction.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     
    1717public final class TaggingPresetSearchDialog extends ExtendedDialog {
    1818
     19    private static TaggingPresetSearchDialog instance;
     20
    1921    private TaggingPresetSelector selector;
    20 
    21     private static TaggingPresetSearchDialog instance;
    2222
    2323    /**
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     
    1919/**
    2020 * A dialog that allows to select a preset and then selects all matching OSM objects.
    21  * @see org.openstreetmap.josm.gui.tagging.TaggingPresetSearchDialog
     21 * @see org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSearchDialog
    2222 */
    2323public final class TaggingPresetSearchPrimitiveDialog extends ExtendedDialog {
    2424
     25    private static TaggingPresetSearchPrimitiveDialog instance;
     26
    2527    private TaggingPresetSelector selector;
    2628
    27     private static TaggingPresetSearchPrimitiveDialog instance;
     29    /**
     30     * An action executing {@link TaggingPresetSearchPrimitiveDialog}.
     31     */
     32    public static class Action extends JosmAction {
     33
     34        /**
     35         * Constructs a new {@link TaggingPresetSearchPrimitiveDialog.Action}.
     36         */
     37        public Action() {
     38            super(tr("Search for objects by preset"), "dialogs/search", tr("Show preset search dialog"),
     39                    Shortcut.registerShortcut("preset:search-objects", tr("Search for objects by preset"), KeyEvent.VK_F3, Shortcut.SHIFT),
     40                    false);
     41            putValue("toolbar", "presets/search-objects");
     42            Main.toolbar.register(this);
     43        }
     44
     45        @Override
     46        public void actionPerformed(ActionEvent e) {
     47            if (Main.main.hasEditLayer()) {
     48                TaggingPresetSearchPrimitiveDialog.getInstance().showDialog();
     49            }
     50        }
     51    }
    2852
    2953    /**
     
    6993        }
    7094    }
    71 
    72     /**
    73      * An action executing {@link TaggingPresetSearchPrimitiveDialog}.
    74      */
    75     public static class Action extends JosmAction {
    76 
    77         /**
    78          * Constructs a new {@link TaggingPresetSearchPrimitiveDialog.Action}.
    79          */
    80         public Action() {
    81             super(tr("Search for objects by preset"), "dialogs/search", tr("Show preset search dialog"),
    82                     Shortcut.registerShortcut("preset:search-objects", tr("Search for objects by preset"), KeyEvent.VK_F3, Shortcut.SHIFT),
    83                     false);
    84             putValue("toolbar", "presets/search-objects");
    85             Main.toolbar.register(this);
    86         }
    87 
    88         @Override
    89         public void actionPerformed(ActionEvent e) {
    90             if (Main.main.hasEditLayer()) {
    91                 TaggingPresetSearchPrimitiveDialog.getInstance().showDialog();
    92             }
    93         }
    94     }
    95 
    9695}
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     
    4949import org.openstreetmap.josm.data.osm.OsmPrimitive;
    5050import org.openstreetmap.josm.data.preferences.BooleanProperty;
    51 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Key;
    52 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.KeyedItem;
    53 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Role;
    54 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems.Roles;
     51import org.openstreetmap.josm.gui.tagging.presets.items.ComboMultiSelect;
     52import org.openstreetmap.josm.gui.tagging.presets.items.Key;
     53import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
     54import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
     55import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
    5556import org.openstreetmap.josm.gui.widgets.JosmTextField;
    5657import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     
    125126     * Computes the match ration of a {@link TaggingPreset} wrt. a searchString.
    126127     */
    127     static class PresetClassification implements Comparable<PresetClassification> {
     128    public static class PresetClassification implements Comparable<PresetClassification> {
    128129        public final TaggingPreset preset;
    129130        public int classification;
     
    144145                if (item instanceof KeyedItem) {
    145146                    tags.add(((KeyedItem) item).key);
    146                     if (item instanceof TaggingPresetItems.ComboMultiSelect) {
    147                         final TaggingPresetItems.ComboMultiSelect cms = (TaggingPresetItems.ComboMultiSelect) item;
     147                    if (item instanceof ComboMultiSelect) {
     148                        final ComboMultiSelect cms = (ComboMultiSelect) item;
    148149                        if (Boolean.parseBoolean(cms.values_searchable)) {
    149150                            tags.addAll(cms.getDisplayValues());
     
    366367     * A collection of {@link PresetClassification}s with the functionality of filtering wrt. searchString.
    367368     */
    368     static class PresetClassifications implements Iterable<PresetClassification> {
     369    public static class PresetClassifications implements Iterable<PresetClassification> {
    369370
    370371        private final List<PresetClassification> classifications = new ArrayList<>();
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSeparator.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44/**
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetType.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import org.openstreetmap.josm.data.osm.OsmPrimitive;
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import java.util.ArrayList;
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/ConditionalKeysTest.groovy

    r7938 r8863  
    33
    44import org.openstreetmap.josm.JOSMFixture
    5 import org.openstreetmap.josm.gui.tagging.TaggingPresets
     5import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    66
    77class ConditionalKeysTest extends GroovyTestCase {
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java

    r8857 r8863  
    2121import org.openstreetmap.josm.data.osm.Tag;
    2222import org.openstreetmap.josm.data.validation.Severity;
    23 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    24 import org.openstreetmap.josm.gui.tagging.TaggingPresetItem;
    25 import org.openstreetmap.josm.gui.tagging.TaggingPresetItems;
    26 import org.openstreetmap.josm.gui.tagging.TaggingPresetReader;
     23import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
     24import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
     25import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetReader;
     26import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    2727
    2828/**
     
    213213        for (final TaggingPreset p : presets) {
    214214            for (final TaggingPresetItem i : p.data) {
    215                 if (i instanceof TaggingPresetItems.KeyedItem &&
    216                         Arrays.asList("opening_hours", "service_times", "collection_times").contains(((TaggingPresetItems.KeyedItem) i).key)) {
    217                     for (final String v : ((TaggingPresetItems.KeyedItem) i).getValues()) {
    218                         values.add(new Tag(((TaggingPresetItems.KeyedItem) i).key, v));
     215                if (i instanceof KeyedItem &&
     216                        Arrays.asList("opening_hours", "service_times", "collection_times").contains(((KeyedItem) i).key)) {
     217                    for (final String v : ((KeyedItem) i).getValues()) {
     218                        values.add(new Tag(((KeyedItem) i).key, v));
    219219                    }
    220220                }
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/RelationCheckerTest.groovy

    r7938 r8863  
    99import org.openstreetmap.josm.data.osm.Way
    1010import org.openstreetmap.josm.data.validation.TestError
    11 import org.openstreetmap.josm.gui.tagging.TaggingPresets
     11import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    1212
    1313class RelationCheckerTest extends GroovyTestCase {
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java

    r8857 r8863  
    1313import org.openstreetmap.josm.data.osm.OsmUtils;
    1414import org.openstreetmap.josm.data.validation.TestError;
    15 import org.openstreetmap.josm.gui.tagging.TaggingPresets;
     15import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    1616
    1717/**
  • trunk/test/unit/org/openstreetmap/josm/gui/DefaultNameFormatterTest.java

    r8857 r8863  
    2020import org.openstreetmap.josm.data.osm.Relation;
    2121import org.openstreetmap.josm.data.osm.Way;
    22 import org.openstreetmap.josm.gui.tagging.TaggingPresetReader;
    23 import org.openstreetmap.josm.gui.tagging.TaggingPresets;
     22import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetReader;
     23import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    2424import org.openstreetmap.josm.io.Compression;
    2525import org.openstreetmap.josm.io.IllegalDataException;
  • trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/PresetClassificationsTest.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.junit.Assert.assertFalse;
     
    1818import org.openstreetmap.josm.data.osm.OsmUtils;
    1919import org.openstreetmap.josm.data.osm.Way;
     20import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSelector.PresetClassification;
     21import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSelector.PresetClassifications;
    2022import org.openstreetmap.josm.tools.Utils;
    2123import org.xml.sax.SAXException;
    2224
     25/**
     26 * Unit tests of {@link PresetClassifications} class.
     27 */
    2328public class PresetClassificationsTest {
    2429
    25     static final TaggingPresetSelector.PresetClassifications classifications = new TaggingPresetSelector.PresetClassifications();
     30    static final PresetClassifications classifications = new PresetClassifications();
    2631
    2732    /**
    2833     * Setup test.
     34     * @throws SAXException if any XML error occurs
     35     * @throws IOException if any I/O error occurs
    2936     */
    3037    @BeforeClass
     
    3542    }
    3643
    37     private List<TaggingPresetSelector.PresetClassification> getMatchingPresets(String searchText, OsmPrimitive w) {
     44    private List<PresetClassification> getMatchingPresets(String searchText, OsmPrimitive w) {
    3845        return classifications.getMatchingPresets(searchText, true, true, EnumSet.of(TaggingPresetType.forPrimitive(w)),
    3946                Collections.singleton(w));
     
    4148
    4249    private List<String> getMatchingPresetNames(String searchText, OsmPrimitive w) {
    43         return Utils.transform(getMatchingPresets(searchText, w), new Utils.Function<TaggingPresetSelector.PresetClassification, String>() {
     50        return Utils.transform(getMatchingPresets(searchText, w), new Utils.Function<PresetClassification, String>() {
    4451            @Override
    45             public String apply(TaggingPresetSelector.PresetClassification x) {
     52            public String apply(PresetClassification x) {
    4653                return x.preset.name;
    4754            }
     
    4956    }
    5057
     58    /**
     59     * Test building preset.
     60     */
    5161    @Test
    52     public void testBuilding() throws Exception {
     62    public void testBuilding() {
    5363        final Way w = new Way();
    5464        final Node n1 = new Node();
     
    6171    }
    6272
     73    /**
     74     * Test public transport tram relations presets.
     75     */
    6376    @Test
    6477    public void testRelationsForTram() {
  • trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java

    r8862 r8863  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.gui.tagging;
     2package org.openstreetmap.josm.gui.tagging.presets;
    33
    44import static org.CustomMatchers.hasSize;
     
    1515import org.openstreetmap.josm.JOSMFixture;
    1616import org.openstreetmap.josm.TestUtils;
     17import org.openstreetmap.josm.gui.tagging.presets.items.Check;
     18import org.openstreetmap.josm.gui.tagging.presets.items.Key;
    1719import org.openstreetmap.josm.tools.Utils;
    1820import org.xml.sax.SAXException;
     
    3335    /**
    3436     * #8954 - last checkbox in the preset is not added
     37     * @throws SAXException if any XML error occurs
     38     * @throws IOException if any I/O error occurs
    3539     */
    3640    @Test
     
    4246        Assert.assertEquals("Number of entries", 1, preset.data.size());
    4347        final TaggingPresetItem item = preset.data.get(0);
    44         Assert.assertTrue("Entry is not checkbox", item instanceof TaggingPresetItems.Check);
     48        Assert.assertTrue("Entry is not checkbox", item instanceof Check);
    4549    }
    4650
     51    /**
     52     * Test nested chunks
     53     * @throws SAXException if any XML error occurs
     54     * @throws IOException if any I/O error occurs
     55     */
    4756    @Test
    48     public void testNestedChunks() throws Exception {
     57    public void testNestedChunks() throws SAXException, IOException {
    4958        final Collection<TaggingPreset> presets = TaggingPresetReader.readAll(TestUtils.getTestDataRoot() + "preset_chunk.xml", true);
    5059        assertThat(presets, hasSize(1));
     
    5362            @Override
    5463            public String apply(TaggingPresetItem x) {
    55                 return ((TaggingPresetItems.Key) x).key;
     64                return ((Key) x).key;
    5665            }
    5766        });
     
    6271     * Validate internal presets
    6372     * See #9027
     73     * @throws SAXException if any XML error occurs
     74     * @throws IOException if any I/O error occurs
    6475     */
    6576    @Test
Note: See TracChangeset for help on using the changeset viewer.