powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / MyFaces.Tomahawk tree2: проблема с разворачиванием узлов
1 сообщений из 1, страница 1 из 1
MyFaces.Tomahawk tree2: проблема с разворачиванием узлов
    #33530199
artgonch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Пытаюсь использовать этот компонент. Все в роде бы хорошо, пока в дочерние узлы есть, что загружать. Как только дело доходит до листового узла, начинаются проблемы.
Вот мое описание дерева (JSF-страница):
Код: 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.
32.
33.
34.
35.
36.
        <t:tree2 value="#{backing_index.rubricator.treeModel}"
                 binding="#{backing_index.tree2}" clientSideToggle="false"
                 varNodeToggler="t" var="node" showRootNode="false" preserveToggle="false">
          <f:facet name="root">
            <h:panelGroup>
              <h:commandLink action="#{t.toggleExpanded}"
                             actionListener="#{backing_index.treeAction}">
                <t:graphicImage value="/img/yellow-folder-open.png"
                                rendered="#{t.nodeExpanded}" border="0"/>
                <t:graphicImage value="/img/yellow-folder-closed.png"
                                rendered="#{!t.nodeExpanded}" border="0"/>
              </h:commandLink>
              <h:commandLink action="#{backing_index.nodeSelectAction}"
                             actionListener="#{backing_index2.nodeSelectedActionListener}"
                             value="#{node.fullCode}" immediate="true">
                <f:param value="#{node.id}" name="id"/>
              </h:commandLink>
            </h:panelGroup>
          </f:facet>
          <f:facet name="node">
            <h:panelGroup>
              <h:commandLink action="#{t.toggleExpanded}"
                             actionListener="#{backing_index.treeAction}">
                <t:graphicImage value="/img/yellow-folder-open.png"
                                rendered="#{t.nodeExpanded}" border="0"/>
                <t:graphicImage value="/img/yellow-folder-closed.png"
                                rendered="#{!t.nodeExpanded}" border="0"/>
              </h:commandLink>
              <h:commandLink action="#{backing_index.nodeSelectAction}"
                             actionListener="#{backing_index.nodeSelectedActionListener}"
                             value="#{node.fullCode} - #{node.descr}" immediate="true">
                <f:param value="#{node.id}" name="id"/>
              </h:commandLink>
            </h:panelGroup>
          </f:facet>
        </t:tree2>
А вот обработчик, который вызывается при щелчке по кнопке разворачивания/сворачивания узла:
Код: 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.
   public   void  treeAction(ActionEvent actionEvent)
  {
    // Add event code here...
    RubricItem node = (RubricItem)tree2.getNode();
     if  (node.getChildCount() !=  0 )
       return ;
     if  (tree2.isNodeExpanded())
       return ;
      
    Connection conn =  null ;
     try 
    {
      conn = MyConnection.getConnection();
      rubricator.loadChildren(node, conn);
      node.setLeaf(node.getChildCount() ==  0 );
    }
     catch  (SQLException ex)
    {
       throw   new  FacesException(ex);
    }
     finally 
    {
      MyConnection.closeCOnnection(conn);
    }
  }
Если в процессе путешествия по дереву, мы дошли до лситового узла, то loadChildren не загрузит ничего в колекцию дочерних элементов node. Однако приложение выбрасывает исключение:
java.lang.IllegalStateException: Encountered a node [0:7:2] + with an illogical state. Node is expanded but it is also considered a leaf (a leaf cannot be considered expanded. at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeNavigation(HtmlTreeRenderer.java:463) at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeCurrentNode(HtmlTreeRenderer.java:346) at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree(HtmlTreeRenderer.java:248) at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree(HtmlTreeRenderer.java:276) at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeChildren(HtmlTreeRenderer.java:211) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:701) at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:607) at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:544) at _index._jspService(_index.java:286) [/index.jsp]

Смотрел пример из Wiki про ленивую загрузку, но так и не понял, как они это делают и избегают выюрасывания исключений.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / MyFaces.Tomahawk tree2: проблема с разворачиванием узлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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