// License: GPL. For details, see LICENSE file. package buildings_tools; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.NoSuchElementException; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.data.preferences.BooleanProperty; public final class ToolSettings { private ToolSettings() { // Hide default constructor for utils classes } public static final BooleanProperty PROP_USE_ADDR_NODE = new BooleanProperty("buildings_tools.addrNode", false); private static double width = 0; private static double lenstep = 0; private static boolean useAddr; private static final Map<String, String> TAGS = new HashMap<>(); private static boolean autoSelect; public static void setAddrDialog(boolean _useAddr) { useAddr = _useAddr; } public static void setSizes(double newwidth, double newlenstep) { width = newwidth; lenstep = newlenstep; } public static double getWidth() { return width; } public static double getLenStep() { return lenstep; } public static boolean isUsingAddr() { return useAddr; } public static Map<String, String> getTags() { loadTags(); return TAGS; } public static void saveTags(Map<String, String> tags) { TAGS.clear(); TAGS.putAll(tags); ArrayList<String> values = new ArrayList<>(TAGS.size() * 2); for (Entry<String, String> entry : TAGS.entrySet()) { values.add(entry.getKey()); values.add(entry.getValue()); } Main.pref.putCollection("buildings_tools.tags", values); } private static void loadTags() { TAGS.clear(); Collection<String> values = Main.pref.getCollection("buildings_tools.tags", Arrays.asList(new String[] {"building", "yes"})); try { for (Iterator<String> iterator = values.iterator(); iterator.hasNext();) { TAGS.put(iterator.next(), iterator.next()); } } catch (NoSuchElementException e) { Main.warn(e); } } public static void setBBMode(boolean bbmode) { Main.pref.put("buildings_tools.bbmode", bbmode); } public static boolean isBBMode() { return Main.pref.getBoolean("buildings_tools.bbmode", false); } public static void setSoftCursor(boolean softCursor) { Main.pref.put("buildings_tools.softcursor", softCursor); } public static boolean isSoftCursor() { return Main.pref.getBoolean("buildings_tools.softcursor", false); } public static boolean isAutoSelect() { return autoSelect; } public static void setAutoSelect(boolean _autoSelect) { autoSelect = _autoSelect; } }