server
Clone or download
Modified Files
--- 'a/src/main/java/com/stream_pi/server/controller/Controller.java'
+++ b/src/main/java/com/stream_pi/server/controller/Controller.java
@@ -220,8 +220,6 @@ public class Controller extends Base imp
return;
}
- getConfig().setStartupWindowSize(getWidth(), getHeight());
- getConfig().save();
onQuitApp();
ExternalPlugins.getInstance().shutDownActions();
Platform.exit();
@@ -238,6 +236,21 @@ public class Controller extends Base imp
public void onQuitApp()
{
+ try
+ {
+ if(getConfig() != null)
+ {
+ getConfig().setStartupWindowSize(getWidth(), getHeight());
+ getConfig().setRightDividerPositions(getDashboardBase().getDividerPositions());
+ getConfig().setLeftDividerPositions(getDashboardBase().getLeftSplitPane().getDividerPositions());
+ getConfig().save();
+ }
+ }
+ catch (SevereException e)
+ {
+ handleSevereException(e);
+ }
+
stopServerAndAllConnections();
executor.shutdown();
getLogger().info("Shutting down ...");
--- 'a/src/main/java/com/stream_pi/server/io/Config.java'
+++ b/src/main/java/com/stream_pi/server/io/Config.java
@@ -10,6 +10,8 @@ package com.stream_pi.server.io;
import java.awt.*;
import java.io.File;
+import java.lang.reflect.Array;
+import java.util.Arrays;
import java.util.Objects;
import java.util.logging.Logger;
@@ -47,7 +49,7 @@ public class Config
document = docBuilder.parse(configFile);
} catch (Exception e) {
e.printStackTrace();
- throw new SevereException("Config", "unable to read config.xml");
+ throw new SevereException("Config", "Unable to read config.xml\n"+e.getMessage());
}
}
@@ -113,12 +115,74 @@ public class Config
}
+
//server
+ private Element getDividerPositionsElement()
+ {
+ return (Element) getServerElement().getElementsByTagName("divider-positions").item(0);
+ }
+
+ public String getDefaultLeftDividerPositions()
+ {
+ return "3.0";
+ }
+
+
+ public double[] getLeftDividerPositions()
+ {
+ String[] strArr = XMLConfigHelper.getStringProperty(getDividerPositionsElement(), "left",
+ getDefaultLeftDividerPositions(), false, true, document, configFile)
+ .split(",");
+
+ double[] r = new double[strArr.length];
+
+ for (int i = 0;i<strArr.length;i++)
+ {
+ r[i] = Double.parseDouble(strArr[i]);
+ }
+
+ return r;
+ }
+
+ public void setLeftDividerPositions(double[] position)
+ {
+ String r = Arrays.toString(position);
+ getDividerPositionsElement().getElementsByTagName("left").item(0).setTextContent(r.substring(1, r.length()-1));
+ }
+
+ public String getDefaultRightDividerPositions()
+ {
+ return "3.0";
+ }
+
+
+ public double[] getRightDividerPositions()
+ {
+ String[] strArr = XMLConfigHelper.getStringProperty(getDividerPositionsElement(), "right",
+ getDefaultRightDividerPositions(), false, true, document, configFile)
+ .split(",");
+
+ double[] r = new double[strArr.length];
+
+ for (int i = 0;i<strArr.length;i++)
+ {
+ r[i] = Double.parseDouble(strArr[i]);
+ }
+
+ return r;
+ }
+
+ public void setRightDividerPositions(double[] position)
+ {
+ String r = Arrays.toString(position);
+ getDividerPositionsElement().getElementsByTagName("right").item(0).setTextContent(r.substring(1, r.length()-1));
+ }
private Element getActionGridElement()
{
return (Element) getServerElement().getElementsByTagName("action-grid").item(0);
}
+
public int getActionGridActionGap()
{
return XMLConfigHelper.getIntProperty(getActionGridElement(), "gap",
--- 'a/src/main/java/com/stream_pi/server/window/Base.java'
+++ b/src/main/java/com/stream_pi/server/window/Base.java
@@ -136,6 +136,7 @@ public abstract class Base extends Stack
getChildren().addAll(settingsBase, dashboardBase);
+ applyDefaultStylesheet();
config = Config.getInstance();
initThemes();
@@ -144,6 +145,9 @@ public abstract class Base extends Stack
stage.setHeight(config.getStartupWindowHeight());
stage.centerOnScreen();
+ dashboardBase.setDividerPositions(config.getRightDividerPositions());
+ dashboardBase.getLeftSplitPane().setDividerPositions(config.getLeftDividerPositions());
+
dashboardBase.toFront();
}
--- 'a/src/main/java/com/stream_pi/server/window/dashboard/DashboardBase.java'
+++ b/src/main/java/com/stream_pi/server/window/dashboard/DashboardBase.java
@@ -136,4 +136,9 @@ public class DashboardBase extends Split
}
+
+ public SplitPane getLeftSplitPane()
+ {
+ return leftSplitPane;
+ }
}