source: josm/trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetLink.java@ 12042

Last change on this file since 12042 was 11366, checked in by Don-vip, 7 years ago

findbugs - SIC_INNER_SHOULD_BE_STATIC_ANON

File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.tagging.presets.items;
3
4import java.awt.event.MouseAdapter;
5import java.awt.event.MouseEvent;
6import java.util.Collection;
7import java.util.List;
8import java.util.Optional;
9
10import javax.swing.JLabel;
11import javax.swing.JPanel;
12
13import org.openstreetmap.josm.data.osm.OsmPrimitive;
14import org.openstreetmap.josm.data.osm.Tag;
15import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
16import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
17import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetLabel;
18import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
19import org.openstreetmap.josm.tools.GBC;
20
21/**
22 * Adds a link to an other preset.
23 * @since 8863
24 */
25public class PresetLink extends TaggingPresetItem {
26
27 static final class TaggingPresetMouseAdapter extends MouseAdapter {
28 private final TaggingPreset t;
29
30 TaggingPresetMouseAdapter(TaggingPreset t) {
31 this.t = t;
32 }
33
34 @Override
35 public void mouseClicked(MouseEvent e) {
36 t.actionPerformed(null);
37 }
38 }
39
40 /** The exact name of the preset to link to. Required. */
41 public String preset_name = ""; // NOSONAR
42
43 @Override
44 public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
45 final String presetName = preset_name;
46 Optional<TaggingPreset> found = TaggingPresets.getTaggingPresets().stream().filter(preset -> presetName.equals(preset.name)).findFirst();
47 if (!found.isPresent())
48 return false;
49 TaggingPreset t = found.get();
50 JLabel lbl = new TaggingPresetLabel(t);
51 lbl.addMouseListener(new TaggingPresetMouseAdapter(t));
52 p.add(lbl, GBC.eol().fill(GBC.HORIZONTAL));
53 return false;
54 }
55
56 @Override
57 public void addCommands(List<Tag> changedTags) {
58 // Do nothing
59 }
60}
Note: See TracBrowser for help on using the repository browser.