Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по JTree и подгрузкой данных из базы / 7 сообщений из 7, страница 1 из 1
17.02.2012, 16:03:08
    #37667479
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
Скажите пожалуйста, у меня есть дерево, данные в узлах не грузятся автоматически, они подгружаются тогда, когда пользователь нажимает на расскрытие узла. Т.е. перед каждым открытием узла я удаляю содержимое ноды, и после подгружаю значения. Но вот проблема, например пользователь открывал узел и дошел до какого-то глубокого уровня вложенности, потом закрыл родителя, открыл снова и ему опять приходится открывать заново всю эту цепочку. Как сделать так, чтобы при повторном открытии ноды, пользователю открывался весь тот путь, которые был уже открыт. Надеюсь я понятно объяснила :)
...
Рейтинг: 0 / 0
17.02.2012, 16:18:49
    #37667503
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
А зачем удалять ноды? Посмотрите исходники JTree методы
TreeModelHandler.treeStructureChanged
removeDescendantToggledPaths
Они как раз удаляют информацию об открытых путях, когда удаляются ноды. Возможно нужно туда вписать желаемую логику, чтобы пути оставались.
Либо ещё как-то самостоятельно контролировать поле JTree.expandedState
...
Рейтинг: 0 / 0
17.02.2012, 16:58:13
    #37667583
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
BlazkowiczА зачем удалять ноды? Посмотрите исходники JTree методы
TreeModelHandler.treeStructureChanged
removeDescendantToggledPaths
Они как раз удаляют информацию об открытых путях, когда удаляются ноды. Возможно нужно туда вписать желаемую логику, чтобы пути оставались.
Либо ещё как-то самостоятельно контролировать поле JTree.expandedState
если не удалять, то при очередном открытии в выделенный узел добавляются дублирующиеся записи, и так происходит каждый раз при очередном закрытии и открытии узла
...
Рейтинг: 0 / 0
17.02.2012, 17:00:04
    #37667589
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
JulTесли не удалять, то при очередном открытии в выделенный узел добавляются дублирующиеся записи, и так происходит каждый раз при очередном закрытии и открытии узла
А не добавлять узел, если он уже есть? Не вариант?
...
Рейтинг: 0 / 0
17.02.2012, 17:06:41
    #37667600
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
BlazkowiczJulTесли не удалять, то при очередном открытии в выделенный узел добавляются дублирующиеся записи, и так происходит каждый раз при очередном закрытии и открытии узла
А не добавлять узел, если он уже есть? Не вариант?
вариант конечно, но как это реализовать?
...
Рейтинг: 0 / 0
17.02.2012, 23:02:47
    #37668040
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
JulT , видел как-то реализацию подобной логики. Там расширяли DefaultMutableTreeNode и добавляли флаг, а-ля childrenLoaded. Далее логика проста: на дерево вешался слушатель TreeExpansionListener . При обработке события раскрытия ноды по данному флагу определялось, были ли ранее загружены дочерние ноды. Если нет, они подгружались и устанавливался флаг, в противном случае происходило просто раскрытие ноды. Насколько мне помнится, селекшн-стейт дочерних нод сохранялся. На крайний случай, в гугле можно найти примеры сохранения этого состояния.
Единственный минус такого подхода - необходимо предусмотреть reload дочерних элементов для нод, у которых данный флаг уже был установлен.
...
Рейтинг: 0 / 0
19.02.2012, 14:53:31
    #37669214
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по JTree и подгрузкой данных из базы
все сделала, спасибо всем, кто откликнулся
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по JTree и подгрузкой данных из базы / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]