From 9df1ad472f57adecb59768ffe7c847174c86ccc7 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Mon, 28 Apr 2025 16:31:25 +0200 Subject: split classes into separate files --- .../com/example/portfolio2/Controller.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/com.example.portfolio2/com/example/portfolio2/Controller.java (limited to 'src/com.example.portfolio2/com/example/portfolio2/Controller.java') diff --git a/src/com.example.portfolio2/com/example/portfolio2/Controller.java b/src/com.example.portfolio2/com/example/portfolio2/Controller.java new file mode 100644 index 0000000..1e6c002 --- /dev/null +++ b/src/com.example.portfolio2/com/example/portfolio2/Controller.java @@ -0,0 +1,53 @@ +package com.example.portfolio2; + +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.TextArea; + +import java.util.List; + +class Controller{ + private Model model; + private HelloApplication view; // We do this without using the view directly like this, instead passing options. + void initialize() { // calls on the database + model.initialize(); + } + Controller(Model model, HelloApplication view){ + this.model=model; this.view=view; + } + void onComboSelected(ComboBox combo, ComboBox select, TextArea area) { + select.getItems().clear(); // Clear the activity selection box + area.clear(); // Clear text area + select.getItems().addAll(model.selectProgram((String) combo.getValue())); // Fill activity box using model method + } + void onActivitySelected(ComboBox combo, ComboBox select, TextArea area) { + addActivity((String) select.getValue(), area); // Passes the value chosen in the box + updateArea(combo, area); // Updates the text area based on the category choice + // users can choose from the ComboBox, string (activity) and the area would update. + } + void onSubjectModuleSelected(ComboBox subject1, ComboBox subject2, List subjectModules) { + // Beautiful loop we've created to remove option chosen in one subject module box from the other + for (String sub : subjectModules) { + if (sub.equals(subject1.getValue())) { + subject2.getItems().remove(subject1.getValue()); + } else if (!sub.equals(subject1.getValue()) && !subject2.getItems().contains(sub)) { + subject2.getItems().add(sub); + } + } + } + void addActivity(String s, TextArea textArea) { // Calls on model method to add participation in the database + model.addParticipation(model.getActivityIndeks(s)); + } + void updateArea(ComboBox combo, TextArea textArea) { // Clears the text area and adds all activity names from activities in participation + textArea.clear(); + for(String s : model.getParticipation((String) combo.getValue())) { + textArea.appendText(s + "\n"); + } + } + void updateEcts(Label ectslabel, ComboBox comboBox) { // Updates the labels with the current ECTS of the program type + ectslabel.setText("ECTS: "+model.getSumEcts(comboBox.getValue())); + } + void fillElective(ComboBox electiveBox) { + electiveBox.getItems().addAll(model.getAllActivities()); + } +} -- cgit v1.2.3