aboutsummaryrefslogtreecommitdiff
path: root/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Control.java
blob: 320b36c2dbe3d4d30a3e7b257d35846ea22c99c8 (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(GUI model, 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 void setParameters(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 void enterActivity(String s){
  53. model.addActivity(s);
  54. view.clearActivityEntry();
  55. showActivities();
  56. }
  57. /// Display student
  58. public void showStudent() {
  59. view.setStudentName(model.getStudentName());
  60. }
  61. /// Display list of activity entries
  62. public void showActivities() {
  63. String toarea = "";
  64. for (String t : model.getActivities())
  65. toarea += t + "\n";
  66. view.setArea(toarea);
  67. }
  68. /// drop last activity entry
  69. public void delOne(){
  70. model.delOneActivity();
  71. showActivities();
  72. }
  73. /// drop all activity entries
  74. public void delAll(){
  75. model.delAllActivities();
  76. showActivities();
  77. }
  78. }