]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.maps/src/org/simantics/maps/prefs/MapsClientPreferences.java
Make background map preference changes apply immediately
[simantics/district.git] / org.simantics.district.maps / src / org / simantics / maps / prefs / MapsClientPreferences.java
1 package org.simantics.maps.prefs;
2
3 import java.net.MalformedURLException;
4 import java.net.URL;
5
6 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
7 import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
8 import org.eclipse.core.runtime.preferences.InstanceScope;
9
10 public class MapsClientPreferences {
11
12     public static final String P_NODE = "org.simantics.district.maps";
13     
14     public static final String P_TILESERVER_URL = "org.simantics.district.maps.prefs.tileserverURL";
15     public static final String P_USE_BUILTIN = "org.simantics.district.maps.prefs.tileserverURL";
16     
17     // TODO: fix this, currently copied from MapsServerPreferences
18     public static final String P_DEFAULT_PORT = "org.simantics.maps.server.defaultPort";
19     public static final String P_CURRENT_MBTILES = "org.simantics.maps.server.currentMbTiles";
20     public static final String P_CURRENT_TM2STYLE = "org.simantics.maps.server.currentTM2Style";
21     public static final String P_SERVER_NODE = "org.simantics.maps.server";
22     
23     public static IEclipsePreferences getServerPreferences() {
24         return InstanceScope.INSTANCE.getNode(P_SERVER_NODE);
25     }
26     
27     public static IEclipsePreferences getPreferences() {
28         return InstanceScope.INSTANCE.getNode(P_NODE);
29     }
30     
31     public static String tileserverURL() {
32         return getPreferences().get(P_TILESERVER_URL, "");
33     }
34
35     public static boolean useBuiltinServer() {
36         return getPreferences().getBoolean(P_USE_BUILTIN, true);
37     }
38     
39     public static String possibleBuiltinServerURL() {
40         int port = getServerPreferences().getInt(P_DEFAULT_PORT, 8585);
41         String style = getServerPreferences().get(P_CURRENT_TM2STYLE, "mapbox-studio-osm-bright.tm2");
42         if (port != -1 && style != null) {
43             try {
44                 return new URL("http", "localhost", port, "/" + style).toString();
45             } catch (MalformedURLException e) {
46                 throw new RuntimeException(e);
47             }
48         }
49         return null;
50     }
51
52     public static void addPreferenceChangeListenerMapsServer(IPreferenceChangeListener listener) {
53         getServerPreferences().addPreferenceChangeListener(listener);
54     }
55
56     public static void removePreferenceChangeListenerMapsServer(IPreferenceChangeListener listener) {
57         getServerPreferences().removePreferenceChangeListener(listener);
58     }
59
60 }