diff --git a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/ExistingFractalsButton.java b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/ExistingFractalsButton.java new file mode 100644 index 0000000000000000000000000000000000000000..706a715788a9049eb8d6a573e60574a984fc17eb --- /dev/null +++ b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/ExistingFractalsButton.java @@ -0,0 +1,40 @@ +package edu.ntnu.idatt2003.mappevurderingprog2.views.Components; + +import edu.ntnu.idatt2003.mappevurderingprog2.controllers.GameController; +import edu.ntnu.idatt2003.mappevurderingprog2.views.View; +import javafx.scene.control.Button; +import javafx.scene.layout.VBox; + +public class ExistingFractalsButton extends Button { + private final VBox transformationButtons; + private final Button backButton; + + public ExistingFractalsButton(View view, GameController gameController, CreateNewFractal transformations) { + super("Choose Existing Fractals"); + AffineTransformationButton affineButton = new AffineTransformationButton(view, view.getMainCanvas(), gameController); + JuliaTransformationButton juliaButton = new JuliaTransformationButton(view, view.getMainCanvas(), gameController); + + backButton = new Button("Back"); + backButton.setOnAction(event -> hideTransformationButtons()); + + transformationButtons = new VBox(10, affineButton, juliaButton, backButton); + transformationButtons.setVisible(false); + + this.setOnAction(event -> toggleTransformationButtonsVisibility()); + } + + private void toggleTransformationButtonsVisibility() { + transformationButtons.setVisible(!transformationButtons.isVisible()); + this.setVisible(false); // Hide "Choose Existing Fractals" button + } + + private void hideTransformationButtons() { + transformationButtons.setVisible(false); + this.setVisible(true); // Show "Choose Existing Fractals" button + } + + public VBox getTransformationButtons() { + return transformationButtons; + } +} + diff --git a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/MainBar.java b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/MainBar.java deleted file mode 100644 index 58e542894581cc9a27e8b2473ffef625cea8aae0..0000000000000000000000000000000000000000 --- a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/MainBar.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.ntnu.idatt2003.mappevurderingprog2.views.Components; - -import edu.ntnu.idatt2003.mappevurderingprog2.controllers.GameController; -import edu.ntnu.idatt2003.mappevurderingprog2.views.View; -import javafx.scene.control.ToolBar; - -public class MainBar extends ToolBar { - private View view; - private GameController gameController; // Added GameController as a field - - public MainBar(View view, GameController gameController) { - this.view = view; - this.gameController = gameController; // Initialize GameController - - // Pass gameController to each button - AffineTransformationButton affineTransformationButton = new AffineTransformationButton(view, view.getMainCanvas(), gameController); - this.getItems().add(affineTransformationButton); - - JuliaTransformationButton juliaTransformationButton = new JuliaTransformationButton(view, view.getMainCanvas(), gameController); - this.getItems().add(juliaTransformationButton); - } -} \ No newline at end of file diff --git a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/Menu.java b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/Menu.java index d672a2e3007645b330e4ee59e65f42e5546d2d7b..a0c0bca49736ec97754435900d9b43f55bd00c01 100644 --- a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/Menu.java +++ b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/Components/Menu.java @@ -1,6 +1,8 @@ package edu.ntnu.idatt2003.mappevurderingprog2.views.Components; +import edu.ntnu.idatt2003.mappevurderingprog2.controllers.GameController; import edu.ntnu.idatt2003.mappevurderingprog2.utils.Size; +import edu.ntnu.idatt2003.mappevurderingprog2.views.View; import javafx.scene.control.Label; import javafx.geometry.Insets; import javafx.geometry.Pos; @@ -8,14 +10,17 @@ import javafx.scene.layout.VBox; public class Menu extends VBox { private final CreateNewFractal transformations = new CreateNewFractal(); + private ExistingFractalsButton existingFractalsButton; - public Menu() { + public Menu(View view, GameController gameController) { + existingFractalsButton = new ExistingFractalsButton(view, gameController, transformations); initializeMenu(); } private void initializeMenu() { clearLeftBoxUI(); - getChildren().addAll(createMenuLabel(),transformations.getTransformations()); + getChildren().addAll(createMenuLabel(), transformations.getTransformations(), existingFractalsButton, + existingFractalsButton.getTransformationButtons()); setupMenu(); } diff --git a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/View.java b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/View.java index 8de3ba03e6cd0bfe1ec174c6fa037e77abb4f8cd..05eccf977deabf6fd6175b8703b35e80c374492e 100644 --- a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/View.java +++ b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/views/View.java @@ -2,14 +2,11 @@ package edu.ntnu.idatt2003.mappevurderingprog2.views; import edu.ntnu.idatt2003.mappevurderingprog2.controllers.GameController; import edu.ntnu.idatt2003.mappevurderingprog2.models.chaos.ChaosCanvas; -import edu.ntnu.idatt2003.mappevurderingprog2.models.chaos.ChaosGame; import edu.ntnu.idatt2003.mappevurderingprog2.models.chaos.ChaosGameDescription; -import edu.ntnu.idatt2003.mappevurderingprog2.models.chaos.ChaosGameDescriptionFactory; -import edu.ntnu.idatt2003.mappevurderingprog2.models.chaos.ChaosGameFileHandler; import edu.ntnu.idatt2003.mappevurderingprog2.models.chaos.ChaosGameObserver; import edu.ntnu.idatt2003.mappevurderingprog2.utils.Colorpalette; import edu.ntnu.idatt2003.mappevurderingprog2.utils.Size; -import edu.ntnu.idatt2003.mappevurderingprog2.views.Components.MainBar; + import java.io.FileNotFoundException; import edu.ntnu.idatt2003.mappevurderingprog2.views.Components.Menu; @@ -18,6 +15,7 @@ import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; +import javafx.scene.control.Separator; import javafx.scene.layout.Background; import javafx.scene.layout.BackgroundFill; import javafx.scene.layout.BorderPane; @@ -27,7 +25,7 @@ public class View extends BorderPane implements ChaosGameObserver { private Canvas mainCanvas; private GameController gameController; - private Menu menu; + private Menu menu; public View(GameController gameController) { this.gameController = gameController; @@ -62,13 +60,11 @@ public class View extends BorderPane implements ChaosGameObserver { mainCanvas = new Canvas(600, 400); - MainBar mainBar = new MainBar( this, gameController); - - this.setTop(mainBar); this.setCenter(mainCanvas); - this.menu = new Menu(); + this.menu = new Menu(this, gameController); this.setLeft(menu); + new Separator(); return new Scene(this, Size.getScreenWidth(),Size.getScreenHeight()); }