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.

DatenLoeschen.java 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 gui_adressverwaltung.Controller;
  7. import gui_adressverwaltung.Controller.Interface.CommandInterface;
  8. import gui_adressverwaltung.model.AdressverwaltungModel;
  9. import gui_adressverwaltung.view.Hauptfenster;
  10. import java.util.ArrayList;
  11. import java.util.Stack;
  12. /**
  13. *
  14. * @author nobody
  15. */
  16. public class DatenLoeschen implements CommandInterface
  17. {
  18. private AdressverwaltungModel model;
  19. private Hauptfenster view;
  20. private Stack<ArrayList<String>> datenStack;
  21. public DatenLoeschen(AdressverwaltungModel model, Hauptfenster view)
  22. {
  23. this.model = model;
  24. this.view = view;
  25. this.datenStack = new Stack<>();
  26. }
  27. /**
  28. * Fühhrt den Befehl aus
  29. */
  30. @Override
  31. public void execute()
  32. {
  33. try
  34. {
  35. int reihe = view.getTblAdressen().getSelectedRow();
  36. ArrayList<String> inhalt = new ArrayList<>();
  37. for(int i=0; i<model.getColumnCount();i++)
  38. {
  39. inhalt.add(model.getValueAt(reihe, i).toString());
  40. }
  41. datenStack.push(inhalt);
  42. model.eintragLoeschen(reihe);
  43. view.getLblStatus().setText("Zeile gelöscht");
  44. }
  45. catch(Exception ex)
  46. {
  47. view.getLblStatus().setText("Keine Zeile zum Löschen ausgewählt");
  48. }
  49. }
  50. @Override
  51. public void undo()
  52. {
  53. view.getLblStatus().setText("Fälschlicherweise gelöschte Zeile wieder eingefügt");
  54. model.eintragHinzufuegen();
  55. int endreihe = model.getRowCount();
  56. for(int i=0; i<model.getColumnCount();i++)
  57. {
  58. model.setValueAt(datenStack.lastElement().get(i), endreihe, i);
  59. }
  60. datenStack.removeElementAt(datenStack.size());
  61. }
  62. @Override
  63. public boolean isUndoable()
  64. {
  65. return true;
  66. }
  67. }