Skip to content

Commit

Permalink
feat: made a MainController and a HeaderController which make it poss…
Browse files Browse the repository at this point in the history
…ible to change pages with header buttons
  • Loading branch information
emilfa committed Mar 10, 2026
1 parent bb91d6e commit a5aa3e0
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 34 deletions.
24 changes: 8 additions & 16 deletions src/main/java/edu/group5/app/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import java.util.HashMap;

import edu.group5.app.control.MainController;
import edu.group5.app.control.OrgAPIWrapper;
import edu.group5.app.view.homepage.HomePageView;
import edu.group5.app.view.MainView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import tools.jackson.core.type.TypeReference;
import tools.jackson.databind.ObjectMapper;
Expand All @@ -15,28 +15,20 @@
* Hello world!
*/
public class App extends Application {
private StackPane root;

@Override
public void start(Stage stage) {
// AppModel model = new AppModel();
MainController controller = new MainController();
MainView view = new MainView(controller);

root = new StackPane();

showHomePage();
controller.setMainView(view);
Scene scene = view.createView();

Scene scene = new Scene(root, 1280, 720);
stage.setTitle("Help-Me-Help");
stage.setScene(scene);
stage.show();
}

public void showHomePage() {
root.getChildren().setAll(new HomePageView(this));
}

public void showBrowseOrganizationsPage() {
root.getChildren().removeAll();
}

static void main(String[] args) throws InterruptedException {
OrgAPIWrapper orgWrap = new OrgAPIWrapper("https://app.innsamlingskontrollen.no/api/public/v1/all");
System.out.println();
Expand Down
20 changes: 19 additions & 1 deletion src/main/java/edu/group5/app/control/HeaderController.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
package edu.group5.app.control;

public class HomePageController {
public class HeaderController {
private final MainController controller;

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

public void handleHomeBtn() {
System.out.println("Home button pressed");
controller.showHomePage();
}

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

public void handleAboutBtn() {
System.out.println("About button pressed");
}
}
19 changes: 19 additions & 0 deletions src/main/java/edu/group5/app/control/MainController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package edu.group5.app.control;

import edu.group5.app.view.MainView;

public class MainController {
private MainView view;

public void setMainView(MainView view) {
this.view = view;
}

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

public void showLoginPage() {
view.showLoginPage();
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package edu.group5.app.view.homepage;
package edu.group5.app.view;

import edu.group5.app.App;
import edu.group5.app.control.HeaderController;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;

public class HeaderView extends BorderPane {
private final App app;
public class Header extends BorderPane {
private final HeaderController controller;

public HeaderView(App app) {
this.app = app;
public Header(HeaderController controller) {
this.controller = controller;
getStylesheets().add(getClass().getResource("/homepage/header.css").toExternalForm());
setId("header");

Expand Down Expand Up @@ -44,15 +44,15 @@ private HBox getNavBar() {
navbar.setSpacing(10);

Button home = new Button("Home");
home.setOnAction(e -> System.out.println("Home"));
home.setOnAction(e -> controller.handleHomeBtn());
home.setStyle("-fx-cursor: hand;");

Button causes = new Button("Causes");
causes.setOnAction(e -> System.out.println("Causes"));
causes.setOnAction(e -> controller.handleCausesBtn());
causes.setStyle("-fx-cursor: hand;");

Button about = new Button("About us");
about.setOnAction(e -> System.out.println("About us"));
about.setOnAction(e -> controller.handleAboutBtn());
about.setStyle("-fx-cursor: hand;");

navbar.getChildren().addAll(home, causes, about);
Expand Down
32 changes: 32 additions & 0 deletions src/main/java/edu/group5/app/view/MainView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package edu.group5.app.view;

import edu.group5.app.control.HeaderController;
import edu.group5.app.control.MainController;
import edu.group5.app.view.homepage.HomePageView;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;

public class MainView {
private final MainController mainController;
private final HeaderController headerController;
private final BorderPane root;

public MainView(MainController mainController) {
this.mainController = mainController;
this.headerController = new HeaderController(mainController);
this.root = new BorderPane();
}

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

public void showHomePage() {
root.setCenter(new HomePageView(headerController));
}

public void showLoginPage() {

}
}
5 changes: 0 additions & 5 deletions src/main/java/edu/group5/app/view/View.java

This file was deleted.

7 changes: 4 additions & 3 deletions src/main/java/edu/group5/app/view/homepage/HomePageView.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package edu.group5.app.view.homepage;

import edu.group5.app.App;
import edu.group5.app.control.HeaderController;
import edu.group5.app.view.Header;
import javafx.scene.layout.BorderPane;

public class HomePageView extends BorderPane {
public HomePageView(App app) {
HeaderView headerView = new HeaderView(app);
public HomePageView(HeaderController headerController) {
Header headerView = new Header(headerController);
setTop(headerView);
}
}

0 comments on commit a5aa3e0

Please sign in to comment.