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