diff --git a/src/main/java/workshop/Controller.java b/src/main/java/workshop/Controller.java index 070b56f..877af7a 100644 --- a/src/main/java/workshop/Controller.java +++ b/src/main/java/workshop/Controller.java @@ -3,39 +3,83 @@ package workshop; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.Button; +import javafx.scene.control.Alert; public class Controller { @FXML private Label titleLabel; @FXML private Button themeToggle; - + @FXML private Label basicPrice; + @FXML private Label proPrice; + @FXML private Label enterprisePrice; private boolean isDark = true; // TODO: (Optional:For Practice) Create initialize function and use it to set prices during runtime. + private int basicCost = 9; + private int proCost = 29; + private int enterpriseCost = 99; // TODO: (Optional:For Practice) Make the plan price go 1 dollar up each time user clicks on the shop button. @FXML + public void initialize() { + basicPrice.setText("$" + basicCost + "/mo"); + proPrice.setText("$" + proCost + "/mo"); + enterprisePrice.setText("$" + enterpriseCost + "/mo"); + } + @FXML private void buyBasic() { // TODO: Call showAlert() with a message indicating the user entered the payment gateway + basicCost++; + basicPrice.setText("$" + basicCost + "/mo"); + showAlert("You've 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 + proCost++; + proPrice.setText("$" + proCost + "/mo"); + showAlert("You've 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 + enterpriseCost++; + enterprisePrice.setText("$" + enterpriseCost + "/mo"); + showAlert("You've 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" + var scene = themeToggle.getScene(); + scene.getStylesheets().clear(); + + if (isDark) { + String css = getClass().getResource("/workshop/light.css") != null + ? getClass().getResource("/workshop/light.css").toExternalForm() + : ""; + scene.getStylesheets().add(css); + themeToggle.setText("Switch to Dark Mode"); + } else { + String css = getClass().getResource("/workshop/style.css") != null + ? getClass().getResource("/workshop/style.css").toExternalForm() + : ""; + scene.getStylesheets().add(css); + themeToggle.setText("Switch to Light Mode"); + } + + isDark = !isDark; } private void showAlert(String message) { // TODO: Create a new Alert of type INFORMATION with the given message and display it + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Payment Gateway"); + alert.setHeaderText(null); + alert.setContentText(message); + alert.showAndWait(); } } diff --git a/src/main/java/workshop/Launcher.java b/src/main/java/workshop/Launcher.java index 0f82aeb..21c0858 100644 --- a/src/main/java/workshop/Launcher.java +++ b/src/main/java/workshop/Launcher.java @@ -5,5 +5,6 @@ import javafx.application.Application; public class Launcher { public static void main(String[] args) { // TODO: Launch the JavaFX application by calling Application.launch(Main.class) + Application.launch(Main.class, args); } } diff --git a/src/main/java/workshop/Main.java b/src/main/java/workshop/Main.java index d6cd3fd..6fea734 100644 --- a/src/main/java/workshop/Main.java +++ b/src/main/java/workshop/Main.java @@ -2,6 +2,9 @@ package workshop; import javafx.application.Application; import javafx.stage.Stage; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; public class Main extends Application { @Override @@ -9,5 +12,11 @@ public class Main extends Application { // 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() + Parent root = FXMLLoader.load(getClass().getResource("/workshop/pricing.fxml")); + Scene scene = new Scene(root, 750, 450); + scene.getStylesheets().add(getClass().getResource("/workshop/style.css").toExternalForm()); + stage.setTitle("Pricing Plans"); + stage.setScene(scene); + stage.show(); } } diff --git a/src/main/resources/workshop/pricing.fxml b/src/main/resources/workshop/pricing.fxml index a9b03f8..72a5cae 100644 --- a/src/main/resources/workshop/pricing.fxml +++ b/src/main/resources/workshop/pricing.fxml @@ -17,23 +17,23 @@