Как я могу вернуть удаленные элементы дерева в javafx treeview? - PullRequest
1 голос
/ 23 апреля 2019

Как я могу вернуть удаленные элементы дерева в виде дерева Javafx?

Когда я создаю дерево, подобное этому.

root-
    |-item1
    |-item2
    |-folder1-
             |-item3
             |-item4
             |-item5
             |-folder2-....
             |-folder3-....

если я удаляю folder1, я хочу получить список удаленных элементов иfodlers, это означает, что если я удаляю folder1, я хочу получить список элементов item3, item4, item5, folder2, folder3 и других, которые были расположены в folder2 и folder3.

Я использовал функцию remove () для удаления элемента деревавот так.

folder1.getParent().getChildren.remove(folder1);

В этом случае, какой будет лучший способ получить список удаленных узлов?

1 Ответ

0 голосов
/ 23 апреля 2019

Добавьте EventHandler к корню TreeItem для обработки TreeModificationEvent с. В частности, вы должны прослушивать события с типом события TreeItem#childrenModificationEvent().

EventType используется, когда TreeItem получает прямую модификацию своего дочернего списка.

TreeItem<T> root = ...;
root.addEventHandler(TreeItem.<T>childrenModificationEvent(), event -> {
    if (event.wasRemoved()) {
        List<? extends TreeItem<T>> removed = event.getRemovedChildren();
        // Handle removed children. Traverse descendants as needed.
    }
});

Где T - ваш тип значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...