From cfe784b4b0a520ef66d600a81743772ba03c8b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Sk=C3=B8ien?= Date: Fri, 10 Apr 2026 16:24:02 +0200 Subject: [PATCH] implement desktop view and fix swithing of views --- ...ntroller.java => StartViewController.java} | 17 +++++----- .../ntnu/idi/idatt2003/gruppe42/Millions.java | 31 +++++++++++++++---- .../idatt2003/gruppe42/View/DesktopView.java | 13 ++++++++ .../View/{StartScreen.java => StartView.java} | 4 +-- 4 files changed, 47 insertions(+), 18 deletions(-) rename src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/{StartScreenController.java => StartViewController.java} (62%) create mode 100644 src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/DesktopView.java rename src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/{StartScreen.java => StartView.java} (96%) diff --git a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/StartScreenController.java b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/StartViewController.java similarity index 62% rename from src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/StartScreenController.java rename to src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/StartViewController.java index db30b44..0d0e8a8 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/StartScreenController.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Controller/StartViewController.java @@ -1,26 +1,25 @@ package edu.ntnu.idi.idatt2003.gruppe42.Controller; import edu.ntnu.idi.idatt2003.gruppe42.Model.Player; -import edu.ntnu.idi.idatt2003.gruppe42.View.StartScreen; +import edu.ntnu.idi.idatt2003.gruppe42.View.StartView; import java.math.BigDecimal; -import javafx.scene.control.RadioButton; -public class StartScreenController { +public class StartViewController { private String username = ""; - private final StartScreen startScreen; + private final StartView startView; - public StartScreenController(StartScreen startScreen) { + public StartViewController(StartView startView) { - this.startScreen = startScreen; + this.startView = startView; - startScreen.getUsernameField().textProperty().addListener((obs, old, newValue) -> { + startView.getUsernameField().textProperty().addListener((obs, old, newValue) -> { if (isValidName(newValue)) { username = newValue; } }); - startScreen.getLoginButton().setOnAction(e -> handleStart()); + startView.getLoginButton().setOnAction(e -> handleStart()); } private void handleStart() { @@ -35,7 +34,7 @@ private boolean isValidName(String value) { } private BigDecimal getStartingMoney() { - String selected = startScreen.getSelectedMode(); + String selected = startView.getSelectedMode(); return switch (selected.charAt(0)) { case 'E' -> new BigDecimal("1000"); diff --git a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Millions.java b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Millions.java index f3da392..287be2d 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Millions.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/Millions.java @@ -1,25 +1,44 @@ package edu.ntnu.idi.idatt2003.gruppe42; -import edu.ntnu.idi.idatt2003.gruppe42.Controller.StartScreenController; -import edu.ntnu.idi.idatt2003.gruppe42.View.StartScreen; +import edu.ntnu.idi.idatt2003.gruppe42.Controller.StartViewController; +import edu.ntnu.idi.idatt2003.gruppe42.View.DesktopView; +import edu.ntnu.idi.idatt2003.gruppe42.View.StartView; import javafx.application.Application; import javafx.scene.Scene; -import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Millions extends Application { + private Scene scene; + private Stage stage; + @Override public void start(Stage stage) throws Exception { - StartScreen startScreen = new StartScreen(); + this.stage = stage; + + StartView startView = new StartView(); + new StartViewController(startView); - StartScreenController controller = new StartScreenController(startScreen); - Scene scene = new Scene(startScreen.getRoot(), 900, 700); + scene = new Scene(startView.getRoot(), 900, 700); stage.setTitle("Millions"); stage.setScene(scene); stage.setFullScreen(true); stage.show(); + + switchToDesktopView(); + } + + public void switchToStartView() { + StartView startView = new StartView(); + scene.setRoot(startView.getRoot()); + stage.setScene(scene); + } + + public void switchToDesktopView() { + DesktopView desktopView = new DesktopView(); + scene.setRoot(desktopView.getRoot()); + stage.setScene(scene); } public static void main(String[] args) { diff --git a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/DesktopView.java b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/DesktopView.java new file mode 100644 index 0000000..7ec67f9 --- /dev/null +++ b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/DesktopView.java @@ -0,0 +1,13 @@ +package edu.ntnu.idi.idatt2003.gruppe42.View; + +import javafx.scene.layout.BorderPane; + +public class DesktopView { + + public BorderPane getRoot() { + + BorderPane root = new BorderPane(); + + return root; + } +} diff --git a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/StartScreen.java b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/StartView.java similarity index 96% rename from src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/StartScreen.java rename to src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/StartView.java index 980fa1b..dc3d990 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/StartScreen.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/gruppe42/View/StartView.java @@ -2,20 +2,18 @@ import javafx.geometry.Pos; import javafx.scene.control.Button; -import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.scene.control.ToggleGroup; import javafx.scene.image.Image; import javafx.scene.image.ImageView; -import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import java.util.Objects; -public class StartScreen { +public class StartView { private final TextField usernameField = new TextField(); private final Button loginButton = new Button("Login");