From d6de2e715969c649042d8b9791133eef9c7efcec Mon Sep 17 00:00:00 2001 From: Romina Date: Fri, 17 Jul 2026 16:38:29 +0330 Subject: [PATCH] Pricing Plans UI --- src/main/java/workshop/Controller.java | 69 +++++++++++++++++------- src/main/java/workshop/Launcher.java | 9 ++-- src/main/java/workshop/Main.java | 26 ++++++--- src/main/resources/workshop/pricing.fxml | 4 +- 4 files changed, 75 insertions(+), 33 deletions(-) diff --git a/src/main/java/workshop/Controller.java b/src/main/java/workshop/Controller.java index 3092fab..4997bad 100644 --- a/src/main/java/workshop/Controller.java +++ b/src/main/java/workshop/Controller.java @@ -1,39 +1,68 @@ package workshop; import javafx.fxml.FXML; -import javafx.scene.control.Label; +import javafx.scene.Scene; +import javafx.scene.control.Alert; import javafx.scene.control.Button; +import javafx.scene.control.Label; -public class Controller { - @FXML private Label titleLabel; - @FXML private Button themeToggle; +public class Controller +{ + @FXML + private Label titleLabel; + + @FXML + private Button themeToggle; private boolean isDark = true; - // TODO: (Optional) Create initialize function and use it to set prices during runtime. + // (Optional) + @FXML + public void initialize() {} @FXML - private void buyBasic() { - // TODO: Call showAlert() with a message indicating the user entered the payment gateway - } + private void buyBasic() {showAlert("You entered the payment gateway for the Basic plan.");} @FXML - private void buyPro() { - // TODO: Call showAlert() with a message indicating the user entered the payment gateway - } + private void buyPro() {showAlert("You entered the payment gateway for the Pro plan.");} @FXML - private void buyEnterprise() { - // TODO: Call showAlert() with a message indicating the user entered the payment gateway - } + private void buyEnterprise() {showAlert("You entered the payment gateway for the Enterprise plan.");} @FXML - private void toggleTheme() { - // TODO: Toggle the isDark flag. If dark, switch to style.css and set button text to "Switch to Light Mode" - // TODO: If light, switch to light.css and set button text to "Switch to Dark Mode" + private void toggleTheme() + { + Scene scene = themeToggle.getScene(); + + if (isDark) + { + scene.getStylesheets().clear(); + scene.getStylesheets().add( + getClass().getResource("light.css").toExternalForm() + ); + + themeToggle.setText("Switch to Dark Mode"); + isDark = false; + + } + else + { + scene.getStylesheets().clear(); + scene.getStylesheets().add( + getClass().getResource("style.css").toExternalForm() + ); + + themeToggle.setText("Switch to Light Mode"); + isDark = true; + } } - private void showAlert(String message) { - // TODO: Create a new Alert of type INFORMATION with the given message and display it + private void showAlert(String message) + { + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Payment"); + alert.setHeaderText(null); + alert.setContentText(message); + alert.showAndWait(); } -} +} \ No newline at end of file diff --git a/src/main/java/workshop/Launcher.java b/src/main/java/workshop/Launcher.java index 0f82aeb..7165b98 100644 --- a/src/main/java/workshop/Launcher.java +++ b/src/main/java/workshop/Launcher.java @@ -2,8 +2,7 @@ package workshop; import javafx.application.Application; -public class Launcher { - public static void main(String[] args) { - // TODO: Launch the JavaFX application by calling Application.launch(Main.class) - } -} +public class Launcher +{ + public static void main(String[] args) {Application.launch(Main.class, args);} +} \ No newline at end of file diff --git a/src/main/java/workshop/Main.java b/src/main/java/workshop/Main.java index d6cd3fd..0698c40 100644 --- a/src/main/java/workshop/Main.java +++ b/src/main/java/workshop/Main.java @@ -1,13 +1,27 @@ package workshop; import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; import javafx.stage.Stage; -public class Main extends Application { +public class Main extends Application +{ @Override - public void start(Stage stage) throws Exception { - // TODO: Load the FXML file using FXMLLoader.load() and get the Parent root - // TODO: Create a Scene with the root (width=750, height=450) and add the stylesheet "style.css" - // TODO: Set the stage title to "Pricing Plans", set the scene, and call stage.show() + public void start(Stage stage) throws Exception + { + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("pricing.fxml")); + + Parent root = fxmlLoader.load(); + + Scene scene = new Scene(root, 750, 450); + scene.getStylesheets().add( + getClass().getResource("style.css").toExternalForm() + ); + + stage.setTitle("Pricing Plans"); + stage.setScene(scene); + stage.show(); } -} +} \ No newline at end of file diff --git a/src/main/resources/workshop/pricing.fxml b/src/main/resources/workshop/pricing.fxml index b54db3b..a9b03f8 100644 --- a/src/main/resources/workshop/pricing.fxml +++ b/src/main/resources/workshop/pricing.fxml @@ -17,14 +17,14 @@