Hallo,
ich arbeite mit einen JTree. Immer wenn der Benutzer einen Knoten markiert merke ich mir den selektierten Pfad in einer History. So kann der Menutzer über die History später wieder gezielt einen Pfad anspringen. Nun kann es natürlich vorkommen, dass der Benutzer einen Eintrag im Baum löscht. An dieser Stelle rufe ich die Methoden
- node.removeAllChildren();
- treeModel.removeNodeFromParent ( node )
auf. Durch die Methode removeNodeFromParent wird der Baum auch aktuallisiert.
Wurde der nun gelöschte Knoten schon einmal zuvor selektiert steht der Pfad natürlich auch in der History. Wenn der Benutzer nun diesen „gelöschten“ Pfad über die History anwählt würde ich gerne eine Meldung bringen, dass es den Pfad nicht mehr gibt. Leider funktioniert meine bisherige Lösung aber nicht.
Ich habe versucht den Pfad mit tree.setSelectionPath(path) zu selektieren und dann mit tree.isPathSelected(path) zu prüfen ob er tatsächlich selektiert ist. Da es den Pfad nicht mehr gibt sollte eigentlich die Methode isPathSelected „false“ zurück geben. Sie gibt aber „true“ zurück. Der Pfad ist also noch immer selektierbar obwohl er gelöscht sein müßte.
Wo ist der Fehler. Wie kann man abfragen ob ein Pfad noch gültig ist ?
Danke
Albert
;Wenn der Benutzer allerdings zwischenzeitlich eine Pfad löscht, der aber bereits in der History steht