X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.maps%2Fsrc%2Forg%2Fsimantics%2Fmaps%2Fprefs%2FMapsClientPreferences.java;h=a54185c1c84c22ee8351e250e1a33a9e87936a82;hb=a995d5d46f03f25bd77fb3f6d8349839886b2ec2;hp=5ecfe052dd30ffb78571e8cd12c32ff54ebab7e4;hpb=55f42e7fcc2f6733082ab8c150efe3a2b54ff22b;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.maps/src/org/simantics/maps/prefs/MapsClientPreferences.java b/org.simantics.district.maps/src/org/simantics/maps/prefs/MapsClientPreferences.java index 5ecfe052..a54185c1 100644 --- a/org.simantics.district.maps/src/org/simantics/maps/prefs/MapsClientPreferences.java +++ b/org.simantics.district.maps/src/org/simantics/maps/prefs/MapsClientPreferences.java @@ -1,8 +1,60 @@ package org.simantics.maps.prefs; +import java.net.MalformedURLException; +import java.net.URL; + +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener; +import org.eclipse.core.runtime.preferences.InstanceScope; + public class MapsClientPreferences { public static final String P_NODE = "org.simantics.district.maps"; public static final String P_TILESERVER_URL = "org.simantics.district.maps.prefs.tileserverURL"; + public static final String P_USE_BUILTIN = "org.simantics.district.maps.prefs.tileserverURL"; + + // TODO: fix this, currently copied from MapsServerPreferences + public static final String P_DEFAULT_PORT = "org.simantics.maps.server.defaultPort"; + public static final String P_CURRENT_MBTILES = "org.simantics.maps.server.currentMbTiles"; + public static final String P_CURRENT_TM2STYLE = "org.simantics.maps.server.currentTM2Style"; + public static final String P_SERVER_NODE = "org.simantics.maps.server"; + + public static IEclipsePreferences getServerPreferences() { + return InstanceScope.INSTANCE.getNode(P_SERVER_NODE); + } + + public static IEclipsePreferences getPreferences() { + return InstanceScope.INSTANCE.getNode(P_NODE); + } + + public static String tileserverURL() { + return getPreferences().get(P_TILESERVER_URL, ""); + } + + public static boolean useBuiltinServer() { + return getPreferences().getBoolean(P_USE_BUILTIN, true); + } + + public static String possibleBuiltinServerURL() { + int port = getServerPreferences().getInt(P_DEFAULT_PORT, 8585); + String style = getServerPreferences().get(P_CURRENT_TM2STYLE, "mapbox-studio-osm-bright.tm2"); + if (port != -1 && style != null) { + try { + return new URL("http", "localhost", port, "/" + style).toString(); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } + } + return null; + } + + public static void addPreferenceChangeListenerMapsServer(IPreferenceChangeListener listener) { + getServerPreferences().addPreferenceChangeListener(listener); + } + + public static void removePreferenceChangeListenerMapsServer(IPreferenceChangeListener listener) { + getServerPreferences().removePreferenceChangeListener(listener); + } + }