Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / ADF Faces Tree: ленивая загрузка дочерних узлов / 1 сообщений из 1, страница 1 из 1
04.02.2006, 12:28
    #33523491
artgonch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADF Faces Tree: ленивая загрузка дочерних узлов
Здравствуйте.
Хочу сделать на основе этого компонента рубрикатор. Он хранится в таблице, в которой сохранены иерархические отношения между компонентами кодированных данных, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
55.41.31	Дизельный подвижной состав
55.41.31.29	Тепловозы
55.41.31.29.29	Тепловозы с электрической передачей
55.41.31.29.31	Тепловозы с гидравлической передачей
55.41.31.29.33	Тепловозы с механической передачей
55.41.31.29.35	Тепловозы маневровые
55.41.31.31	Автомотрисы, дизель-поезда
55.41.31.39.37	Тепловозы промышленного транспорта
55.41.33	Газотурбинные локомотивы и турбопоезда. Паровозы
Вот описание дерева:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
      <af:form>
        <af:tree binding="#{backing_index.tree}"
                 value="#{backing_index.rubricTree}" var="node"
                 disclosureListener="#{backing_index.nodeClosure}">
          <f:facet name="nodeStamp">
            <h:outputText value="#{node.descr}"/>
          </f:facet>
        </af:tree>
Вот метод бина (бин зранит корень дерева и должен давать ссылки на своих потомков по требованию), который возвращает потомков данной рубрики:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
   public  ArrayList getChildren()
  {
    // Если список уже загружен, то ничего не делать
     if  (children !=  null )
       return  children;
      
    // Иначе начать зугрузку потомков
    children =  new  ArrayList( 30 );
    Connection conn =  null ;
     try 
    {
      conn = MyConnection.getConnection();
      RubricatorDAO rdao =  new  RubricatorDAO(conn);
      // Загрузить все подрубрики данной рубрики
      children = rdao.getChildren(id);
    }
     catch  (SQLException ex)
    {
      System.out.println("[RubricItem.java]" + ex.getErrorCode() + ": " + ex.getMessage());
    }
     finally 
    {
       try 
      {
         if  (conn !=  null )
          conn.close();
      }
       catch  (SQLException ex){}
    }
     return  children;
  }

Но при запуске приложения выяснилось, что компонент рекурсивно обходит все модель, пытаясь загрузить ее целиком.
Как бы сделать так, что бы, есои у узла имеются потомки, он помечался соотв. значком, но при это своих потомков загружал только при разворачивании?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / ADF Faces Tree: ленивая загрузка дочерних узлов / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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