SWT - refresh() auf viewer

tommy_

Grünschnabel
Hallo,

kann mir jemand erklären, was genau bei einem
Code:
TableViewer tableViewer = new TableViewer(Table);
tableViewer.refresh();
passiert?

Wenn ich ein refresh() auf einen viewer mache, geht danach in der Tabelle des viewers nichts mehr.

Danke und Gruss,
Tom
 
vermutlich packst du deine Daten direkt in den Table oder? Das wird so nicht funktionieren, da der TableViewer nach dem Model-View-Controller-Muster programmiert wurde. Du musst dir ein Model erstellen und die Daten dann im Model ändern. dann wird die refresh-Methode auch wieder funktionieren.
Schau dir mal das Kapitel 'JFace Viewers' in folgendem PDF an, denke dann wirds dir klarer.

JFace-Tutorial

Gruß,

Ali
 
Hi Ali,

nein, meine Daten werden nicht in die Tabelle gepackt, sondern liegen in einem Content-Provider.

Ich wrappe einen IParticipantService, der IStructuredContentProvider und Listener implementiert.

Wenn ich einen User einfüge, wird er im Content(Model) eingefügt, in die DB geschrieben und bereitgestellt. Den Tableviewer der Tabelle, auf den ich das refresh() aufrufe, aktualisiert die Tabelle und der neue User erscheint.

Nun ist es so, dass ein Tableitem folgendes enthält:
username | userid | checkbox | checkbox.

Die checkboxen haben Listener, welche auch weiterhin funktionieren. Aber wenn ich die checkboxen aktualisieren lasse (es soll an den entsprechenden Boxen gecheckt werden, je nach Regel) dann passiert nichts! Obwohl es vor dem Refresh() funktioniert hat!

Das ist mein Problem.

Danke und Gruss,
Tom
 
Zurück