Cast TreeViewer Item zum eigentlichen Element

mdunker

Mitglied
Hallo,

ich habe einen TreeViewer der mit einer EMF Resource initializiert wird. Wie man das macht habe ich irgendwo im Netz gefunden. Momentan sieht es so aus:

Code:
intTreeViewer = new TreeViewer(tree, SWT.MULTI | SWT.V_SCROLL);		

AdapterFactory adapterFactory = new InteraktionsModellItemProviderAdapterFactory();

intTreeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
intTreeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
intTreeViewer.setInput(new ItemProvider(Collections.singleton(<EMFResource>)));

Ich weiss wie man ich ein TreeItem farbig bekomme:

Code:
Display display = Display.getCurrent();
TreeItem.setForeground(display.getSystemColor(SWT.COLOR_RED));

Wenn ich jetzt ein Element aus der EMF Resouce habe das ein Attribut "color" hat und der Wert z.B. "rot" ist, dann möchte ich das TreeItem rot färben.
Mein Problem ist Verknüpfung von meinem EMF Element und dem TreeItem.
Ich müsste alle TreeItems holen und in einer Schleife durchlaufen. Um dann aber das Attribut abzufragen muss ich statt des TreeItems das konkrete EMF Element haben.

Wenn ein TreeItem selektiert ist kann ich das wie folgt tun:
Code:
IStructuredSelection sel = (IStructuredSelection) intTreeViewer.getSelection();
<EMFElement> element = (<EMFElement>) sel.getFirstElement();

Genau so einen Cast brauche ich auch ohne das ein Item selektiert ist, sondern halt für das aktuelle Item der Schleife. Ungefähr so:

Code:
TreeItem[] treeItems = intTreeViewer.getTree().getItems();
for (int i = 0; i < treeItems.length; i++) {
1. cast treeItem[i] to EMF Element
2. frage attribut ab
3. wenn attribute wert = rot, färbe treeitem ein
}

Kann mir jmd weiterhelfen und mir einen Hinweis geben wie ein solcher Cast aussehen könnte?

Mfg Mirco
 
Wenn du ein vollständig lauffähiges Beispiel mit Beispieldaten hier reinstellen könntest, würde ich mir das mal angucken.

Allerdings habe ich von EMF-Kram keine Ahnung und kann mir daher so ein Beispiel gerade selber schlecht konstruieren.
 
Zurück