Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > myFaces tree2 проблема?


Автор: unkis 30.5.2006, 19:17
Ребята помогите, возникла такая проблема:

мы пытаемся создать динамическое дерево, в которое мы сможем добавлять и удалять наши Nodes.

при добавлении у нас не возникло ни каких проблем, а вот при удалении у нас есть проблемма.

когда в дереве остается два елемента(root-->node) и дерево наше открыто то при удалении видается ошибка, потому что пытается загузится  открытое дерево без  node,что естественно делать нельзя, так как дерево содержащая толко один елемент(root) не может бить откритым.

так вот вопрос как принудительно закрить дерево?

Зарания благодарен.

Код

<t:tree2 id="serverTree" imageLocation="pages/sitemap/images" showRootNode="true" value="#{treeBacker.treeModel}" var="node" varNodeToggler="t" clientSideToggle="false" >
                                <f:facet name="unknown">
                                    <h:panelGroup>
                                        <h:commandLink immediate="true" actionListener="#{treeBacker.select}">
                                            <t:graphicImage value="/pages/sitemap/images/unknown.gif" rendered="#{t.nodeExpanded}" border="0" />
                                            <t:graphicImage value="/pages/sitemap/images/unknown.gif" rendered="#{!t.nodeExpanded}" border="0" />
                                            <h:outputText value="#{node.description}" />
                                            <f:param name="entryId" value="#{node.identifier}" />
                                        </h:commandLink>
                                    </h:panelGroup>
                                </f:facet>
                                <f:facet name="category">
                                    <h:panelGroup>
                                        <h:commandLink immediate="true" actionListener="#{treeBacker.select}">
                                            <t:graphicImage value="/pages/sitemap/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0" />
                                            <t:graphicImage value="/pages/sitemap/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0" />
                                            <h:outputText value="#{node.description}" />
                                            <f:param name="entryId" value="#{node.identifier}" />
                                        </h:commandLink>
                                    </h:panelGroup>
                                </f:facet>
                                <f:facet name="product">
                                    <h:panelGroup>
                                        <h:commandLink immediate="true" actionListener="#{treeBacker.select}">
                                            <t:graphicImage value="/pages/sitemap/images/blue-folder-open.png" rendered="#{t.nodeExpanded}" border="0" />
                                            <t:graphicImage value="/pages/sitemap/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0" />
                                            <h:outputText value="#{node.description}" />
                                            <f:param name="entryId" value="#{node.identifier}" />
                                        </h:commandLink>
                                    </h:panelGroup>
                                </f:facet>
                                <f:facet name="leaf">
                                    <h:panelGroup>
                                        <h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{treeBacker.select}">
                                            <t:graphicImage value="/pages/sitemap/images/document.png" border="0" />
                                            <h:outputText value="#{node.description}" />
                                            <f:param name="entryId" value="#{node.identifier}" />
                                        </h:commandLink>
                                    </h:panelGroup>
                                </f:facet>
                            </t:tree2>
 

Автор: alexsmirnov 31.5.2006, 01:27
Использовать binding,  у компонента есть методы по управлению моделью - collapseAll() сворачивает все дерево  

Автор: unkis 31.5.2006, 10:59
извините за тупость, а вы бы не могли подскозать конкретно как? 



Зарания благодарен.
  

Автор: alexsmirnov 2.6.2006, 12:33
В бине :
Код

..............
    private UITreeData _tree = null;

    // getter - setter
    public void setTree( UITreeData tree ){
       _tree = tree;
    }

    public UITreeData getTree(){
       return _tree;
   }
.......................
// You method - after deleting 
   getTree().collapseAll();
.......................

На странице :
Код

................
<t:tree2 id="serverTree" binding="#{treeBacker.tree}"
.................


Точное имя класса для компонента не помню, надо смотреть в пакете org.apache....custom.tree2
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)