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