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