From: rnayabed Date: Fri, 05 Mar 2021 00:14:00 +0530 Subject: Refactored DashboardBase to use resizable SplitPanes --- Refactored DashboardBase to use resizable SplitPanes --- --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -488,7 +488,7 @@ public class Controller extends Base imp } @Override - public synchronized boolean onNormalActionClicked(NormalAction action) { + public boolean onNormalActionClicked(NormalAction action) { try{ getLogger().info("action "+action.getID()+" clicked!"); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/ClientAndProfileSelectorPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/ClientAndProfileSelectorPane.java @@ -25,6 +25,7 @@ public class ClientAndProfileSelectorPan getStyleClass().add("client_and_profile_selector_pane"); setPadding(new Insets(10)); setMinHeight(90); + setMaxHeight(90); initUI(); loadData(); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/DashboardBase.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/DashboardBase.java @@ -9,13 +9,15 @@ import com.stream_pi.server.window.dashb import com.stream_pi.server.window.ExceptionAndAlertHandler; import com.stream_pi.util.exception.SevereException; import javafx.application.HostServices; +import javafx.geometry.Orientation; +import javafx.scene.control.SplitPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; -public class DashboardBase extends HBox implements DashboardInterface { +public class DashboardBase extends SplitPane implements DashboardInterface { - private final VBox leftPane; + private final SplitPane leftSplitPane; private Logger logger; @@ -28,10 +30,14 @@ public class DashboardBase extends HBox { this.exceptionAndAlertHandler = exceptionAndAlertHandler; logger = Logger.getLogger(DashboardBase.class.getName()); - leftPane = new VBox(); - HBox.setHgrow(leftPane, Priority.ALWAYS); - getChildren().add(leftPane); + leftSplitPane = new SplitPane(); + leftSplitPane.getStyleClass().add("dashboard_left_split_pane"); + leftSplitPane.setOrientation(Orientation.VERTICAL); + + getStyleClass().add("dashboard_right_split_pane"); + + getItems().add(leftSplitPane); setPluginsPane(new PluginsPane(hostServices)); @@ -50,7 +56,7 @@ public class DashboardBase extends HBox private void setPluginsPane(PluginsPane pluginsPane) { this.pluginsPane = pluginsPane; - getChildren().add(this.pluginsPane); + getItems().add(this.pluginsPane); } public PluginsPane getPluginsPane() { @@ -61,7 +67,7 @@ public class DashboardBase extends HBox private void setClientDetailsPane(ClientAndProfileSelectorPane clientAndProfileSelectorPane) { this.clientAndProfileSelectorPane = clientAndProfileSelectorPane; - leftPane.getChildren().add(this.clientAndProfileSelectorPane); + leftSplitPane.getItems().add(this.clientAndProfileSelectorPane); } public ClientAndProfileSelectorPane getClientDetailsPane() { @@ -72,7 +78,7 @@ public class DashboardBase extends HBox private void setActionGridPane(ActionGridPane actionGridPane) { this.actionGridPane = actionGridPane; - leftPane.getChildren().add(this.actionGridPane); + leftSplitPane.getItems().add(this.actionGridPane); } public ActionGridPane getActionGridPane() { @@ -83,7 +89,7 @@ public class DashboardBase extends HBox private void setActionDetailsPane(ActionDetailsPane actionDetailsPane) { this.actionDetailsPane = actionDetailsPane; - leftPane.getChildren().add(this.actionDetailsPane); + leftSplitPane.getItems().add(this.actionDetailsPane); } public ActionDetailsPane getActionDetailsPane() { --- 'a/src/main/java/com/stream_pi/server/window/dashboard/PluginsPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/PluginsPane.java @@ -33,6 +33,7 @@ public class PluginsPane extends VBox { public PluginsPane(HostServices hostServices) { setMinWidth(250); + setMaxWidth(350); getStyleClass().add("plugins_pane"); setPadding(new Insets(10)); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java @@ -91,7 +91,7 @@ public class ActionDetailsPane extends V scrollPane.getStyleClass().add("action_details_pane_scroll_pane"); - setMinHeight(310); + setMinHeight(210); scrollPane.setContent(vbox); vbox.prefWidthProperty().bind(scrollPane.widthProperty()); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPane.java @@ -31,8 +31,6 @@ public class ActionGridPane extends Scro this.exceptionAndAlertHandler = exceptionAndAlertHandler; getStyleClass().add("action_grid_pane_parent"); - VBox.setVgrow(this, Priority.ALWAYS); - actionsGridPane = new GridPane(); actionsGridPane.setPadding(new Insets(5.0)); actionsGridPane.getStyleClass().add("action_grid_pane"); --- 'a/src/main/java/com/stream_pi/server/window/settings/PluginsSettings.java' +++ b/src/main/java/com/stream_pi/server/window/settings/PluginsSettings.java @@ -342,8 +342,9 @@ public class PluginsSettings extends VBo if(action.getButtonBar()!=null) { + action.getButtonBar().getStyleClass().add("plugins_settings_each_plugin_button_bar"); HBox buttonBarHBox = new HBox(SpaceFiller.horizontal(), action.getButtonBar()); - buttonBarHBox.getStyleClass().add("plugins_settings_each_plugin_button_bar"); + buttonBarHBox.getStyleClass().add("plugins_settings_each_plugin_button_bar_hbox"); vBox.getChildren().add(buttonBarHBox); } Binary files 'a/src/main/resources/com/stream_pi/server/Default.zip' and b/src/main/resources/com/stream_pi/server/Default.zip differ --- 'a/src/main/resources/com/stream_pi/server/style.css' +++ b/src/main/resources/com/stream_pi/server/style.css @@ -8,6 +8,11 @@ -fx-font-weight : bold; } +.plugins_settings_each_plugin_button_bar +{ + -fx-alignment:center-right; +} + .about_license_label { -fx-font-size : 16; @@ -259,4 +264,8 @@ .alert_button_bar { -fx-background-color:white; +} + +.split-pane-divider { + -fx-padding: 2; } \ No newline at end of file