From c55571bf45d5f8970712f26dfe24e99f1a0f9f4c Mon Sep 17 00:00:00 2001
From: Floris Claessens <FMD.Claessens@student.han.nl>
Date: Thu, 1 Jun 2023 15:53:01 +0200
Subject: [PATCH 1/2] Fixed some issues concerning loading new views, added a
 scrollpane to the lots

---
 .../ui/builder/AuctionBuilder.java            |  10 ++++-
 .../ui/builder/AuctionDetailsBuilder.java     |  37 +++++++++++++-----
 .../ui/builder/AuctionsBuilder.java           |   2 +-
 .../ui/builder/LoginBuilder.java              |   8 +++-
 .../infrastructure/ui/builder/LotBuilder.java |  13 ++++--
 .../ui/builder/RegisterBuilder.java           |   3 +-
 .../controllers/AuctionDetailsController.java |   1 +
 src/main/resources/database.sqlite            | Bin 225280 -> 225280 bytes
 8 files changed, 55 insertions(+), 19 deletions(-)

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionBuilder.java
index c1c53fc4..f826582d 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionBuilder.java
@@ -1,10 +1,14 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.builder;
 
 import javafx.geometry.Insets;
+import javafx.scene.Node;
+import javafx.scene.Scene;
 import javafx.scene.control.Button;
 import javafx.scene.layout.*;
+import javafx.stage.Stage;
 import javafx.util.Builder;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.AuctionDetailsController;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.HomeController;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.AuctionModel;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.buttons.ButtonWidgets;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.text.Labels;
