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.

AdressVerwaltungModel.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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 model;
  7. import java.io.BufferedInputStream;
  8. import java.io.BufferedOutputStream;
  9. import java.io.File;
  10. import java.io.FileInputStream;
  11. import java.io.FileNotFoundException;
  12. import java.io.FileOutputStream;
  13. import java.io.IOException;
  14. import java.io.ObjectInputStream;
  15. import java.io.ObjectOutputStream;
  16. import java.util.ArrayList;
  17. import java.util.prefs.Preferences;
  18. import javax.swing.table.AbstractTableModel;
  19. /**
  20. *
  21. * @author PC
  22. */
  23. /**
  24. *
  25. * @author le
  26. */
  27. public class AdressVerwaltungModel extends AbstractTableModel
  28. {
  29. private ArrayList<ArrayList<String>> daten;
  30. private ArrayList<String> adressEintraegeDaten;
  31. private ArrayList<String> adressEintraegeNamen;
  32. private Preferences prefs;
  33. /**
  34. *Konstruktor für AdressverwaltungModel
  35. */
  36. public AdressVerwaltungModel()
  37. {
  38. initializePreferences();
  39. adressEintraegeDaten = new ArrayList<>();
  40. adressEintraegeNamen = new ArrayList<>();
  41. daten = new ArrayList<>();
  42. adressEintraegeNamen.add("Vorname");
  43. adressEintraegeNamen.add("Name");
  44. adressEintraegeNamen.add("Adresse");
  45. adressEintraegeNamen.add("E-Mail");
  46. adressEintraegeDaten.add("");
  47. adressEintraegeDaten.add("");
  48. adressEintraegeDaten.add("");
  49. adressEintraegeDaten.add("");
  50. // adressEintraegeNamen.add("Telefon");
  51. // adressEintraegeDaten.add("122345");
  52. daten.add(adressEintraegeDaten);
  53. }
  54. @Override
  55. public int getRowCount()
  56. {
  57. return daten.size();
  58. }
  59. @Override
  60. public int getColumnCount()
  61. {
  62. return adressEintraegeDaten.size();
  63. }
  64. @Override
  65. public Object getValueAt(int row, int col)
  66. {
  67. return daten.get(row).get(col);
  68. }
  69. @Override
  70. public void setValueAt(Object value, int row, int col)
  71. {
  72. daten.get(row).set(col, (String)value);
  73. }
  74. @Override
  75. public boolean isCellEditable(int row, int col)
  76. {
  77. return true;
  78. }
  79. @Override
  80. public String getColumnName(int col)
  81. {
  82. return adressEintraegeNamen.get(col);
  83. }
  84. public Preferences getPreferences()
  85. {
  86. return this.prefs;
  87. }
  88. public void initializePreferences()
  89. {
  90. this.prefs = Preferences.userRoot().node(this.getClass().getName());
  91. }
  92. public ArrayList<String> getLastRowData()
  93. {
  94. ArrayList<String> lastRow = new ArrayList<>();
  95. for (int i = 0; i <= daten.get(0).size()-1; i++)
  96. {
  97. lastRow.add(daten.get(daten.size()-1).get(i));
  98. }
  99. return lastRow;
  100. }
  101. public void eintragHinzufuegen(ArrayList<String> letzteSpalte)
  102. {
  103. daten.add(letzteSpalte);
  104. this.fireTableDataChanged();
  105. }
  106. public void eintragHinzufuegen()
  107. {
  108. adressEintraegeDaten = new ArrayList<>();
  109. adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(""));
  110. daten.add(adressEintraegeDaten);
  111. this.fireTableDataChanged();
  112. }
  113. public void eintragLoeschen(int row)
  114. {
  115. daten.remove(row);
  116. this.fireTableDataChanged();
  117. }
  118. public void spalteHinzufuegen(String name)
  119. {
  120. adressEintraegeNamen.add(name);
  121. }
  122. public void datenSpeichern(File datei) throws FileNotFoundException, IOException
  123. {
  124. FileOutputStream fos = new FileOutputStream(datei);
  125. BufferedOutputStream bos = new BufferedOutputStream(fos);
  126. ObjectOutputStream oos = new ObjectOutputStream(bos);
  127. oos.writeObject(daten);
  128. oos.writeObject(adressEintraegeNamen);
  129. oos.flush();
  130. oos.close();
  131. }
  132. public void datenLesen(File datei) throws FileNotFoundException, IOException, ClassNotFoundException
  133. {
  134. FileInputStream fis = new FileInputStream(datei);
  135. BufferedInputStream bis = new BufferedInputStream(fis);
  136. ObjectInputStream ois = new ObjectInputStream(bis);
  137. daten = (ArrayList<ArrayList<String>>)ois.readObject();
  138. adressEintraegeNamen = (ArrayList<String>)ois.readObject();
  139. adressEintraegeDaten = daten.get(daten.size()-1);
  140. ois.close();
  141. this.fireTableDataChanged();
  142. }
  143. }