Hallo zusammen.
Ich steh (mal wieder) vor einem recht komischen Problem. (vielleicht bin ich ja auch nur Betriebsblind...)
Ich habe einen TableViewer, der beim anklicken eines eintrag in einem Group-Composite Daten aus seinem Modell visualisier (Labels und Text-Felder).
Das funzt auch ganz gut: Die Felder werden mit den relevanten Daten des hinter Tabelle stehenden Modells ordentlich befüllt.
Der Rest der Daten sollte in einer weiteren Tabelle (TableViewer) angezeigt werden (erst mal, editieren später).
Diesen Viewer initialisier ich beim Anlegen erst mal leer (also so, das nur ein Header zu sehen ist.
Das geht alles so weit - nun dachte ich mir, ich könnte den in Frage kommenden Teil des Haupmodells visualisieren indem ich die in frage kommende Liste übergebe.
Das mache ich in einem ISelectionChangedListener (siehe oben) der ja bereits erfoglreich die Labels und Textfelder füllt.
Ich weiß allmählich nicht mehr wo genau der fehler liegen könnte - das modell ist nicht null, auch nicht die liste - nix meiner meinung nach...
Hat jermand das schon mal erlebt???
Viele Grüße,
D
Ich steh (mal wieder) vor einem recht komischen Problem. (vielleicht bin ich ja auch nur Betriebsblind...)
Ich habe einen TableViewer, der beim anklicken eines eintrag in einem Group-Composite Daten aus seinem Modell visualisier (Labels und Text-Felder).
Das funzt auch ganz gut: Die Felder werden mit den relevanten Daten des hinter Tabelle stehenden Modells ordentlich befüllt.
Der Rest der Daten sollte in einer weiteren Tabelle (TableViewer) angezeigt werden (erst mal, editieren später).
Diesen Viewer initialisier ich beim Anlegen erst mal leer (also so, das nur ein Header zu sehen ist.
Code:
tableViewer = new TableViewer( // globale variable
clientRecordResultGroup, SWT.BORDER);
resultTable = tableViewer // global
.getTable();
resultTable.setLinesVisible(true);
resultTable.setHeaderVisible(true);
tableViewer.setUseHashlookup(true);
recordResultTable.setLayoutData(new GridData(
SWT.FILL, SWT.FILL, true, true));
tableViewer // provider funktionieren, dessen bin ich mir recht sicher!
.setContentProvider(new RecordContentProvider(
results)); // results ist eine globale variable des modells - nicht null!
tableViewer
.setLabelProvider(new RecordLabelProvider(
View.getInfoModel().getSign())); // erst mal unwichtig (funktioniert auch...)
List<Result> empty_list = new LinkedList<Result>(); // funktioniert - leere liste
tableViewer.setInput(empty_list);
for (int i = 0; i < tableHeader.length; i++) {
final TableViewerColumn newColumn = new TableViewerColumn(
tableViewer, SWT.NONE);
if (i < 2)
newColumn.getColumn().setWidth(150);
else
newColumn.getColumn().setWidth(200);
newColumn.getColumn().setText(
tableHeader[i]);
newColumn.getColumn().setMoveable(false);
}
Das geht alles so weit - nun dachte ich mir, ich könnte den in Frage kommenden Teil des Haupmodells visualisieren indem ich die in frage kommende Liste übergebe.
Das mache ich in einem ISelectionChangedListener (siehe oben) der ja bereits erfoglreich die Labels und Textfelder füllt.
Code:
// fill result viewer table
List<Result> list = results
.getMapping().get(displayedValue); // der angezeigte kram (labels,Textfelder) ist ein Key in einer Map
tableViewer.update(list,
tableHeader);
tableViewer
.refresh(); // hier ist der NullPointer
Ich weiß allmählich nicht mehr wo genau der fehler liegen könnte - das modell ist nicht null, auch nicht die liste - nix meiner meinung nach...
Hat jermand das schon mal erlebt???
Viele Grüße,
D