JFace ContentProvider erkennt inputChanged nicht

chris_sit

Erfahrenes Mitglied
Hallo mal wieder,

Ich habe mir mit JFace einen TreeViewer gebastelt - dazu Funktionen um Knoten einzufügen, löschen etc..

Folgendes Problem ist mir heute aufgefallen:

Ich übergebe meinem Viewer mit setInput(); den Wurzelknoten, wo ich im Voraus weitere Kinder angehängt habe. Diese zeigt er auch zuverlässig an - wenn ich dann im Baum an einen der existierenden Knoten weitere Kinder anhängen will, synchronisiert sich der Viewer auch unverzüglich mit meinem "geänderten" Modell.
Aber: Wenn ich an einen der neuen Knoten die oben genannten Funktionen anwende, reagiert der Viewer nicht.
Er müsste doch eigntlich die inputChanged() Methode des ContentProviders aufrufen - oder etwa nicht?
Wenn ich später dann wieder bei einem der "alten" Knoten eine Operation ausführe, werden auch die Änderungen der neuen Knoten übernommen - das Modell funktioniert also, ich habe wohl nur ein Problem mit den Listenern, jedoch sind die verwendeten Methodenaufrufe beim Erstellen des "initial-Models" und bei den Methoden zum Hinzufügen/Löschen gleich. Die Listener für die einzelnen Objekte füge ich bei der inputChanged() Methode hinzu/entferne sie wieder, würde sich hier vielleicht ein anderes Plätzchen anbieten?

-chris
 
Ich habe nun einfach ans Ende meiner run()-Methode der betreffenden Actions ein viewer.refresh() gesetzt und siehe da, sämtliche Änderungen werden sofort übernommen.

Quick und Dirty.. bei Gelegenheit will ich dem Problem aber nochmal genauauer nachgehen...
 
Zurück