1 package org.simantics.maps.elevation.server.ui;
3 import org.eclipse.core.runtime.preferences.InstanceScope;
4 import org.eclipse.jface.layout.GridDataFactory;
5 import org.eclipse.jface.layout.GridLayoutFactory;
6 import org.eclipse.jface.preference.BooleanFieldEditor;
7 import org.eclipse.jface.preference.FieldEditorPreferencePage;
8 import org.eclipse.jface.preference.IPreferenceStore;
9 import org.eclipse.jface.preference.IntegerFieldEditor;
10 import org.eclipse.jface.preference.StringFieldEditor;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.widgets.Group;
13 import org.eclipse.ui.IWorkbench;
14 import org.eclipse.ui.IWorkbenchPreferencePage;
15 import org.eclipse.ui.preferences.ScopedPreferenceStore;
16 import org.simantics.maps.elevation.server.SingletonTiffTileInterface;
17 import org.simantics.maps.elevation.server.prefs.MapsElevationServerPreferences;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
21 public class MapsElevationServerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
23 private static final Logger LOGGER = LoggerFactory.getLogger(MapsElevationServerPreferencePage.class);
25 public MapsElevationServerPreferencePage() {
27 setDescription("Maps elevation server preferences");
31 protected IPreferenceStore doGetPreferenceStore() {
32 return new ScopedPreferenceStore(InstanceScope.INSTANCE, MapsElevationServerPreferences.P_NODE);
35 private void createGeneralGroup() {
36 Group serverGroup = new Group(getFieldEditorParent(), SWT.NONE);
37 serverGroup.setText("General");
38 GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(serverGroup);
40 BooleanFieldEditor automatically = new BooleanFieldEditor(MapsElevationServerPreferences.P_USE_ELEVATION_SERVER, "Use elevation server", serverGroup);
41 addField(automatically);
43 StringFieldEditor tifFolderPath = new StringFieldEditor(MapsElevationServerPreferences.P_TIFF_FOLDER_PATH, "Tiff folder path", serverGroup);
44 addField(tifFolderPath);
46 IntegerFieldEditor pipeDepth = new IntegerFieldEditor(MapsElevationServerPreferences.P_PIPE_DEPTH_UNDER_GROUND, "Pipe depth under ground", serverGroup);
47 pipeDepth.setValidRange(Integer.MIN_VALUE, Integer.MAX_VALUE);
50 GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).extendedMargins(12, 12, 12, 12).spacing(5, 4).applyTo(serverGroup);
54 protected void createFieldEditors() {
60 protected void performApply() {
65 public boolean performOk() {
66 boolean ok = super.performOk();
69 SingletonTiffTileInterface.reloadElevationServer();
70 } catch (Exception e) {
71 LOGGER.error("Could not reload elevation server", e);
72 setErrorMessage(e.getMessage());
80 public void init(IWorkbench workbench) {