Hallo,
ich erstelle mir gerade eine kleine GUI mit 2 Tabellen und ein paar Textfields.
Jetzt möchte ich natürlich, dass jegliche Änderungen in jeder GUI Komponenten sofort geupdatet werden.
Das Binding zum Model realisiere ich über IObservables (wird von Eclipse generiert beim Binding). Allerdings scheint dies nicht auf jegliche Änderungen im Model zu horchen.
Bei den 2 Tabellen gehen die Probleme los:
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
Wenn ich jetzt eine Tabellenzeile editieren will, dann muss ich für jede einen EditorSupport schreiben, so:
Abgesehen, dass das total umständlich wird bei großen Tabellen, habe ich auch noch das Problem, dass ja beim Editieren erstmal nur diese Tabelle sich updatet. Dh für jede Tabelle oder jedes Element, welches sich noch zusätzlich updaten soll, muss ich in der setValue Methode auch ein .refresh() Aufruf machen.
Also in gewisser Weise coded man sich da für ein paar Tabellen echt zu tode.
Deshalb meine Frage: gibt es denn keine fertigen Tabellen, die CRUD Funktionalität out of the box können? Das ist doch eine Sache, die quasi jeder braucht, der eine Tabelle im GUI verwendet...:bahnhof:
Danke
ich erstelle mir gerade eine kleine GUI mit 2 Tabellen und ein paar Textfields.
Jetzt möchte ich natürlich, dass jegliche Änderungen in jeder GUI Komponenten sofort geupdatet werden.
Das Binding zum Model realisiere ich über IObservables (wird von Eclipse generiert beim Binding). Allerdings scheint dies nicht auf jegliche Änderungen im Model zu horchen.
Bei den 2 Tabellen gehen die Probleme los:
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
Wenn ich jetzt eine Tabellenzeile editieren will, dann muss ich für jede einen EditorSupport schreiben, so:
Java:
tableViewerColumn.setEditingSupport(new EditingSupport(tableViewer) {
protected boolean canEdit(Object element) {
return true;
}
protected CellEditor getCellEditor(Object element) {
return new TextCellEditor(tableViewer.getTable());
}
protected Object getValue(Object element) {
return ((SomeObject) element).getName();
}
protected void setValue(Object element, Object value) {
((SomeObject) element).setName(String.valueOf(value));
tableViewer.refresh(element);
}
});
Abgesehen, dass das total umständlich wird bei großen Tabellen, habe ich auch noch das Problem, dass ja beim Editieren erstmal nur diese Tabelle sich updatet. Dh für jede Tabelle oder jedes Element, welches sich noch zusätzlich updaten soll, muss ich in der setValue Methode auch ein .refresh() Aufruf machen.
Also in gewisser Weise coded man sich da für ein paar Tabellen echt zu tode.
Deshalb meine Frage: gibt es denn keine fertigen Tabellen, die CRUD Funktionalität out of the box können? Das ist doch eine Sache, die quasi jeder braucht, der eine Tabelle im GUI verwendet...:bahnhof:
Danke
Zuletzt bearbeitet: