package org.simantics.maps.prefs;
+import java.util.Arrays;
+import java.util.List;
+
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.osgi.service.prefs.BackingStoreException;
import org.osgi.service.prefs.Preferences;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class MapsClientPreferenceInitializer extends AbstractPreferenceInitializer {
+ private static final Logger LOGGER = LoggerFactory.getLogger(MapsClientPreferenceInitializer.class);
+
public MapsClientPreferenceInitializer() {
}
@Override
public void initializeDefaultPreferences() {
- Preferences node = DefaultScope.INSTANCE.getNode(MapsClientPreferences.P_NODE);
- node.put(MapsClientPreferences.P_TILESERVER_URL, "http://localhost:8088");
+ Preferences node = MapsClientPreferences.getPreferences();
+
+ try {
+ String[] keys = node.keys();
+ List<String> keyss = Arrays.asList(keys);
+ if (!keyss.contains(MapsClientPreferences.P_TILESERVER_URL) && node.get(MapsClientPreferences.P_TILESERVER_URL, "").isEmpty()) {
+ String possibleBuiltin = MapsClientPreferences.possibleBuiltinServerURL();
+ if (possibleBuiltin == null)
+ possibleBuiltin = "";
+ node.put(MapsClientPreferences.P_TILESERVER_URL, possibleBuiltin);
+ }
+ } catch (BackingStoreException e) {
+ LOGGER.error("Could not get keys for node {}", node, e);
+ }
}
}