I have faced the similar problem using tree2 & facelets.
the version I used is 1.1.5, I think the solution post in
http://wiki.apache.org/myfaces/Use_Facelets_with_Tomahawk is for 1.1.3 and
prior verion.
i have your method below, however it doesn't work for me still, I can only
see the root level, and can't expand the + sign.
Could you post your simple workable version with facelets? reall
appreciated your help!
Andrew Robinson-5 wrote:
>
> There is no such thing as a nested facet in JSF at all. A facet is a
> map of string->UIComponent in a component. Therefore, it is only 1
> level deep. When you put a panelGroup in a facet and put facets in
> that panelGroup you are simply creating this structure:
>
> Tree2 -> [Facet] -> PanelGroup -> [Facet] -> SomeComponent
>
> The second facet is a facet of the panel group and is totally
> unrelated to the tree2 component. PanelGroups never render their
> facets with the default renderer, so the "SomeComponent" will never be
> rendered.
>
> If you want to have different behavior for expanded or collapsed
> nodes, you will have to (1) use EL in your node facet or (2) create
> separate nodes for expanded/collapsed.
>
> From your example, I recommend (1)
>
> <t:tree2 id="clientTree" value="#{csc_CSCTreeBean.treeData}"
> var="node" varNodeToggler="t">
> <f:facet name="person">
> <h:panelGroup>
> <t:graphicImage value="#{t.nodeExpanded ?
> 'images/yellow-folder-open.png' :
> 'images/yellow-folder-closed.png'}"
> border="0"/>
> <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
> </h:panelGroup>
> </f:facet>
> ...
>
>
>
> On 9/19/06, davy.mailing <[EMAIL PROTECTED]> wrote:
>>
>>
>> Thank you very much
>>
>> I am still a little puzzled
>>
>> The code that i copied is from tomahawk sample code. And it really works
>> .
>>
>> Maybe you mean we can't use nested facets in facelet?
>>
>> Thanks again for your help
>>
>>
>> ________________________________
>>
>> davy.mailing
>> 2006-09-20
>> ________________________________
>>
>> 发件人: Andrew Robinson
>> 发送时间: 2006-09-19 23:51:45
>>
>> 收件人: MyFaces Discussion
>> 抄送:
>> 主题: Re: Questions about tree2 and Facelet
>>
>>
>> Why do you have nested facets? There should only be
>> one facet per
>> "node" type. Nested is not supported. Have a look at
>> the example apps
>> to see how to create the facets. The use of
>> "expand" and "collapse"
>> facets is not supported, especially when you
>> have added these facets
>> to a panel group. The panel group component does
>> not render facets
>>
>> On 9/19/06, davy.mailing <[EMAIL PROTECTED] > wrote:
>> >
>> >
>> > Thanks for Andrew Robinson
>> >
>> > I wrote tree2.xhtml like this
>> >
>> >
>> > <html xmlns="http://www.w3.org/1999/xhtml"
>> > xmlns:ui="http://java.sun.com/jsf/facelets"
>> > xmlns:h="http://java.sun.com/jsf/html"
>> > xmlns:f="http://java.sun.com/jsf/core"
>> > xmlns:t="http://myfaces.apache.org/tomahawk" >
>> > <h:inputText value="test jsf"/ >
>> > <f:view >
>> > <h:form id="tree" >
>> > <t:tree2 id="clientTree"
>> > value="#{csc_CSCTreeBean.treeData}" var="node"
>> > varNodeToggler="t" >
>> > <f:facet name="person" >
>> > <h:panelGroup >
>> > <f:facet name="expand" >
>> > <t:graphicImage
>> value="images/yellow-folder-open.png"
>> > rendered="#{t.nodeExpanded}" border="0"/ >
>> > </f:facet >
>> > <f:facet name="collapse" >
>> > <t:graphicImage
>> value="images/yellow-folder-closed.png"
>> > rendered="#{!t.nodeExpanded}" border="0"/ >
>> > </f:facet >
>> > <h:outputText value="#{node.description}"
>> > styleClass="nodeFolder"/ >
>> > </h:panelGroup >
>> > </f:facet >
>> > <f:facet name="foo-folder" >
>> > <h:panelGroup >
>> > <f:facet name="expand" >
>> > <t:graphicImage
>> value="images/yellow-folder-open.png"
>> > rendered="#{t.nodeExpanded}" border="0"/ >
>> > </f:facet >
>> > <f:facet name="collapse" >
>> > <t:graphicImage
>> value="images/yellow-folder-closed.png"
>> > rendered="#{!t.nodeExpanded}" border="0"/ >
>> > </f:facet >
>> > <h:outputText value="#{node.description}"
>> > styleClass="nodeFolder"/ >
>> > <h:outputText value=" (#{node.childCount})"
>> > styleClass="childCount" rendered="#{!empty
>> node.children}"/ >
>> > </h:panelGroup >
>> > </f:facet >
>> > <f:facet name="bar-folder" >
>> > <h:panelGroup >
>> > <f:facet name="expand" >
>> > <t:graphicImage
>> value="images/blue-folder-open.gif"
>> > rendered="#{t.nodeExpanded}" border="0"/ >
>> > </f:facet >
>> > <f:facet name="collapse" >
>> > <t:graphicImage
>> value="images/blue-folder-closed.png"
>> > rendered="#{!t.nodeExpanded}" border="0"/ >
>> > </f:facet >
>> > <h:outputText value="#{node.description}"
>> > styleClass="nodeFolder"/ >
>> > <h:outputText value=" (#{node.childCount})"
>> > styleClass="childCount" rendered="#{!empty
>> node.children}"/ >
>> > </h:panelGroup >
>> > </f:facet >
>> > <f:facet name="document" >
>> > <h:panelGroup >
>> > <h:commandLink immediate="true"
>> styleClass="#{t.nodeSelected
>> > ? 'documentSelected':'document'}"
>> actionListener="#{t.setNodeSelected}" >
>> > <t:graphicImage
>> value="images/document.png" border="0"/ >
>> > <h:outputText value="#{node.description}"/ >
>> > <f:param name="docNum"
>> value="#{node.identifier}"/ >
>> > </h:commandLink >
>> > </h:panelGroup >
>> > </f:facet >
>> > </t:tree2 >
>> >
>> > </h:form >
>> > </f:view >
>> > </html >
>> >
>> >
>> > and in java code TreeBean I wrote like this
>> >
>> > public TreeNode getTreeData()
>> > {
>> > TreeNode treeData = new
>> TreeNodeBase("foo-folder", "Inbox", false);
>> > TreeNodeBase personNode = new
>> TreeNodeBase("person", "Frank Foo",
>> > false);
>> > personNode.getChildren().add(new
>> TreeNodeBase("foo-folder",
>> > "Requires Foo", false));
>> > TreeNodeBase folderNode = new
>> TreeNodeBase("foo-folder", "Requires
>> > Foo Reviewer", false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X050001",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X050002",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X050003",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > personNode.getChildren().add(new
>> TreeNodeBase("foo-folder",
>> > "Requires Foo Recommendation", false));
>> > folderNode = new TreeNodeBase("foo-folder",
>> "Requires Foo Approval",
>> > false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J050001",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J050002",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J050003",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "E050011",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "R050002",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "C050003",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > folderNode = new TreeNodeBase("bar-folder",
>> "Requires Bar
>> > Processing", false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X050003",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X050011",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "F050002",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "G050003",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > folderNode = new TreeNodeBase("bar-folder",
>> "Requires Bar Approval",
>> > false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J050006",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J050007",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > treeData.getChildren().add(personNode);
>> > personNode = new TreeNodeBase("person",
>> "Betty Bar", false);
>> > personNode.getChildren().add(new
>> TreeNodeBase("foo-folder",
>> > "Requires Foo", false));
>> > folderNode = new TreeNodeBase("foo-folder",
>> "Requires Foo Reviewer",
>> > false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X012000",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X013000",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "X014000",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > folderNode = new TreeNodeBase("foo-folder",
>> "Requires Foo
>> > Recommendation", false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J010026",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J020002",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J030103",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "E030214",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "R020444",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "C010000",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > personNode.getChildren().add(new
>> TreeNodeBase("foo-folder",
>> > "Requires Foo Approval", false));
>> > folderNode = new TreeNodeBase("bar-folder",
>> "Requires Bar
>> > Processing", false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "T052003",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "T020011",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > folderNode = new TreeNodeBase("bar-folder",
>> "Requires Bar Approval",
>> > false);
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J010002",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "J030047",
>> > true));
>> > folderNode.getChildren().add(new
>> TreeNodeBase("document", "F030112",
>> > true));
>> > personNode.getChildren().add(folderNode);
>> > treeData.getChildren().add(personNode);
>> > return treeData;
>> > }
>> >
>> > It does not work . I don't know why
>> >
>> > ________________________________
>> >
>> > davy.mailing
>> > 2006-09-19
>> > ________________________________
>> >
>> > 发件人: Andrew Robinson
>> > 发送时间: 2006-09-19 10:43:00
>> > 收件人: MyFaces Discussion
>> > 抄送:
>> > 主题: Re: Questions about tree2 and Facelet
>> >
>> >
>> >
>> > There is nothing special to do when using tree2 with
>> > facelets.
>> >
>> > On 9/18/06, davy.mailing <[EMAIL PROTECTED] > wrote:
>> > >
>> > >
>> > > Dear all
>> > >
>> > > I am using tree2 and facelet now
>> > >
>> > > Who can tell me how to use tree2 in facelet and
>> > what's more a example will
>> > > be better
>> > >
>> > > thanks in advance
>> > >
>> > > ________________________________
>> > >
>> > > davy.mailing
>> > > 2006-09-18
>> >
>
>
--
View this message in context:
http://www.nabble.com/Questions-about-tree2-and-Facelet-tf2290873.html#a6421098
Sent from the MyFaces - Users mailing list archive at Nabble.com.