Skip to content

Commit

Permalink
feat: merged feat/organizationpage into workaround/ntnu-git-is-subopt…
Browse files Browse the repository at this point in the history
…imal
  • Loading branch information
MatheaGjerde committed Mar 16, 2026
2 parents 963d53f + 74cf853 commit b356fbe
Show file tree
Hide file tree
Showing 17 changed files with 404 additions and 14 deletions.
7 changes: 2 additions & 5 deletions src/main/java/edu/group5/app/App.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package edu.group5.app;

import edu.group5.app.control.MainController;
import edu.group5.app.view.MainView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
Expand All @@ -13,12 +12,10 @@
public class App extends Application {
@Override
public void start(Stage stage) {
// AppModel model = new AppModel();
MainController controller = new MainController();
MainView view = new MainView(controller);

controller.setMainView(view);
Scene scene = view.createView();
Scene scene = controller.getMainView().getScene();
controller.showLoginPage();

stage.getIcons().add(new Image(getClass().getResource("/header/images/hmh-logo.png").toExternalForm()));
stage.setTitle("Help-Me-Help");
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/edu/group5/app/control/BrowseCardController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package edu.group5.app.control;

public class BrowseCardController {
private final MainController controller;

public BrowseCardController(MainController mainController) {
this.controller = mainController;
}

public void handleCardClick() {
System.out.println("Browse Card Clicked");
controller.showOrganizationPage();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package edu.group5.app.control;

public class BrowsePageController {
private final MainController controller;

public BrowsePageController(MainController mainController) {
this.controller = mainController;
}
}
1 change: 1 addition & 0 deletions src/main/java/edu/group5/app/control/HeaderController.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public void handleHomeBtn() {

public void handleCausesBtn() {
System.out.println("Causes button pressed");
controller.showBrowsePage();
}

public void handleAboutBtn() {
Expand Down
36 changes: 31 additions & 5 deletions src/main/java/edu/group5/app/control/MainController.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,34 @@
package edu.group5.app.control;

import edu.group5.app.control.donationpage.DonationPageController;
import edu.group5.app.view.MainView;
import edu.group5.app.view.donationpage.DonationPageView;

public class MainController {
private MainView view;
private final MainView view;
private final HeaderController headerController;
private final HomePageController homePageController;
private final BrowsePageController browsePageController;
private final BrowseCardController browseCardController;
private final OrganizationPageController organizationPageController;
private final DonationPageController donationPageController;

public void setMainView(MainView view) {
this.view = view;
public MainController() {
this.view = new MainView(this);
this.headerController = new HeaderController(this);
this.homePageController = new HomePageController(this);
this.browsePageController = new BrowsePageController(this);
this.browseCardController = new BrowseCardController(this);
this.organizationPageController = new OrganizationPageController(this);
this.donationPageController = new DonationPageController(this);
}

public MainView getMainView() {
return view;
}

public void showHomePage() {
view.showHomePage();
view.showHomePage(homePageController, headerController);
}

public void showLoginPage() {
Expand All @@ -23,7 +41,15 @@ public void showPaymentCompletePage() {
view.showPaymentCompletePage();
}
public void showBrowsePage() {
view.showBrowsePage();
view.showBrowsePage(browsePageController, browseCardController, headerController);
}

public void showOrganizationPage() {
view.showOrganizationPage(organizationPageController, headerController);
}

public void showDonationPage() {
view.showDonationPage();
}

public void showAboutUsPage() {}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package edu.group5.app.control;

public class OrganizationPageController {
private final MainController controller;

public OrganizationPageController(MainController controller) {
this.controller = controller;
}

public void handleDonateClick() {
controller.showDonationPage();
}
}
25 changes: 22 additions & 3 deletions src/main/java/edu/group5/app/view/MainView.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package edu.group5.app.view;

import edu.group5.app.control.*;
import edu.group5.app.view.browsepage.BrowsePageView;
import edu.group5.app.control.*;
import edu.group5.app.control.donationpage.DonationPageController;
import edu.group5.app.control.donationpage.PaymentCompleteController;
Expand All @@ -10,6 +12,7 @@
import edu.group5.app.view.loginpage.LoginPageView;
import edu.group5.app.view.loginpage.SignInPageView;
import edu.group5.app.view.userpage.UserPageView;
import edu.group5.app.view.organizationpage.OrganizationPageView;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;

Expand All @@ -20,6 +23,7 @@ public class MainView {
private final SignInPageController signInPageController;
private final DonationPageController donationPageController;
private final PaymentCompleteController paymentCompleteController;
private final Scene scene;
private final BorderPane root;

public MainView(MainController mainController) {
Expand All @@ -30,25 +34,40 @@ public MainView(MainController mainController) {
this.donationPageController = new DonationPageController(mainController);
this.paymentCompleteController = new PaymentCompleteController(mainController);
this.root = new BorderPane();
this.scene = new Scene(root, 1280, 720);
}

public Scene getScene() {
return this.scene;
}

public Scene createView() {
root.setCenter(new LoginPageView(loginPageController));
return new Scene(root, 1280, 720);
}

public void showHomePage() {
public void showHomePage(HomePageController homePageController, HeaderController headerController) {
root.setCenter(new HomePageView(homePageController, headerController));
}

public void showLoginPage() {
root.setCenter(new LoginPageView(loginPageController));
}

public void showBrowsePage(BrowsePageController browsePageController, BrowseCardController browseCardController, HeaderController headerController) {
root.setCenter(new BrowsePageView(getScene(), browsePageController, browseCardController, headerController));
}

public void showOrganizationPage(OrganizationPageController organizationController, HeaderController headerController) {
root.setCenter(new OrganizationPageView(organizationController, headerController));
}

public void showSignInPage() {
root.setCenter(new SignInPageView(signInPageController));
}
public void showBrowsePage() {}

public void showDonationPage() {
root.setCenter(new DonationPageView(donationPageController, headerController));
}
public void showPaymentCompletePage() {
root.setCenter(new PaymentCompletePageView(paymentCompleteController));
}
Expand Down
75 changes: 75 additions & 0 deletions src/main/java/edu/group5/app/view/browsepage/BrowseCard.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package edu.group5.app.view.browsepage;

import edu.group5.app.control.BrowseCardController;
import javafx.geometry.Pos;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;

public class BrowseCard extends VBox {
private final BrowseCardController controller;

public BrowseCard(BrowseCardController browseCardController, String img, String name) {
this.controller = browseCardController;
setId("mainContainer");
getStylesheets().add(getClass().getResource("/browsepage/browse_org.css").toExternalForm());

getChildren().addAll(
imageContainer(img),
orgName(name),
checkMarkContainer()
);

setOnMouseClicked(e -> {
controller.handleCardClick();
});

setSpacing(20);
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.setFitHeight(150);

imageContainer.getChildren().add(logo);
return imageContainer;
}

private Text orgName(String text) {
Text orgName = new Text(text);
orgName.setId("orgName");
return orgName;
}

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.getChildren().add(verifiedCheck);
return checkMarkContainer;
}
}
81 changes: 81 additions & 0 deletions src/main/java/edu/group5/app/view/browsepage/BrowsePageView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package edu.group5.app.view.browsepage;

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.geometry.Pos;
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.setId("card-grid");
grid.setHgap(10);
grid.setVgap(10);
grid.setMaxWidth(Double.MAX_VALUE - 50);

int column = 0;
int row = 0;
for (int i = 0; i < 16; i++) {
BrowseCard card = new BrowseCard(orgController, "/browsepage/images/children_of_shambala.png", "Shambala Foundation");

GridPane.setFillWidth(card, true);
grid.setAlignment(Pos.CENTER);
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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ private ScrollPane createBody() {
VBox vBox = new VBox();
vBox.getChildren().addAll(
createIntroductionSection(),
createCharityImageSection(),
createCharityImageSection()
);
body.setContent(vBox);
Expand Down
Loading

0 comments on commit b356fbe

Please sign in to comment.