SWT NEBULA Grid...

lumo

Top Contributor
hi!

ich häng grade arg an einem problem mit dem nebula grid
ich erstelle griditems und füge die zum grid dazu

das alles passiert in einer rcp app die aus mehreren threads besteht.
darum muss ich das per display.getdefault.(a)syncexec() machen.
wenn ich mir per sysout den log ausgeben lasse, steht dort auch das, was angezeigt wird.
und zwar lauter leere zeilen
HINWEIS: es gibt keinen code bis auf den hier gelisteten, der auf das grid oder seine items zugreift!

Java:
for (int i = 0; i < sites.size(); i++) {
						final Site s = sites.get(i);
						GridItem item = new GridItem(viewer.getGrid(), SWT.NONE);
						item.setImage(0, getMapIcon(s));
						System.out.println("s.getName() = " + s.getName());
						item.setText(s.getName());
						System.out.println("adding item with text = "
								+ item.getText());
					}
und jetzt die überraschung, der log sieht so aus
adding item with text =
s.getName() = Patscherkofel: unter Spitze, Richtung Sistrans
adding item with text =
s.getName() = Patscherkofel
adding item with text =
s.getName() = Patscherkofel bei Innsbruck
adding item with text =
s.getName() = Patscherkofel-Gipfel
adding item with text =
s.getName() = Patscherkofel Gipfelkuppe
adding item with text =
s.getName() = Patscherkofellhaus
adding item with text =
s.getName() = Patscherkofel, W-Seite
adding item with text =
s.getName() = Patscherkofel
adding item with text =
s.getName() = Sistrans S: Lanser Alm
adding item with text =
s.getName() = Patscherkofel-S-Seite
adding item with text =
also hab ich meinen code in ein kleines selbstständiges lauffähiges programm gepackt und das selbe nocheinmal versucht, nur mit dem unterschied dass hier die ausgabe korrekt ist...

ich habe den code aber 1:1 kopiert! mit dem einzigen unterschied dass in meiner rcp app die daten aus einem objekt kommen und im testprogramm die daten aus einem string[]

aber die drei zeilen, mit denen ich den griditem erstelle sind die selben....
new Griditem
setImage
setText

ideen?

EDIT: fast vergessen, der ERSTE eintrag klappt! (wenn ich die tabelle neue aufbauen lasse klappt es nicht mehr!)
 
Zuletzt bearbeitet:
zusatz:
ich hab jetzt den code genommen und per code replace GRID durch Table ersetzt (also statt nebula den standard table)
habe dann nur noch eine funktion cleanAll den boolean parameter gelöscht.

so starte wieder und hurra, es funktioniert...
WTF?!?!? das grid basiert doch auf SWT Table!?
 
Da ich dort im Code ein 'viewer' sehe vermute ich das du einen GridViewer verwendest?
Wenn das der Fall ist, warum erzeugst du dann Items? GridViewer werden über Content- und LabelProvider gefüllt.
 
das weiss ich,
eine komponente erweitert die funktion (tableviewer erweitert die funktion von table) und sollte keine negativen auswirkungen auf die basisfunktionen haben. (zumal diese funktion 1:1 bei der normalen swt table funktioniert - mit dem tableviewer auch)
 
Deine Erwartungshaltung ist imho arg hoch angesetzt.
Eine Grid ist was ganz anderes als eine einfache Table. Der Tableviewer erleichtert die Arbeit mit einer Table, ein Grid ist aber eine Erweiterung der Funktionen. Eine solche Erweiterung darf und muss teilweise die Basisfunktionalität ersetzen.
 

Zurück
Oben