001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.tagging.presets.items;
003
004import java.awt.event.MouseAdapter;
005import java.awt.event.MouseEvent;
006import java.util.Collection;
007import java.util.List;
008
009import javax.swing.JLabel;
010import javax.swing.JPanel;
011
012import org.openstreetmap.josm.data.osm.OsmPrimitive;
013import org.openstreetmap.josm.data.osm.Tag;
014import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
015import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
016import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetLabel;
017import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
018import org.openstreetmap.josm.tools.GBC;
019import org.openstreetmap.josm.tools.Predicate;
020import org.openstreetmap.josm.tools.Utils;
021
022public class PresetLink extends TaggingPresetItem {
023
024    public String preset_name = "";
025
026    @Override
027    public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
028        final String presetName = preset_name;
029        final TaggingPreset t = Utils.filter(TaggingPresets.getTaggingPresets(), new Predicate<TaggingPreset>() {
030            @Override
031            public boolean evaluate(TaggingPreset object) {
032                return presetName.equals(object.name);
033            }
034        }).iterator().next();
035        if (t == null) return false;
036        JLabel lbl = new TaggingPresetLabel(t);
037        lbl.addMouseListener(new MouseAdapter() {
038            @Override
039            public void mouseClicked(MouseEvent arg0) {
040                t.actionPerformed(null);
041            }
042        });
043        p.add(lbl, GBC.eol().fill(GBC.HORIZONTAL));
044        return false;
045    }
046
047    @Override
048    public void addCommands(List<Tag> changedTags) {
049    }
050}