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