@@ -17,7 +21,6 @@ public class AuctionBuilder implements Builder<Region> {
 
     private Button seeAuctionButton;
 
-
     public AuctionBuilder(AuctionModel auction) {
         this.auction = auction;
 
@@ -32,8 +35,11 @@ public class AuctionBuilder implements Builder<Region> {
         auctionCard.setPrefWidth(180);
         auctionCard.getChildren().add(Labels.prompt(auction.nameProperty()));
         seeAuctionButton = ButtonWidgets.actionButton("Bekijk Veiling", actionEvent -> {
+            Node actionSource = (Node) actionEvent.getSource();
+            Scene sourceScene =  actionSource.getScene();
+            BorderPane mainBorderPane = (BorderPane) sourceScene.getRoot();
             if (auctionCard.getParent().getParent().getParent() == null) {
-                ((BorderPane) auctionCard.getParent().getParent()).setCenter(new AuctionDetailsController(auction.idProperty().toString()).getView());
+                mainBorderPane.setCenter(new AuctionDetailsController(auction.idProperty().toString()).getView());
             } else {
                 ((BorderPane) auctionCard.getParent().getParent().getParent().getParent().getParent().getParent()).setCenter(new AuctionDetailsController(auction.idProperty().get()).getView());
             }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java
index 07c453f0..dd1de587 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionDetailsBuilder.java
@@ -1,21 +1,21 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.builder;
 
-import com.google.inject.Guice;
 import com.google.inject.Injector;
 import javafx.beans.InvalidationListener;
 import javafx.geometry.Insets;
+import javafx.scene.Node;
+import javafx.scene.Scene;
 import javafx.scene.control.Button;
 import javafx.scene.control.Label;
-import javafx.scene.layout.BorderPane;
-import javafx.scene.layout.FlowPane;
-import javafx.scene.layout.Region;
+import javafx.scene.control.ScrollPane;
+import javafx.scene.layout.*;
+import javafx.stage.Stage;
 import javafx.util.Builder;
 import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
 import nl.han.aim.asd.veilveilig.core.application.usecases.IAuctionService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.ILotService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.LotService;
-import nl.han.aim.asd.veilveilig.core.dependencyinjection.MyModule;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.InjectorFactory;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.LotController;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.LotCreationController;
@@ -23,6 +23,8 @@ import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.AuctionDetails
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.LotModel;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.buttons.ButtonWidgets;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.text.Labels;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.HBox;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,6 +36,8 @@ public class AuctionDetailsBuilder implements Builder<Region> {
     private final AuctionDetailsModel auctionDetailsModel;
     static ILotService lotService = new LotService();
     private IAuctionService auctionService;
+    private Stage stage;
+
     public AuctionDetailsBuilder(AuctionDetailsModel auctionDetailsModel)
     {
         this.auctionDetailsModel = auctionDetailsModel;
@@ -43,7 +47,9 @@ public class AuctionDetailsBuilder implements Builder<Region> {
         Injector injector = InjectorFactory.injector;
         lotService = injector.getInstance(ILotService.class);
         auctionService = InjectorFactory.injector.getInstance(IAuctionService.class);
+
         FlowPane auctionDetailBox = new FlowPane();
+        ScrollPane scrollPane = new ScrollPane();
         auctionDetailBox.setPadding(new Insets(25, 25, 10, 25));
         auctionDetailBox.setMinSize(100, 100);
         auctionDetailBox.setHgap(10);
@@ -54,19 +60,31 @@ public class AuctionDetailsBuilder implements Builder<Region> {
         auctionDetailBox.getChildren().add(auctionDetailLabel);
 
         Button makeLot = ButtonWidgets.actionButton("Maak Kavel Aan", actionEvent ->
-                ((BorderPane) auctionDetailBox.getParent()).setCenter(new LotCreationController(auctionDetailsModel.getAuctionID()).getView()));
+        {
+                Node sourceNode = (Node) actionEvent.getSource();
+                Scene scene = sourceNode.getScene();
+                BorderPane mainBorderPane = (BorderPane) scene.getRoot();
+                mainBorderPane.setCenter(new LotCreationController(auctionDetailsModel.getAuctionID()).getView());
+        });
         Button startAuction = ButtonWidgets.actionButton("Start Veiling", actionEvent ->
               startAuction());
 
+        HBox buttonBar = new HBox();
+        buttonBar.setSpacing(20);
+        buttonBar.getChildren().add(makeLot);
+        buttonBar.getChildren().add(startAuction);
+
         auctionDetailsModel.getLotList().addListener((InvalidationListener) observable -> {
             auctionDetailBox.getChildren().clear();
-            auctionDetailBox.getChildren().add(makeLot);
-            auctionDetailBox.getChildren().add(startAuction);
+            auctionDetailBox.getChildren().add(buttonBar);
             auctionDetailBox.getChildren().addAll(loadLots().stream().map(lotModel ->
                     new LotController(lotModel).getView()).toList());
         });
 
-        return auctionDetailBox;
+        scrollPane.setFitToWidth(true);
+        scrollPane.setContent(auctionDetailBox);
+
+        return scrollPane;
     }
     private List<LotModel> loadLots(){
         List<LotDTO> lots = lotService.getLotsForAuction(auctionDetailsModel.getAuctionID());
@@ -87,4 +105,5 @@ public class AuctionDetailsBuilder implements Builder<Region> {
         List<LotDTO> lotDTOS = lotService.getLotsForAuction(auctionDetailsModel.getAuctionID());
         auctionService.sendAuctionToNetwork(auctionDTO,lotDTOS);
     }
+
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionsBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionsBuilder.java
index 358b0b82..6424cee4 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionsBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/AuctionsBuilder.java
@@ -27,7 +27,7 @@ public class AuctionsBuilder implements Builder<Region> {
 
     @Override
     public Region build() {
-        return createScrollPane();
+        return  createScrollPane();
     }
 
 
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LoginBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LoginBuilder.java
index 3fded256..f2e7b6f7 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LoginBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LoginBuilder.java
@@ -40,7 +40,8 @@ public class LoginBuilder implements Builder<Region> {
     @Override
     public Region build(Stage primaryStage) {
         this.mainStage = primaryStage;
-        primaryStage.setTitle("Login Screen");
+        primaryStage.setTitle("Veilig Veilen!");
+        mainStage.setMaximized(true);
         return createLoginPane();
     }
 
@@ -49,7 +50,10 @@ public class LoginBuilder implements Builder<Region> {
         mainBorderPane.setPadding(new Insets(40, 10, 40, 10));
         mainBorderPane.setMinSize(350, 250);
 
-        mainBorderPane.setCenter(createLoginVBox());
+        VBox loginBox = createLoginVBox();
+        loginBox.setAlignment(Pos.CENTER);
+        loginBox.setPadding(new Insets(500));
+        mainBorderPane.setCenter(loginBox);
 
         return mainBorderPane;
     }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotBuilder.java
index 00738f62..ef79f62f 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotBuilder.java
@@ -1,6 +1,8 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.builder;
 
 import javafx.geometry.Insets;
+import javafx.scene.Node;
+import javafx.scene.Scene;
 import javafx.scene.control.Button;
 import javafx.scene.layout.BorderPane;
 import javafx.scene.layout.Region;
@@ -10,6 +12,7 @@ import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
 import nl.han.aim.asd.veilveilig.core.application.usecases.ILotService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.ISubscribeService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.InjectorFactory;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.LotCreationController;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.LotDetailsController;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.LotModel;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.widgetsfx.buttons.ButtonWidgets;
@@ -44,7 +47,12 @@ public class LotBuilder implements Builder<Region> {
         lotCard.getChildren().add(Labels.styled("Prijs: €" + lotModel.getReservePrice(), "label-default"));
         lotCard.getChildren().add(Labels.styled(lotModel.getLotDescription(), "label-default"));
         lotCard.getChildren().add(Labels.styled("Hoeveelheid: " + lotModel.getQuantity(), "label-default"));
-        checkLot = ButtonWidgets.actionButton("Bekijk Kavel", ActionEvent -> ((BorderPane) lotCard.getParent().getParent()).setCenter(new LotDetailsController(lotModel).getView()));
+        checkLot = ButtonWidgets.actionButton("Bekijk Kavel", actionEvent -> {
+            Node sourceNode = (Node) actionEvent.getSource();
+            Scene scene = sourceNode.getScene();
+            BorderPane mainBorderPane = (BorderPane) scene.getRoot();
+            mainBorderPane.setCenter(new LotDetailsController(lotModel).getView());
+        });
         subButton = ButtonWidgets.actionButton("Abonneer", actionEvent -> subButtonAction());
         lotCard.getChildren().add(subButton);
         subButton.getStyleClass().add("button");
@@ -66,10 +74,9 @@ public class LotBuilder implements Builder<Region> {
                 subscribeService.subscribeToLot(lot);
 
                 subButton.setText("Afmelden");
-                //auction.setSubscribed(false);
             } else {
                 subButton.setText("Abonneer");
-                //TODO UNSUBSCRIBE FUNCTIE
+
             }
     }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/RegisterBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/RegisterBuilder.java
index 8840e93d..de62b253 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/RegisterBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/RegisterBuilder.java
@@ -54,8 +54,6 @@ public class RegisterBuilder implements Builder<Region> {
     @Override
     public Region build(Stage stage) {
         this.stage = stage;
-        stage.setTitle("Registreren");
-        stage.setMaximized(true);
 
         return createRegisterPane();
     }
@@ -65,6 +63,7 @@ public class RegisterBuilder implements Builder<Region> {
         this.registerBorderPane = new BorderPane();
         registerBorderPane.setPadding(new Insets(40, 10, 40, 10));
         registerBorderPane.setMinSize(350, 250);
+        registerBorderPane.setPadding(new Insets(500));
 
         registerBorderPane.setCenter(createRegisterVBox());
 
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java
index 9fa59091..43eb968f 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/controllers/AuctionDetailsController.java
@@ -2,6 +2,7 @@ package nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers;
 
 import javafx.concurrent.Task;
 import javafx.scene.layout.Region;
+import javafx.stage.Stage;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.builder.AuctionDetailsBuilder;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.models.AuctionDetailsModel;
 
diff --git a/src/main/resources/database.sqlite b/src/main/resources/database.sqlite
index f62100a99665f48a37431cd5e0852662af8410d2..bebb4c6f2fb35da09cd64aa7293887273c1abec3 100644
GIT binary patch
delta 421
zcmZp8z}xVEcY-wIpNTTgjDI#JEQuH6<o&|Hzm7kZ--Mr=?+M>7zDhm|-Y=U44Q}z)
zJ8`mwN=mY_8k(3SCncwt>l#?58S0uCnWXAk8YY?P8kicJS{RxoTO^sLq@|WurlsfQ
z7v(1AFm}|*KWAX<c;#BmV9&u8DhxCu&C=Y|EYUDo*C5RjXof|aiLRxog@tZnim9cg
zWwN<Nih)65Vj|3dil5yK?u;Fabg~)j*&!xan3@?STNoMXCM6oB>Y5k>H76OQnd%yv
z7#OCcrJ0)nNi-8625jDy=fx<-$@hwZ?-kIa#r!t>m-!d-ck|cr3j;lRfv;YJIh2tY
jPjZ4365|sNkV0Y{%+AX!&)A$<-=0~|xIMF;Y5E5MgCllL

delta 119
zcmZp8z}xVEcY-vd;zSu|M#YT@OX3CC_;xYyuj5bUH{s{zd&0MCv!KCLK0(GvNl8{#
z!|cSo?9?K^{G!~=yYjpk1=#pg8GuTQ`7iS?=I`dO11h%T7v5;d#=yX^+BrWjIkl*y
Vm=(xrPOWcGt!LbxTF*550{}h!Bm@8e

-- 
GitLab


From ba3228cb64f80f247914fcc2e773cc0f14d7f5a5 Mon Sep 17 00:00:00 2001
From: Floris Claessens <FMD.Claessens@student.han.nl>
Date: Thu, 1 Jun 2023 15:53:26 +0200
Subject: [PATCH 2/2] Fixed some issues concerning loading new views, added a
 scrollpane to the lots

---
 .../modules/infrastructure/ui/builder/LotCreationBuilder.java   | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java
index 8312a876..28c68d2f 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/ui/builder/LotCreationBuilder.java
@@ -10,9 +10,7 @@ import javafx.scene.layout.GridPane;
 import javafx.scene.layout.Region;
 import javafx.util.Builder;
 import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
-import nl.han.aim.asd.veilveilig.core.application.usecases.IAuctionService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.ILotService;
-import nl.han.aim.asd.veilveilig.core.application.usecases.ISubscribeService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.InjectorFactory;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.DTO.UILotDTO;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.ui.controllers.AuctionDetailsController;
-- 
GitLab