diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java index da74075..9a0c22e 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowseCard.java @@ -1,6 +1,6 @@ package edu.group5.app.view.browsepage; -import edu.group5.app.control.BrowseOrgController; +import edu.group5.app.control.BrowseCardController; import javafx.geometry.Pos; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -8,11 +8,11 @@ import javafx.scene.layout.VBox; import javafx.scene.text.Text; -public class BrowseOrg extends VBox { - private final BrowseOrgController controller; +public class BrowseCard extends VBox { + private final BrowseCardController controller; - public BrowseOrg(BrowseOrgController browseOrgController, String img, String name) { - this.controller = browseOrgController; + public BrowseCard(BrowseCardController browseCardController, String img, String name) { + this.controller = browseCardController; setId("mainContainer"); getStylesheets().add(getClass().getResource("/browsepage/browse_org.css").toExternalForm()); @@ -22,20 +22,26 @@ public BrowseOrg(BrowseOrgController browseOrgController, String img, String nam checkMarkContainer() ); - setPrefWidth(100); + setFillWidth(true); setAlignment(Pos.CENTER); } private StackPane imageContainer(String img) { StackPane imageContainer = new StackPane(); imageContainer.setId("imageContainer"); + imageContainer.setPrefHeight(120); + imageContainer.setPrefWidth(120); + imageContainer.setMaxWidth(Double.MAX_VALUE); + ImageView logo = new ImageView( new Image(getClass().getResource(img).toExternalForm()) ); + logo.setId("logo"); logo.setSmooth(true); logo.setPreserveRatio(true); - logo.setFitWidth(100); + logo.setFitHeight(150); + imageContainer.getChildren().add(logo); return imageContainer; } @@ -49,14 +55,15 @@ private Text orgName(String text) { private StackPane checkMarkContainer() { StackPane checkMarkContainer = new StackPane(); checkMarkContainer.setId("checkMarkContainer"); + checkMarkContainer.setAlignment(Pos.CENTER_LEFT); + ImageView verifiedCheck = new ImageView( new Image(getClass().getResource("/verified_check.png").toExternalForm()) ); + verifiedCheck.setPreserveRatio(true); verifiedCheck.setSmooth(true); - - checkMarkContainer.setAlignment(Pos.CENTER_LEFT); checkMarkContainer.getChildren().add(verifiedCheck); return checkMarkContainer; } diff --git a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java index 5192429..b2dc29d 100644 --- a/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java +++ b/src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java @@ -1,4 +1,79 @@ package edu.group5.app.view.browsepage; -public class BrowsePageView { +import edu.group5.app.control.BrowseCardController; +import edu.group5.app.control.BrowsePageController; +import edu.group5.app.control.HeaderController; +import edu.group5.app.view.Header; +import javafx.scene.Scene; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.TextField; +import javafx.scene.layout.*; + +public class BrowsePageView extends BorderPane { + private final Scene scene; + private final BrowsePageController controller; + private final BrowseCardController orgController; + + public BrowsePageView(Scene mainScene, BrowsePageController browsePageController, BrowseCardController browseCardController, HeaderController headerController) { + this.scene = mainScene; + this.controller = browsePageController; + this.orgController = browseCardController; + getStylesheets().add(getClass().getResource("/browsepage/browsepage.css").toExternalForm()); + Header headerView = new Header(headerController); + setTop(headerView); + setCenter(createBody()); + } + + private ScrollPane createBody() { + ScrollPane body = new ScrollPane(); + body.setId("body"); + body.setFitToWidth(true); + VBox vBox = new VBox(); + vBox.setSpacing(10); + vBox.getChildren().addAll( + createSearchSection(), + createOrganizationSection() + ); + body.setContent(vBox); + return body; + } + + private HBox createSearchSection() { + HBox searchSection = new HBox(); + TextField searchField = new TextField(); + searchField.setPromptText("Search.."); + searchSection.getChildren().add(searchField); + return searchSection; + } + + private GridPane createOrganizationSection() { + GridPane grid = new GridPane(); + grid.setHgap(10); + grid.setVgap(10); + + int column = 0; + int row = 0; + for (int i = 0; i < 8; i++) { + BrowseCard card = new BrowseCard(orgController, "/browsepage/images/children_of_shambala.png", "Shambala Foundation"); + + card.setMaxWidth(Double.MAX_VALUE); + GridPane.setHgrow(card, Priority.ALWAYS); + GridPane.setFillWidth(card, true); + grid.add(card, column, row); + + column++; + + if (column == 4) { + column = 0; + row++; + } + } + + for (int i = 0; i < 4; i++) { + ColumnConstraints col = new ColumnConstraints(); + col.setPercentWidth(25); + grid.getColumnConstraints().add(col); + } + return grid; + } }