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}