]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.elevation.server.ui/src/org/simantics/maps/elevation/server/ui/MapsElevationServerPreferencePage.java
Merge remote-tracking branch 'origin/master' into release/1.35.2
[simantics/district.git] / org.simantics.maps.elevation.server.ui / src / org / simantics / maps / elevation / server / ui / MapsElevationServerPreferencePage.java
1 package org.simantics.maps.elevation.server.ui;
2
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;
20
21 public class MapsElevationServerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
22
23     private static final Logger LOGGER = LoggerFactory.getLogger(MapsElevationServerPreferencePage.class);
24     
25     public MapsElevationServerPreferencePage() {
26         super(GRID);
27         setDescription("Maps elevation server preferences");
28     }
29
30     @Override
31     protected IPreferenceStore doGetPreferenceStore() {
32         return new ScopedPreferenceStore(InstanceScope.INSTANCE, MapsElevationServerPreferences.P_NODE);
33     }
34
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);
39
40         BooleanFieldEditor automatically = new BooleanFieldEditor(MapsElevationServerPreferences.P_USE_ELEVATION_SERVER, "Use elevation server", serverGroup);
41         addField(automatically);
42
43         StringFieldEditor tifFolderPath = new StringFieldEditor(MapsElevationServerPreferences.P_TIFF_FOLDER_PATH, "Tiff folder path", serverGroup);
44         addField(tifFolderPath);
45         
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);
48         addField(pipeDepth);
49         
50         GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).extendedMargins(12, 12, 12, 12).spacing(5, 4).applyTo(serverGroup);
51     }
52     
53     @Override
54     protected void createFieldEditors() {
55         createGeneralGroup();
56
57     }
58
59     @Override
60     protected void performApply() {
61         super.performApply();
62     }
63     
64     @Override
65     public boolean performOk() {
66         boolean ok = super.performOk();
67         if (ok) {
68             try {
69                 SingletonTiffTileInterface.reloadElevationServer();
70             } catch (Exception e) {
71                 LOGGER.error("Could not reload elevation server", e);
72                 setErrorMessage(e.getMessage());
73                 return false;
74             }
75         }
76         return ok;
77     }
78
79     @Override
80     public void init(IWorkbench workbench) {
81         
82     }
83
84
85 }