2013-09-07 2 views
1

Я делаю программу на Java, и у меня есть виджет дерева SWT, с которым пользователь должен играть с помощью перетаскивания.Изменение SWT TreeItem parent

Теперь проблема заключается в том, что когда пользователь перетаскивает ветвь, я хочу изменить родительский элемент ветви на какой бы ни был объект treeItem, но, похоже, это не так. Я мог бы просто создать новый treeItem, но нет простого способа передать детей, поэтому мне нужно переопределить всех детей, их внуков и т. Д. Рекурсивно. Мне кажется, что это довольно klunky и неэффективно для меня, что мне нужно переделать всю ветку, чтобы изменить родителя.

Есть ли какой-либо чистый способ сделать это?

ответ

0

Ну, чистый способ - отделить вид/виджеты от модели (как в MVC). В случае SWT вы должны использовать TreeViewer и реализовать ITreeContentProvider. jFace позаботится о создании для вас узлов дерева, и вам нужно только обновить свою модель и обновить программу просмотра.

Смежные вопросы