aboutsummaryrefslogtreecommitdiff
path: root/_make
diff options
context:
space:
mode:
Diffstat (limited to '_make')
0 files changed, 0 insertions, 0 deletions
an class="hl slc">// SPDX-License-Identifier: GPL-3.0-or-later
  • package dk.biks.bachelorizer;
  • import java.util.List;
  • import javafx.scene.control.ComboBox;
  • import javafx.scene.control.Label;
  • import javafx.scene.control.TextArea;
  • /// Bachelorizer - Controller
  • class Controller {
  • /// Storage model
  • private Storage store;
  • /// UI model
  • private UI ui;
  • /// Application view
  • private Window view;
  • /// Parameters passed on command-line and in JNLP file
  • private List<String> parameters;
  • /// clear the participation choices at program launch
  • void initialize() {
  • store.initialize();
  • }
  • /// default constructor
  • ///
  • /// @param store Storage model
  • /// @param ui UI model
  • /// @param view Application view
  • Controller(
  • final Storage store, final UI ui, final Window view
  • ) {
  • this.store = store;
  • this.ui = ui;
  • this.view = view;
  • }
  • /// parse application parameters
  • ///
  • /// Parse parameters as GNU-style options and arguments,
  • /// i.e. treat dash-prefixed words as options
  • /// until an optional first bare "--",
  • /// taking first non-option argument as name of student
  • /// and remaining ones as activity selections.
  • ///
  • /// @param parameters Application parameters
  • public final void setParameters(final List<String> parameters) {
  • boolean optionsDone = false;
  • boolean studentAssigned = false;
  • /* TODO
  • for (String item: parameters) {
  • if (!optionsDone && item.matches("--")) {
  • optionsDone = true;
  • } else if (!item.startsWith("-")) {
  • if (!studentAssigned) {
  • store.addStudent(item);
  • studentAssigned = true;
  • // TODO ui.showStudent(
  • // model.getStudentName());
  • } else {
  • store.addParticipation(
  • store.getActivityIndeks(item));
  • // TODO ui.showActivities();
  • }
  • }
  • }
  • */
  • }
  • /// callback when category has been selected
  • ///
  • /// @param section section the category is tied to
  • /// @param category selected category
  • // TODO: require a UI instead
  • void onCategorySelected(
  • final GUI.Section section,
  • final String category
  • ) {
  • view.clearSelections(section);
  • view.setOptions(section, store.selectProgram(category));
  • }
  • /// callback when activity has been selected
  • ///
  • /// @param combo involved activity box
  • /// @param item selected activity
  • /// @param area whole text area
  • void onActivitySelected(
  • final ComboBox<String> combo,
  • final String item,
  • final TextArea area
  • ) {
  • // pass the value chosen in the box
  • store.addParticipation(store.getActivityIndeks(item));
  • // update text area based on category choice
  • //
  • // Users can choose from the ComboBox,
  • // and string (activity) and the area will then update.
  • updateArea(combo, area);
  • }
  • /// callback when subject module has been selected
  • ///
  • /// @param subject1 involved 1st column subject module box
  • /// @param subject2 involved 2nd column subject module box
  • void onSubjectModuleSelected(
  • final ComboBox<String> subject1,
  • final ComboBox<String> subject2
  • ) {
  • // remove chosen option from opposite subject module box
  • for (String sub: store.getAllSubjects()) {
  • if (sub.equals(subject1.getValue())) {
  • subject2.getItems().remove(
  • subject1.getValue());
  • } else if (
  • !sub.equals(subject1.getValue())
  • && !subject2.getItems().contains(sub)
  • ) {
  • subject2.getItems().add(sub);
  • }
  • }
  • }
  • /// 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());
  • }
  • }