From 4ea1ec62dce090c9698dfc18e5a9940dfbaa93c0 Mon Sep 17 00:00:00 2001
From: Edvard <edvardee@stud.ntnu.no>
Date: Sun, 19 May 2024 21:21:38 +0200
Subject: [PATCH] Slight refactoring of gui, removing redundancy improving
 uniformity

---
 src/main/java/org/example/chaosgame/MainApp.java  |  6 ++----
 .../org/example/chaosgame/view/ChaosPage.java     |  5 ++---
 .../chaosgame/view/components/BottomBar.java      |  7 +++----
 .../chaosgame/view/components/SideBar.java        | 10 +++++-----
 .../view/components/SliderImaginaryPart.java      |  1 +
 .../chaosgame/view/components/SliderRealPart.java |  1 +
 .../example/chaosgame/view/components/TopBar.java | 15 +++++++--------
 src/main/resources/global.css                     | 14 ++++++++++++--
 8 files changed, 33 insertions(+), 26 deletions(-)

diff --git a/src/main/java/org/example/chaosgame/MainApp.java b/src/main/java/org/example/chaosgame/MainApp.java
index e27382c..ce07227 100644
--- a/src/main/java/org/example/chaosgame/MainApp.java
+++ b/src/main/java/org/example/chaosgame/MainApp.java
@@ -21,12 +21,10 @@ public class MainApp extends Application {
     new PageController(mainPane, chaosGameController, exploreGameController);
 
     Scene scene = new Scene(mainPane, 1200, 800);
-    mainPane.prefWidthProperty().bind(scene.widthProperty());
-    mainPane.prefHeightProperty().bind(scene.heightProperty());
     scene.getStylesheets().add(Objects.requireNonNull(getClass().getResource("/global.css")).toExternalForm());
 
-    primaryStage.setMinWidth(800);
-    primaryStage.setMinHeight(600);
+    primaryStage.setMinWidth(1000);
+    primaryStage.setMinHeight(650);
 
     primaryStage.setScene(scene);
     primaryStage.setTitle("Chaos Game Canvas");
diff --git a/src/main/java/org/example/chaosgame/view/ChaosPage.java b/src/main/java/org/example/chaosgame/view/ChaosPage.java
index f4abc3c..dcb8ea1 100644
--- a/src/main/java/org/example/chaosgame/view/ChaosPage.java
+++ b/src/main/java/org/example/chaosgame/view/ChaosPage.java
@@ -27,15 +27,14 @@ public class ChaosPage extends GamePage {
     this.bottomBar.getStyleClass().add("chaos-text");
     SideBar sideBar = new SideBar(chaosGameController);
 
+    this.setCenter(gc.getCanvas());
     this.setTop(topBar);
     this.setRight(sideBar);
     this.setBottom(bottomBar);
-    this.setLeft(gc.getCanvas());
-
   }
 
   public void updateInformation(Transform2D transformation, int steps, Vector2D min, Vector2D max) {
-    topBar.updateTopBar(transformation, steps, min, max);
+    topBar.updateTotalTopBar(transformation, steps, min, max);
     bottomBar.updateBottomBar(transformation);
   }
 
diff --git a/src/main/java/org/example/chaosgame/view/components/BottomBar.java b/src/main/java/org/example/chaosgame/view/components/BottomBar.java
index be58ff8..00bbce7 100644
--- a/src/main/java/org/example/chaosgame/view/components/BottomBar.java
+++ b/src/main/java/org/example/chaosgame/view/components/BottomBar.java
@@ -32,16 +32,15 @@ public class BottomBar extends HBox {
   public BottomBar(GameController gameController) {
     this.setSpacing(10);
     this.realPartLabel = new Label();
+    this.realPartLabel.getStyleClass().add("top-bottom-padding");
     this.imaginaryPartLabel = new Label();
+    this.imaginaryPartLabel.getStyleClass().add("top-bottom-padding");
     this.sliderRealPart = new SliderRealPart(gameController);
     this.sliderImaginaryPart = new SliderImaginaryPart(gameController);
 
     realPartLabel.setMinSize(200, 20);
     imaginaryPartLabel.setMinSize(200, 20);
-    realPartLabel.setAlignment(Pos.CENTER);
-    imaginaryPartLabel.setAlignment(Pos.CENTER);
-
-    this.setAlignment(javafx.geometry.Pos.CENTER);
+    this.setAlignment(Pos.CENTER);
     this.getChildren().addAll(realPartLabel, sliderRealPart,
             sliderImaginaryPart, imaginaryPartLabel);
 
diff --git a/src/main/java/org/example/chaosgame/view/components/SideBar.java b/src/main/java/org/example/chaosgame/view/components/SideBar.java
index 57e2295..af300cf 100644
--- a/src/main/java/org/example/chaosgame/view/components/SideBar.java
+++ b/src/main/java/org/example/chaosgame/view/components/SideBar.java
@@ -30,13 +30,13 @@ public class SideBar extends VBox {
     resetGame.setOnAction(event -> chaosGameController.resetGame());
 
     this.getChildren().addAll(
-            fractalSelectionBox, colorPicker, numberOfStepsInput,
-            coordinatesButton, createOwnFractal, saveFractalButton, openFileButton,
-            runGame, resetGame);
+            fractalSelectionBox, colorPicker, coordinatesButton,
+            createOwnFractal, saveFractalButton, openFileButton,
+            numberOfStepsInput, runGame, resetGame);
     this.setAlignment(Pos.CENTER_RIGHT);
 
-    VBox.setMargin(coordinatesButton, new Insets(50, 0, 0, 0));
-    VBox.setMargin(runGame, new Insets(50, 0, 0, 0));
+    VBox.setMargin(coordinatesButton, new Insets(30, 0, 0, 0));
+    VBox.setMargin(numberOfStepsInput, new Insets(30, 0, 0, 0));
 
     this.getStyleClass().add("side-bar");
   }
diff --git a/src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java b/src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java
index 14dfe2c..a365e3e 100644
--- a/src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java
+++ b/src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java
@@ -11,6 +11,7 @@ public class SliderImaginaryPart extends BaseSlider {
     super(gameController);
     this.setMin(-1);
     this.setMax(1);
+    this.getStyleClass().add("top-bottom-padding");
   }
   /**
    * {@inheritDoc}
diff --git a/src/main/java/org/example/chaosgame/view/components/SliderRealPart.java b/src/main/java/org/example/chaosgame/view/components/SliderRealPart.java
index 71369aa..928cda8 100644
--- a/src/main/java/org/example/chaosgame/view/components/SliderRealPart.java
+++ b/src/main/java/org/example/chaosgame/view/components/SliderRealPart.java
@@ -8,6 +8,7 @@ public class SliderRealPart extends BaseSlider {
     super(gameController);
     this.setMin(-1);
     this.setMax(1);
+    this.getStyleClass().add("top-bottom-padding");
   }
 
   @Override
diff --git a/src/main/java/org/example/chaosgame/view/components/TopBar.java b/src/main/java/org/example/chaosgame/view/components/TopBar.java
index 70800bc..d214456 100644
--- a/src/main/java/org/example/chaosgame/view/components/TopBar.java
+++ b/src/main/java/org/example/chaosgame/view/components/TopBar.java
@@ -18,30 +18,29 @@ public class TopBar extends HBox {
   public TopBar(GameController gameController) {
     super();
     this.gameInfo = new Label();
+    this.gameInfo.getStyleClass().add("top-bottom-padding");
     this.stepsLabel = new Label();
+    this.stepsLabel.getStyleClass().add("top-bottom-padding");
     this.coordinatesLabel = new Label();
+    this.coordinatesLabel.getStyleClass().add("top-bottom-padding");
 
     Button homeButton = new HomeButton();
     homeButton.setOnAction(event -> gameController.homeButtonClicked());
 
     this.getChildren().addAll(homeButton, gameInfo, coordinatesLabel, stepsLabel);
-    this.setPadding(new javafx.geometry.Insets(10));
-
-    this.setSpacing(50);
     this.setAlignment(Pos.CENTER_LEFT);
     this.getStyleClass().add("top-bottom-bar");
   }
 
-  public void updateTopBar(Transform2D first, int totalSteps, Vector2D min, Vector2D max) {
+  public void updateTotalTopBar(Transform2D first, int totalSteps, Vector2D min, Vector2D max) {
     gameInfo.setText("Transformation: " + first.getClass().getSimpleName());
-    coordinatesLabel.setText("Min-Coordinate: " + min.getX() + ", " + min.getY() +
-            ". Max-Coordinate: " + max.getX() + ", " + max.getY());
+    updateTopBar(min, max);
     stepsLabel.setText("Total steps: " + totalSteps);
   }
 
   public void updateTopBar(Vector2D min, Vector2D max) {
-    coordinatesLabel.setText("Min-Coordinate: " + (double) Math.round(min.getX() * 100) / 100 + ", " + (double) Math.round(min.getY() * 100) / 100 +
-            ". Max-Coordinate: " + (double) Math.round(max.getX() * 100) / 100 + ", " + (double) Math.round(max.getY() * 100) / 100);
+    coordinatesLabel.setText("Coordinates: " + (double) Math.round(min.getX() * 100) / 100 + " , " + (double) Math.round(min.getY() * 100) / 100 +
+            " (min), " + (double) Math.round(max.getX() * 100) / 100 + ", " + (double) Math.round(max.getY() * 100) / 100 + " (max)");
   }
 
   public void setTopBarStyle(String text) {
diff --git a/src/main/resources/global.css b/src/main/resources/global.css
index 94ba268..6c89b8a 100644
--- a/src/main/resources/global.css
+++ b/src/main/resources/global.css
@@ -26,8 +26,12 @@
 }
 
 .text-field {
-    -fx-font: 14 arial;
-    -fx-border-color: black;
+    -fx-font: 20 arial;
+    -fx-background-color: #252525;
+    -fx-text-fill: white;
+    -fx-border-color: #3b3b3b;
+    -fx-background-radius: 20;
+    -fx-border-radius: 20;
     -fx-border-width: 2;
     -fx-background-insets: 1;
 }
@@ -125,6 +129,7 @@
     -fx-padding: 20;
     -fx-spacing: 10;
 }
+
 .top-bottom-bar .text {
     -fx-font: 20 arial;
     -fx-fill: #7c7c7c;
@@ -138,6 +143,11 @@
     -fx-background-insets: 1;
 }
 
+.top-bottom-padding{
+    -fx-padding: 0 10 0 10;
+}
+
+
 
 
 
-- 
GitLab