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()); } }