1 | // License: GPL. For details, see LICENSE file.
|
---|
2 | package buildings_tools;
|
---|
3 |
|
---|
4 | import java.util.ArrayList;
|
---|
5 | import java.util.Arrays;
|
---|
6 | import java.util.Collection;
|
---|
7 | import java.util.HashMap;
|
---|
8 | import java.util.Iterator;
|
---|
9 | import java.util.Map;
|
---|
10 | import java.util.Map.Entry;
|
---|
11 | import java.util.NoSuchElementException;
|
---|
12 |
|
---|
13 | import org.openstreetmap.josm.Main;
|
---|
14 | import org.openstreetmap.josm.data.preferences.BooleanProperty;
|
---|
15 |
|
---|
16 | public final class ToolSettings {
|
---|
17 |
|
---|
18 | private ToolSettings() {
|
---|
19 | // Hide default constructor for utils classes
|
---|
20 | }
|
---|
21 |
|
---|
22 | public static final BooleanProperty PROP_USE_ADDR_NODE = new BooleanProperty("buildings_tools.addrNode", false);
|
---|
23 | private static double width = 0;
|
---|
24 | private static double lenstep = 0;
|
---|
25 | private static boolean useAddr;
|
---|
26 | private static final Map<String, String> TAGS = new HashMap<>();
|
---|
27 | private static boolean autoSelect;
|
---|
28 |
|
---|
29 | public static void setAddrDialog(boolean _useAddr) {
|
---|
30 | useAddr = _useAddr;
|
---|
31 | }
|
---|
32 |
|
---|
33 | public static void setSizes(double newwidth, double newlenstep) {
|
---|
34 | width = newwidth;
|
---|
35 | lenstep = newlenstep;
|
---|
36 | }
|
---|
37 |
|
---|
38 | public static double getWidth() {
|
---|
39 | return width;
|
---|
40 | }
|
---|
41 |
|
---|
42 | public static double getLenStep() {
|
---|
43 | return lenstep;
|
---|
44 | }
|
---|
45 |
|
---|
46 | public static boolean isUsingAddr() {
|
---|
47 | return useAddr;
|
---|
48 | }
|
---|
49 |
|
---|
50 | public static Map<String, String> getTags() {
|
---|
51 | loadTags();
|
---|
52 | return TAGS;
|
---|
53 | }
|
---|
54 |
|
---|
55 | public static void saveTags(Map<String, String> tags) {
|
---|
56 | TAGS.clear();
|
---|
57 | TAGS.putAll(tags);
|
---|
58 | ArrayList<String> values = new ArrayList<>(TAGS.size() * 2);
|
---|
59 | for (Entry<String, String> entry : TAGS.entrySet()) {
|
---|
60 | values.add(entry.getKey());
|
---|
61 | values.add(entry.getValue());
|
---|
62 | }
|
---|
63 | Main.pref.putCollection("buildings_tools.tags", values);
|
---|
64 | }
|
---|
65 |
|
---|
66 | private static void loadTags() {
|
---|
67 | TAGS.clear();
|
---|
68 | Collection<String> values = Main.pref.getCollection("buildings_tools.tags",
|
---|
69 | Arrays.asList(new String[] {"building", "yes"}));
|
---|
70 | try {
|
---|
71 | for (Iterator<String> iterator = values.iterator(); iterator.hasNext();) {
|
---|
72 | TAGS.put(iterator.next(), iterator.next());
|
---|
73 | }
|
---|
74 | } catch (NoSuchElementException e) {
|
---|
75 | Main.warn(e);
|
---|
76 | }
|
---|
77 | }
|
---|
78 |
|
---|
79 | public static void setBBMode(boolean bbmode) {
|
---|
80 | Main.pref.put("buildings_tools.bbmode", bbmode);
|
---|
81 | }
|
---|
82 |
|
---|
83 | public static boolean isBBMode() {
|
---|
84 | return Main.pref.getBoolean("buildings_tools.bbmode", false);
|
---|
85 | }
|
---|
86 |
|
---|
87 | public static void setSoftCursor(boolean softCursor) {
|
---|
88 | Main.pref.put("buildings_tools.softcursor", softCursor);
|
---|
89 | }
|
---|
90 |
|
---|
91 | public static boolean isSoftCursor() {
|
---|
92 | return Main.pref.getBoolean("buildings_tools.softcursor", false);
|
---|
93 | }
|
---|
94 |
|
---|
95 | public static boolean isAutoSelect() {
|
---|
96 | return autoSelect;
|
---|
97 | }
|
---|
98 |
|
---|
99 | public static void setAutoSelect(boolean _autoSelect) {
|
---|
100 | autoSelect = _autoSelect;
|
---|
101 | }
|
---|
102 | }
|
---|