From 273c7069784ba5a4bced3ed4b5762cbec5f434ec Mon Sep 17 00:00:00 2001 From: Peter <pt033@hdm-stuttgart.de> Date: Mon, 11 Dec 2023 23:15:05 +0100 Subject: [PATCH] update(ui): add selection for rounds to local create scene #14 --- .../Controller/LocalCreateController.java | 24 ++++++++++++++++++- src/main/resources/fxml/LocalCreate.fxml | 23 +++++++++++++----- src/main/resources/styles/style.css | 18 ++++++++++++++ 3 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java index 12f6d654..a7e1f040 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LocalCreateController.java @@ -1,16 +1,37 @@ package de.hdm_stuttgart.battlearena.Controller; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; +import javafx.fxml.Initializable; +import javafx.scene.control.TitledPane; +import javafx.scene.control.Toggle; +import javafx.scene.control.ToggleButton; +import javafx.scene.control.ToggleGroup; import javafx.scene.layout.VBox; import java.io.IOException; +import java.net.URL; import java.util.Objects; +import java.util.ResourceBundle; -public class LocalCreateController { +public class LocalCreateController implements Initializable { @FXML public VBox parent; + @FXML public TitledPane roundsTitledPane; + @FXML public ToggleGroup rounds; private final SceneLoader sceneLoader = new SceneLoader(); + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + rounds.selectedToggleProperty().addListener((observableValue, oldToggle, newToggle) -> { + if (rounds.getSelectedToggle() != null) { + ToggleButton selected = (ToggleButton) rounds.getSelectedToggle(); + roundsTitledPane.setText(selected.getText()); + } + }); + } + public void playScene() { parent.getChildren().clear(); parent.getChildren().add(sceneLoader.loadScene("Play")); @@ -20,4 +41,5 @@ public class LocalCreateController { parent.getChildren().clear(); parent.getChildren().add(sceneLoader.loadScene("SkinSelection")); } + } diff --git a/src/main/resources/fxml/LocalCreate.fxml b/src/main/resources/fxml/LocalCreate.fxml index 46cca9f8..6a890259 100644 --- a/src/main/resources/fxml/LocalCreate.fxml +++ b/src/main/resources/fxml/LocalCreate.fxml @@ -5,6 +5,7 @@ <?import javafx.scene.control.Button?> <?import javafx.scene.control.RadioButton?> <?import javafx.scene.control.TitledPane?> +<?import javafx.scene.control.ToggleButton?> <?import javafx.scene.control.ToggleGroup?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> @@ -19,10 +20,20 @@ <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Rounds:" /> <Accordion> <panes> - <TitledPane animated="false" text="untitled 1"> - <content> - <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" /> - </content> + <TitledPane fx:id="roundsTitledPane" text="Select"> + <content> + <VBox fx:id="boxBox"> + <children> + <ToggleButton mnemonicParsing="false" text="1"> + <toggleGroup> + <ToggleGroup fx:id="rounds" /> + </toggleGroup> + </ToggleButton> + <ToggleButton mnemonicParsing="false" text="2" toggleGroup="$rounds" /> + <ToggleButton mnemonicParsing="false" text="3" toggleGroup="$rounds" /> + </children> + </VBox> + </content> </TitledPane> </panes> </Accordion> @@ -36,7 +47,7 @@ <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Time:" /> <Accordion> <panes> - <TitledPane animated="false" text="untitled 1"> + <TitledPane animated="false" text="Select"> <content> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" /> </content> @@ -47,7 +58,7 @@ </HBox> <HBox alignment="TOP_CENTER" spacing="10.0"> <children> - <Text strokeType="OUTSIDE" strokeWidth="0.0" text="PLayers:" /> + <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Players:" /> <RadioButton mnemonicParsing="false" selected="true" text="2"> <toggleGroup> <ToggleGroup fx:id="group31" /> diff --git a/src/main/resources/styles/style.css b/src/main/resources/styles/style.css index bb2a6b5c..21f32160 100644 --- a/src/main/resources/styles/style.css +++ b/src/main/resources/styles/style.css @@ -29,6 +29,24 @@ -fx-font-size: 30; } +.titled-pane:focused > .title > .arrow-button > .arrow { + -fx-effect: null; +} + +.accordion .titled-pane > *.content{ + -fx-background-color: transparent ; + -fx-border-width: 0; +} + +.accordion .titled-pane > .title { + -fx-background-color: transparent; + -fx-border-width: 0; +} + +#boxBox { + -fx-background-color: none; +} + /* https://dx.dragan.ba/javafx-radiobutton-custom-css/ */ .radio-button .radio { -fx-border-width: 1px; -- GitLab