]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server.ui/src/org/simantics/maps/server/ui/prefs/MapsServerPreferencePage.java
Adding pkg-precompiled tileserver-mapnik to avoid npm install
[simantics/district.git] / org.simantics.maps.server.ui / src / org / simantics / maps / server / ui / prefs / MapsServerPreferencePage.java
index 6dc96877b2e56957d54167891f9d6a827c863ea6..0dc33f13041741b2bbc60ff9ba0d101922183b58 100644 (file)
@@ -31,6 +31,7 @@ import org.eclipse.ui.preferences.ScopedPreferenceStore;
 import org.simantics.district.maps.server.TileserverMapnik;
 import org.simantics.district.maps.server.TileserverMapnikInstance;
 import org.simantics.district.maps.server.prefs.MapsServerPreferences;
+import org.simantics.maps.server.ui.TileserverMapnikStartJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,6 +64,28 @@ public class MapsServerPreferencePage extends FieldEditorPreferencePage implemen
 
     private void createServerStatusField(Composite parent) {
         Label label = new Label(parent, SWT.NONE);
+
+        Button b = new Button(parent, SWT.NONE);
+        updateWidgets(label, b);
+        b.addSelectionListener(new SelectionAdapter() {
+            
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                try {
+                    if (server.isRunning()) {
+                        server.stop();
+                        updateWidgets(label, b);
+                    } else {
+                        new TileserverMapnikStartJob().schedule();
+                    }
+                } catch (Exception ex) {
+                    LOGGER.error("Could not start/stop server", ex);
+                }
+            }
+        });
+    }
+    
+    private void updateWidgets(Label label, Button b) {
         String labelText = "";
         String buttonText = "";
         int labelColor = -1;
@@ -85,24 +108,7 @@ public class MapsServerPreferencePage extends FieldEditorPreferencePage implemen
         label.setText("Tileserver is currently " + labelText);
         label.setForeground(getShell().getDisplay().getSystemColor(labelColor));
         
-        Button b = new Button(parent, SWT.NONE);
         b.setText(buttonText + " server");
-        b.addSelectionListener(new SelectionAdapter() {
-            
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                try {
-                    if (server.isRunning()) {
-                        server.stop();
-                    } else {
-                        server.start();
-                    }
-                    
-                } catch (Exception ex) {
-                    LOGGER.error("Could not start/stop server", ex);
-                }
-            }
-        });
     }
     
     private void createGeneralGroup() {
@@ -233,9 +239,10 @@ public class MapsServerPreferencePage extends FieldEditorPreferencePage implemen
         boolean success = super.performOk();
         
         try {
-            server.restart();
+            server.stop();
+            new TileserverMapnikStartJob().schedule();
         } catch (Exception e) {
-            e.printStackTrace();
+            LOGGER.error("Could not restart tileserver-mapnik", e);
         }
         
         return success;