Rozwiń Zwiń Rozwiń problem z ładowaniem JTree Lazy
Zaimplementowałem drzewo za pomocą Lazy Loading. Węzły pierwszego poziomu są tworzone w czasie tworzenia drzewa, gdzie jako węzły potomne są tworzone tylko wtedy, gdy użytkownik rozszerza dowolny węzeł.
Dane pochodzą z DB i odpalamy zapytanie do bazy danych, aby zapełnić węzły potomne. Zaimplementowano TreeExpansionListener i wykorzystano zastąpioną implementację metody treeExpanded. Podczas rozbudowy usuwam wszystkie węzły potomne dla wybranego węzła, wykonuję zapytanie DB i dodaję rekordy jako potomne do wybranego węzła. Przed dodaniem dowolnego węzła do drzewa do węzła dodawany jest atrapa dziecka. Praca z DefaultMutableTreeNode.
Do tej pory tak dobrze, działało dobrze na każde oczekiwanie.
Problem 1 - Jak ty, jest to wywołanie DB na rozszerzenie, więc jeśli węzeł zostanie zwinięty i ponownie rozwinięty, będę robił wycieczkę DB i ponownie przetwarzał ponownie ... Chodzi o to, aby nie ładować węzłów świeżych, jeśli już są rozwinięte ...
Problem 2 - Gdybym musiał zrobić odświeżanie siły, tj. Ponownie załadować drzewo i zachować stan ekspansji. To działa już teraz ... Jak mogę osiągnąć to samo wraz z poprawką do problemu 1 powyżej?
Doceń każdą pomoc na ten temat.