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.

CommandNewKontaktOk.java 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 kontakte.controller;
  7. import java.util.Map;
  8. import java.util.Stack;
  9. import kontakte.model.Kontakt;
  10. import kontakte.model.Model;
  11. import kontakte.view.View;
  12. /**
  13. *
  14. * @author nobody
  15. */
  16. public class CommandNewKontaktOk implements CommandInterface
  17. {
  18. private View view;
  19. private Model model;
  20. private Stack<Kontakt> undoStack;
  21. public CommandNewKontaktOk(View view, Model model)
  22. {
  23. this.view = view;
  24. this.model = model;
  25. view.getAddEntryFrame().pack();
  26. undoStack = new Stack<Kontakt>();
  27. }
  28. @Override
  29. public void execute()
  30. {
  31. String name = view.getTextName().getText();
  32. String wohnort = view.getTextCity().getText();
  33. String strasse = view.getTextStreet().getText();
  34. view.getTextName().setText("");
  35. view.getTextCity().setText("");
  36. view.getTextStreet().setText("");
  37. Kontakt neuKon = new Kontakt(name, wohnort, strasse);
  38. model.addKontakt(neuKon);
  39. undoStack.add(neuKon);
  40. redrawTextbox();
  41. view.getAddEntryFrame().dispose();
  42. }
  43. @Override
  44. public void undo()
  45. {
  46. if(!undoStack.empty())
  47. {
  48. model.deleteKontakt(undoStack.pop());
  49. redrawTextbox();
  50. }
  51. }
  52. private void redrawTextbox()
  53. {
  54. view.getTxtKontakte().setText("");
  55. for (Map.Entry<String, Kontakt> k: model.kontaktliste.entrySet())
  56. {
  57. view.getTxtKontakte().append(k.getValue().name + " ");
  58. view.getTxtKontakte().append(k.getValue().wohnort + " ");
  59. view.getTxtKontakte().append(k.getValue().strasse + "\n");
  60. }
  61. }
  62. }