blob: ab62bfa7bdd366526d727357d13870e1d5c06a2e (
plain)
- // SPDX-FileCopyrightText: 2025 Jonas Smedegaard <dr@jones.dk>
- // SPDX-License-Identifier: GPL-3.0-or-later
- package dk.biks.bachelorizer;
- import java.util.List;
- /// Bachelorizer - Controller
- public class Controller {
- /// Application model
- // (declared explicitly only to silence javadoc)
- private GUI model;
- /// Application view
- private Window view;
- /// Parameters passed on command-line and in JNLP file
- private List<String> parameters;
- /// Default constructor
- ///
- /// @param model Application model
- /// @param view Application view
- public Controller(final GUI model, final Window view) {
- this.model = model;
- 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;
- for (String item: parameters) {
- if (!optionsDone && item.matches("--")) {
- optionsDone = true;
- } else if (!item.startsWith("-")) {
- if (!studentAssigned) {
- model.addStudent(item);
- studentAssigned = true;
- showStudent();
- } else {
- model.addActivity(item);
- showActivities();
- }
- }
- }
- }
- /// Enter activity
- ///
- /// @param s String entered
- public final void enterActivity(final String s) {
- model.addActivity(s);
- view.clearActivityEntry();
- showActivities();
- }
- /// Display student
- public final void showStudent() {
- view.setStudentName(model.getStudentName());
- }
- /// Display list of activity entries
- public final void showActivities() {
- String toarea = "";
- for (String t: model.getActivities()) {
- toarea += t + "\n";
- }
- view.setArea(toarea);
- }
- /// drop last activity entry
- public final void delOne() {
- model.delOneActivity();
- showActivities();
- }
- /// drop all activity entries
- public final void delAll() {
- model.delAllActivities();
- showActivities();
- }
- }
|