source: josm/trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/CheckGroup.java@ 16687

Last change on this file since 16687 was 16042, checked in by simon04, 4 years ago

see #18864 - TaggingPreset: use short type for numeric field

Reduces retained size of TaggingPreset from 1_758_840 to 1_750_272 (de).

File size: 1.7 KB
RevLine 
[9665]1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.tagging.presets.items;
3
4import java.awt.GridLayout;
5import java.util.Collection;
6import java.util.LinkedList;
7import java.util.List;
8import java.util.Map;
9
10import javax.swing.JPanel;
11
12import org.openstreetmap.josm.data.osm.OsmPrimitive;
13import org.openstreetmap.josm.data.osm.Tag;
14import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem;
15import org.openstreetmap.josm.tools.GBC;
16
17/**
18 * A group of {@link Check}s.
19 * @since 6114
20 */
21public class CheckGroup extends TaggingPresetItem {
22
23 /**
24 * Number of columns (positive integer)
25 */
[16042]26 public short columns = 1; // NOSONAR
[9665]27
28 /**
29 * List of checkboxes
30 */
31 public final List<Check> checks = new LinkedList<>();
32
33 @Override
34 public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
[16042]35 int rows = (int) Math.ceil(checks.size() / ((double) columns));
36 JPanel panel = new JPanel(new GridLayout(rows, columns));
[9665]37
38 for (Check check : checks) {
39 check.addToPanel(panel, sel, presetInitiallyMatches);
40 }
41
42 p.add(panel, GBC.eol());
43 return false;
44 }
45
46 @Override
47 public void addCommands(List<Tag> changedTags) {
48 for (Check check : checks) {
49 check.addCommands(changedTags);
50 }
51 }
52
53 @Override
[15667]54 public Boolean matches(Map<String, String> tags) {
[9665]55 for (Check check : checks) {
56 if (Boolean.TRUE.equals(check.matches(tags))) {
57 return Boolean.TRUE;
58 }
59 }
60 return null;
61 }
62
63 @Override
64 public String toString() {
65 return "CheckGroup [columns=" + columns + ']';
66 }
67}
Note: See TracBrowser for help on using the repository browser.