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