You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Controller.java 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package controller;
  7. import controller.commands.CommandAddRow;
  8. import controller.commands.CommandDeleteRow;
  9. import controller.commands.CommandOpen;
  10. import controller.commands.CommandSave;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import model.AdressverwaltungModel;
  14. import prfourgui.View.AdressbuchView;
  15. /**
  16. *
  17. * @author jechowma68968
  18. */
  19. public class Controller implements ActionListener
  20. {
  21. private AdressbuchView view;
  22. private AdressverwaltungModel model;
  23. private Invoker invoker;
  24. public Controller(AdressbuchView view, AdressverwaltungModel model)
  25. {
  26. this.view = view;
  27. this.model = model;
  28. this.invoker = new Invoker();
  29. }
  30. /**
  31. * Hinterlegen aller Objekte in View die Interaktion ausüben
  32. */
  33. public void registerEvents(){
  34. view.getMnuOpen().addActionListener(this);
  35. view.getToolAdd().addActionListener(this);
  36. view.getToolRemove().addActionListener(this);
  37. view.getMnuSave().addActionListener(this);
  38. view.getAdressTable2().getDeleteItem().addActionListener(this);
  39. view.getToolUndo().addActionListener(this);
  40. }
  41. public void registerCommands(){
  42. invoker.addCommand(view.getMnuOpen(), new CommandOpen(view, model));
  43. invoker.addCommand(view.getToolAdd(), new CommandAddRow(view, model));
  44. invoker.addCommand(view.getToolRemove(), new CommandDeleteRow(view, model));
  45. invoker.addCommand(view.getMnuSave(), new CommandSave(view, model));
  46. invoker.addCommand(view.getAdressTable2().getDeleteItem(), new CommandDeleteRow(view, model));
  47. }
  48. @Override
  49. public void actionPerformed(ActionEvent ae)
  50. {
  51. Object key = ae.getSource();
  52. if (key == view.getToolUndo()){
  53. invoker.undo(key);
  54. }
  55. else{
  56. invoker.executeCommand(key);
  57. }
  58. }
  59. }