1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
| public class Model extends AbstractTableModel {
private final List<Source> sources ;
private static final File datasFile = new File("data.ser").getAbsoluteFile();
private final String[] entetes = {"","","","","","","","","" };
private static void saveToFile(List<Source> datas) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(datasFile))) {
oos.writeObject(datas);
System.out.println("Data save to file " + datasFile);
} catch (Exception e) {
e.printStackTrace();
}
}
private static List<Source> loadFromFile() {
List<Source> datas;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(datasFile))) {
datas = (List<Source>) ois.readObject();
System.out.println("Data load from file " + datasFile);
} catch (Exception e) {
e.printStackTrace();
datas = new ArrayList<>();
datas.add(new Source(Sites.Choisissez, new Double(0) , "", "", "", "", "", "", new Double(0)));
}
return datas;
}
public Model() {
super();
sources = loadFromFile();
}
public int getRowCount() {
return sources.size();
}
public int getColumnCount() {
return entetes.length;
}
public String getColumnName(int columnIndex) {
return entetes[columnIndex];
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0:
return sources.get(rowIndex).getNir();
case 1:
return sources.get(rowIndex).getKom();
case 2:
return sources.get(rowIndex).getCot();
case 3:
return sources.get(rowIndex).setHor();
case 4:
return sources.get(rowIndex).getSp();
case 5 :
return sources.get(rowIndex).getHh();
case 6:
return sources.get(rowIndex).getDhc();
case 7:
return sources.get(rowIndex).getQda();
case 8:
return sources.get(rowIndex).getTt();
default:
return null;
}
}
@Override
public Class getColumnClass(int columnIndex){
switch(columnIndex){
case 0:
return Sites.class;
case 1:
return Double.class;
case 2:
return String.class;
case 3:
return String.class;
case 4 :
return String.class;
case 5:
return String.class;
case 6:
return String.class;
case 7:
return String.class;
case 8 :
return Double.class;
default:
return Object.class;
}
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
if(aValue != null){
Source source = sources.get(rowIndex);
switch(columnIndex){
case 0:
source.setNir((Sites)aValue);
break;
case 1:
source.setKom((Double)aValue);
break;
case 2:
source.setCot((String)aValue);
break;
case 3:
source.setHor((String)aValue);
break;
case 4:
source.setSp((String)aValue);
break;
case 5:
source.setHh((String)aValue);
break;
case 6:
source.setDhc((String)aValue);
break;
case 7:
source.setQda((String)aValue);
break;
case 8:
source.setTt((Double)aValue);
break;
}
} saveToFile(sources);
}
public void addSource(Source source) {
sources.add(source);
fireTableRowsInserted(sources.size() -1, sources.size() -1);
saveToFile(sources);
}
public void removeSource(int rowIndex) {
sources.remove(rowIndex);
fireTableRowsDeleted(rowIndex, rowIndex);
saveToFile(sources);
}
} |
Partager