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
|
public class GroupTableAdapter extends DefaultTableModel {
private Model model;
public GroupTableAdapter(Model model) {
this.model = model;
createRowsName();
createColumnsName();
// Ajoute le pont de l'adapteur au modèle.
model.addDataListener(new BridgeListener());
}
public Object getValueAt(int rowIndex, int columnIndex) {
Object value = null;
// Test si première colonne ?
if (columnIndex == 0) {
value = rows[rowIndex];
// Sinon, nom du groupe d'évènement...
} else {
Group group = (Group) model.getElementAt(rowIndex);
value = group.getName();
}
return value;
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
String string = (String) aValue;
Group group = (Group) model.getElementAt(rowIndex);
group.setName(string);
}
/**
* Pont relié au modèle de données.
*/
public class BridgeListener implements ListDataListener {
public void intervalAdded(ListDataEvent listDataEvent) {
final ListDataEvent event = listDataEvent;
EventQueue.invokeLater(new Runnable() {
public void run() {
fireTableRowsInserted(event.getIndex0(), event.getIndex1());
}
});
}
public void intervalRemoved(ListDataEvent listDataEvent) {
final ListDataEvent event = listDataEvent;
EventQueue.invokeLater(new Runnable() {
public void run() {
fireTableRowsDeleted(event.getIndex0(), event.getIndex1());
}
});
}
public void contentsChanged(ListDataEvent listDataEvent) {
final ListDataEvent event = listDataEvent;
EventQueue.invokeLater(new Runnable() {
public void run() {
fireTableStructureChanged();
}
});
}
}
} |
Partager