blob: 036236f0d62445433e84a73e2ad538c0731f4914 (
plain)
- // SPDX-FileCopyrightText: <Alexander Marthin Klemensen stud-marthin@ruc.dk>
- // SPDX-FileCopyrightText: <Ian Valentin Christensen stud-ianc@ruc.dk>
- // SPDX-FileCopyrightText: <Zahed Noos zahed@ruc.dk>
- // SPDX-License-Identifier: GPL-3.0-or-later
- package com.example.portfolio2;
- import javafx.scene.control.ComboBox;
- import javafx.scene.control.Label;
- import javafx.scene.control.TextArea;
- import java.util.List;
- /// Bachelorizer - Controller
- class Controller {
- /// Storage model
- private Database store;
- /// Application view
- private Window view;
- /// clear the participation database at program launch
- void initialize() {
- store.initialize();
- }
- /// default constructor
- ///
- /// @param store Storage model
- /// @param view Application view
- Controller(final Database store, final Window view) {
- this.store = store;
- this.view = view;
- }
- /// callback when category box is selected
- ///
- /// @param combo involved activity box
- /// @param select selected item
- /// @param area whole text area
- void onComboSelected(final ComboBox<String> combo, final ComboBox<String> select, final TextArea area) {
- // clear the activity selection box
- select.getItems().clear();
- // clear text area
- area.clear();
- // fill activity box from data in store
- select.getItems().addAll(store.selectProgram(combo.getValue()));
- }
- /// callback when activity box is selected
- ///
- /// @param combo involved activity box
- /// @param select selected item
- /// @param area whole text area
- void onActivitySelected(final ComboBox<String> combo, final ComboBox<String> select, final TextArea area) {
- // pass the value chosen in the box
- addActivity(select.getValue(), area);
- // update text area based on category choice
- //
- // users can choose from the ComboBox, string (activity) and the area would update.
- updateArea(combo, area);
- }
- /// callback when subject module box is selected
- ///
- /// @param subject1 involved 1st column subject module box
- /// @param subject2 involved 2nd column subject module box
- /// @param subjectModules list of selected subject modules
- void onSubjectModuleSelected(final ComboBox<String> subject1, final ComboBox<String> subject2, final List<String> 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);
- }
- }
- }
- /// add participation to database
- /// @param s activity identifier
- /// @param textArea whole text area
- void addActivity(final String s, final TextArea textArea) {
- store.addParticipation(store.getActivityIndeks(s));
- }
- /// update text area for an activity box
- ///
- /// Clears the text area
- /// and adds all activity names from activities in participation.
- ///
- /// @param combo involved activity box
- /// @param textArea whole text area
- void updateArea(final ComboBox<String> combo, final TextArea textArea) {
- textArea.clear();
- for (String s: store.getParticipation(combo.getValue())) {
- textArea.appendText(s + "\n");
- }
- }
- /// update label with current ECTS of program type
- /// @param ectslabel text display area for ECTS points
- /// @param comboBox involved activity box
- void updateEcts(final Label ectslabel, final ComboBox<String> comboBox) {
- ectslabel.setText("ECTS: " + store.getSumEcts(comboBox.getValue()));
- }
- void fillElective(final ComboBox<String> electiveBox) {
- electiveBox.getItems().addAll(store.getAllActivities());
- }
- }
|