From 7023562add5f75e28bda8944b0ae02e5df1f4d6a Mon Sep 17 00:00:00 2001 From: CyB3RC0nN0R Date: Sat, 18 Apr 2020 11:03:06 +0200 Subject: [PATCH] Added SettingsScene selection infrastructure --- .../java/envoy/client/ui/SettingsPane.java | 19 ++++++++++++ .../client/ui/SettingsSceneController.java | 28 +++++++++++++++++ src/main/resources/fxml/SettingsScene.fxml | 31 ++++++++----------- 3 files changed, 60 insertions(+), 18 deletions(-) create mode 100644 src/main/java/envoy/client/ui/SettingsPane.java diff --git a/src/main/java/envoy/client/ui/SettingsPane.java b/src/main/java/envoy/client/ui/SettingsPane.java new file mode 100644 index 0000000..85d2d35 --- /dev/null +++ b/src/main/java/envoy/client/ui/SettingsPane.java @@ -0,0 +1,19 @@ +package envoy.client.ui; + +import javafx.scene.Node; + + +/** + * Project: envoy-client
+ * File: SettingsPane.java
+ * Created: 18.04.2020
+ * + * @author Kai S. K. Engelbart + * @since Envoy Client v0.1-beta + */ +public abstract class SettingsPane extends Node { + + protected String title; + + public abstract String getTitle(); +} diff --git a/src/main/java/envoy/client/ui/SettingsSceneController.java b/src/main/java/envoy/client/ui/SettingsSceneController.java index 1fa8be6..761d8cb 100644 --- a/src/main/java/envoy/client/ui/SettingsSceneController.java +++ b/src/main/java/envoy/client/ui/SettingsSceneController.java @@ -1,5 +1,10 @@ package envoy.client.ui; +import javafx.fxml.FXML; +import javafx.scene.control.*; + +import envoy.client.data.Settings; + /** * Project: envoy-client
* File: SettingsSceneController.java
@@ -10,4 +15,27 @@ package envoy.client.ui; */ public class SettingsSceneController { + @FXML + private ListView settingsList; + + @FXML + private TitledPane titledPane; + + private static final Settings settings = Settings.getInstance(); + + @FXML + private void initialize() { + settingsList.setCellFactory(listView -> new ListCell<>() { + + @Override + protected void updateItem(SettingsPane item, boolean empty) { if (!empty && item != null) setGraphic(new Label(item.getTitle())); }; + }); + } + + @FXML + private void settingsListClicked() { + final var pane = settingsList.getSelectionModel().getSelectedItem(); + titledPane.setText(pane.getTitle()); + titledPane.setContent(pane); + } } diff --git a/src/main/resources/fxml/SettingsScene.fxml b/src/main/resources/fxml/SettingsScene.fxml index 12edf7c..3aaee9a 100644 --- a/src/main/resources/fxml/SettingsScene.fxml +++ b/src/main/resources/fxml/SettingsScene.fxml @@ -1,29 +1,24 @@ + - - + + - + - - - + + + + - - -