aboutsummaryrefslogtreecommitdiff
path: root/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-04-30 19:49:19 +0200
committerJonas Smedegaard <dr@jones.dk>2025-04-30 22:23:08 +0200
commite65ce87ec540a50a879998a18b4bff21763c63f7 (patch)
treec464d20012d797491bf1cc7c3fadd544072ef229 /src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java
parent68dbbaa57e9a217a1d6c55f6dd08ba00c3de81d9 (diff)
rename class Control -> Controller
Diffstat (limited to 'src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java')
-rw-r--r--src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java
new file mode 100644
index 0000000..ab62bfa
--- /dev/null
+++ b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java
@@ -0,0 +1,92 @@
+// 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();
+ }
+}