aboutsummaryrefslogtreecommitdiff
path: root/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Control.java
blob: 93c0324d97b0726e1e7367b6b4b6fcbb412c7b74 (plain)
  1. // SPDX-FileCopyrightText: 2025 Jonas Smedegaard <dr@jones.dk>
  2. // SPDX-License-Identifier: GPL-3.0-or-later
  3. package dk.biks.bachelorizer;
  4. import java.util.List;
  5. /// Bachelorizer - Controller
  6. public class Control {
  7. /// Application model
  8. // (declared explicitly only to silence javadoc)
  9. private GUI model;
  10. /// Application view
  11. private Window view;
  12. /// Parameters passed on command-line and in JNLP file
  13. private List<String> parameters;
  14. /// Default constructor
  15. ///
  16. /// @param model Application model
  17. /// @param view Application view
  18. public Control(final GUI model, final Window view) {
  19. this.model = model;
  20. this.view = view;
  21. }
  22. /// parse application parameters
  23. ///
  24. /// parse parameters as GNU-style options and arguments,
  25. /// i.e. treat dash-prefixed words as options
  26. /// until an optional first bare "--",
  27. /// taking first non-option argument as name of student
  28. /// and remaining ones as activity selections
  29. ///
  30. /// @param parameters Application parameters
  31. public final void setParameters(final List<String> parameters) {
  32. boolean optionsDone = false;
  33. boolean studentAssigned = false;
  34. for (String item: parameters) {
  35. if (!optionsDone && item.matches("--")) {
  36. optionsDone = true;
  37. } else if (!item.startsWith("-")) {
  38. if (!studentAssigned) {
  39. model.addStudent(item);
  40. studentAssigned = true;
  41. showStudent();
  42. } else {
  43. model.addActivity(item);
  44. showActivities();
  45. }
  46. }
  47. }
  48. }
  49. /// Enter activity
  50. ///
  51. /// @param s String entered
  52. public final void enterActivity(final String s) {
  53. model.addActivity(s);
  54. view.clearActivityEntry();
  55. showActivities();
  56. }
  57. /// Display student
  58. public final void showStudent() {
  59. view.setStudentName(model.getStudentName());
  60. }
  61. /// Display list of activity entries
  62. public final void showActivities() {
  63. String toarea = "";
  64. for (String t: model.getActivities()) {
  65. toarea += t + "\n";
  66. }
  67. view.setArea(toarea);
  68. }
  69. /// drop last activity entry
  70. public final void delOne() {
  71. model.delOneActivity();
  72. showActivities();
  73. }
  74. /// drop all activity entries
  75. public final void delAll() {
  76. model.delAllActivities();
  77. showActivities();
  78. }
  79. }