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...
 

Neue Beiträge

Zurück