1 2 Previous Next 15 Replies Latest reply on Nov 10, 2008 11:00 PM by Nick Belaevski

    rich : tree // rich:tree // trying to make the basics work

    Wolf Benz Newbie

      Hi List,

      - To the Jboss guys: Cf earlier post: there is a void when it comes to doc / online material to make the rich:tree work. All the "RichFaces Reference" has to say about it, is:

      HtmlTreeNode root = new HtmlTreeNode(); :-)

      Therefore, an attempt (though it doesn't work, so some advice is welcome)

      In my page, I do the following:

      <rich:tree switchType="client" adviseNodeOpened="true" value="#{menuBean.tree}" var="node" nodeFace= "#{node.type}" showConnectingLines="true">
      <rich:treeNode type="root" >
      <h:outputText value="#{node.attributes.name}" />
      </rich:treeNode>

      <rich:treeNode type="menuCategory" >
      <h:outputText value="#{node.attributes.name}" />
      </rich:treeNode>

      <rich:treeNode type="menuItem" >
      <h:commandLink action="#{useCaseBean.pickUseCase}" immediate="true">
      <f:param name="usecase" value="#{node.attributes.link}" />
      <h:outputText id="TreeNode" value="#{node.attributes.name}" style="font-family:verdana;"/>
      </h:commandLink>
      </rich:treeNode>
      </rich:tree>

      As you have guessed, it's a menu to allow the user to choose it's use case.
      In my Menu backing bean, I have:
      ("private HtmlTree tree" with seters and getters are set, this is the tree init() method: )

      setTree(new HtmlTree()); getTree().setSwitchType("client");

      HtmlTreeNode root = new HtmlTreeNode();
      root.setType("root");
      root.getAttributes().put("name", "Use Cases");
      // Add the root node to the Tree:
      getTree().getChildren().add(root);


      // Add first menu Category to root: the "stations" category:
      HtmlTreeNode stationsMenuCat = new HtmlTreeNode();
      stationsMenuCat.setType("menuCategory");
      stationsMenuCat.getAttributes().put("name", "Stations"));
      stationsMenuCat.getAttributes().put("link", "tree_stations");
      root.getChildren().add(stationsMenuCat);

      // Add first menu Item to the station mens category: "Stations Programming"
      HtmlTreeNode stationsMenuItem = new HtmlTreeNode();
      stationsMenuItem.setType("menuItem");
      stationsMenuItem.getAttributes().put("name", "Stations Programming"));
      stationsMenuItem.getAttributes().put("link", "tree_progrStations");
      stationsMenuCat.getChildren().add(stationsMenuItem);

      ... This throws me an error:
      java.lang.ClassCastException: org.richfaces.component.html.HtmlTree
      at org.richfaces.model.SwingTreeDataModel.setWrappedData(SwingTreeDataModel.java:75)
      at org.richfaces.component.UITree.createDataModel(UITree.java:588)
      at org.richfaces.component.UITree.resetDataModel(UITree.java:354)
      at org.ajax4jsf.component.UIDataAdaptor.encodeBegin(UIDataAdaptor.java:1176)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
      at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
      at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
      at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
      at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
      at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
      at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
      at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)


      Apart from resolving the error, I have another question:
      I use the 'attributes" for being able, at the client side, to retrieve these attributes and, like shown higher, e.g. use them for a link. Is this the proper way to do this?
      Or is it required to work with an HtmlOutputText or so?

      Second: is the "data" var of a TreeNode just a RichFaces wrapper around the "attributes" or don't they have anything to do with each other?

      Sorry for all the questions - I hope someone bothers to clear this up (with such ttle, hopefully a lot of people can use it afterwards)

      Thanks in advance for help,
      -Wolf

        • 2. Re: rich : tree // rich:tree // trying to make the basics wo
          Nick Belaevski Master

          Hello,

          Please devote some more time to user guide & to code samples found at live demo.

          There is no need to create HtmlTreeNode components for each tree node you'd like to display, they're serving as facets defining presentation for nodes of different types. You should use instance of org.richfaces.model.TreeNode or javax.swing.tree.TreeNode (collection of is possible too) as a value. Another variant: use rich:treeNodesAdaptor/rich:recursiveTreeNodesAdaptor

          • 3. Re: rich : tree // rich:tree // trying to make the basics wo
            Wolf Benz Newbie

            Dear Nbelaevski,
            Thanks for replying.
            Believe me, I had looked at
            - the manual
            - the refernce (downloaeded with the distribution)
            - the online exaple

            A agree with former post (perform a search if you wish) that the doc is not adequate (enough).
            To back that up:

            1/ This was the first tree I tried to render: (simpler seems impossible)

            <h:form>
            <rich:tree switchType="client" value="#{menuBean.rootNode}" />
            </h:form>


            & in my bean:
            rootNode = new TreeNodeImpl();

            TreeNodeImpl childNode = new TreeNodeImpl();
            childNode.setData("Some Text");
            rootNode.addChild("1", childNode);

            This gave me:
            java.lang.ClassCastException: java.lang.String
            at org.richfaces.renderkit.TreeRendererBase$DataVisitorWithLastElement$1.adviseNodeOpened(TreeRendererBase.java:312)
            at org.richfaces.renderkit.TreeRendererBase$DataVisitorWithLastElement.processAdvisors(TreeRendererBase.java:329)
            at org.richfaces.renderkit.TreeRendererBase$DataVisitorWithLastElement.process(TreeRendererBase.java:241)
            at org.richfaces.model.AbstractTreeDataModel.processElement(AbstractTreeDataModel.java:119)
            at org.richfaces.model.TreeDataModel.doWalk(TreeDataModel.java:112)
            at org.richfaces.model.TreeDataModel.doWalk(TreeDataModel.java:157)
            at org.richfaces.model.TreeDataModel.walk(TreeDataModel.java:181)
            at org.richfaces.component.UITree.walk(UITree.java:386)
            at org.richfaces.renderkit.TreeRendererBase.writeContent(TreeRendererBase.java:631)
            at org.richfaces.renderkit.TreeRendererBase.encodeChildren(TreeRendererBase.java:574)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
            at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
            at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
            at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
            at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
            at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
            at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
            at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
            at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
            at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
            at java.lang.Thread.run(Thread.java:613)

            2/ The online demo example you refer to, is not clear. (IMHO)
            It talks of a node "types", "title" and "name" but nowhere in the code to support it it is shown how to add type, name or title. Nor anywhere else.
            (Btw that's why I guessed it had been injected via the attributes)

            By a princilple, I only ask for help here at the forum, if I really think there's smth unclear or missing. I have looked at all info available to me and was unable to make it work. :-(
            -Wolf

            • 4. Re: rich : tree // rich:tree // trying to make the basics wo
              Wolf Benz Newbie

              Nbelaevski, should you have an example (code & html) where is whown how to use this "type" and "name" (/title), would you mind sharing this with the Forum?
              It would be a great help.
              Kind Regards,
              -Wolf

              • 5. Re: rich : tree // rich:tree // trying to make the basics wo
                Ilya Shaikovsky Master

                sources of our livedemo could be freely checked out from SVN. So, you could also freely explore server side data of example trees.

                visit our wiki to get the SVN link to sources

                • 6. Re: rich : tree // rich:tree // trying to make the basics wo
                  Wolf Benz Newbie

                  Dear Nbelaevski,
                  Thanks again for follow up.
                  I had a look on the Wiki (thanks for the idea - other great examples were there - have they ever thought of adding that to the download site? Would make things simpler)

                  Yet, the setup there is quite complex; they're writing classes implementing the Treenode interface etc.
                  Lost of the times, people just wish to build a simple tree.
                  Liek me: I just want a dead simple tree, that can serve as a menu!
                  Basically:
                  Use Cases -
                  Stations -
                  Program Stations.

                  This was simple to accomplish in MyFaces and IceFaces but with RichFaces, form some reason(probabely my bad) I don't seem to get it to work fast in a simple way.
                  Is this possible with RichFaces in the way i *tried* to do it in my first posting or do I really need to code against the TreeNode interface for all my (in this case 3) menu levels??
                  & What is wrong with my first code?
                  Sorry for all the questions Nbelaevski. I really appreciate the effort you put in trying to help RichFace newbies like me.

                  -Wolf



                  • 7. Re: rich : tree // rich:tree // trying to make the basics wo
                    Wolf Benz Newbie

                    OK - just to prove I'm not lazy (after last comment, you might have gotten that impression), I did write a class to implement the TreeNode Interface: I called it TreeMenuItem. It serves for all levels of the tree, but only for Leaf elemements, the "menLink" value is used.

                    package eu.braunfusor.web.beans;

                    import java.util.Iterator;
                    import java.util.List;
                    import java.util.Map;
                    import java.util.TreeMap;

                    import org.richfaces.model.TreeNode;


                    public class TreeMenuItem implements TreeNode {

                    static final long serialVersionUID = 6514596192023597908L;

                    /** The String the will actually be seen in the Menu. */
                    private String menuString;

                    /** The optional tooltip you can provide. */
                    private String menuTooltip;

                    /** The link provided for a menu item to kick-off an action from there. */
                    private String menuLink;

                    /** The name of a category of this Menu Item. E.g. "root" - "menuCategory" - "menuItem" etc. */
                    private String menuCategoryName;

                    /** Whether or not this MenuItem is a leaf. */
                    private boolean leaf;

                    /** The Children of this MenuItem. */
                    private Map<String, Object> children;

                    /** The Parent of this MenuItem. */
                    private TreeMenuItem parent;

                    /** The default constructor */
                    public TreeMenuItem(String menuString){
                    this.menuString = menuString;
                    }

                    /** A fully-dressed constructor. */
                    public TreeMenuItem(String MenuString, String MenuLink, String MenuCategoryName, String MenuTooltip, TreeMenuItem Parent){
                    this.menuString = MenuString;
                    this.menuLink = MenuLink;
                    this.menuTooltip = MenuTooltip;
                    this.parent = Parent;
                    this.menuCategoryName = MenuCategoryName;

                    if(Parent != null)getParent().addChild(MenuString, this);
                    }

                    public TreeMenuItem getChild(Object menuString) {
                    return (TreeMenuItem)children.get((String)menuString);
                    }

                    public Iterator getChildren() {
                    return (Iterator)children.keySet().iterator();
                    }

                    public Object getData() {
                    return this;
                    }

                    public TreeMenuItem getParent() {
                    return parent;
                    }

                    public boolean isLeaf() {
                    if(children == null)return true;
                    else return children.keySet().isEmpty();
                    }

                    public void removeChild(Object menuString) {
                    children.remove((String)menuString);
                    }

                    public void setData(Object data) {
                    menuCategoryName= ((TreeMenuItem)data).getMenuCategoryName();
                    menuLink= ((TreeMenuItem)data).getMenuLink();
                    menuString= ((TreeMenuItem)data).getMenuString();
                    menuTooltip= ((TreeMenuItem)data).getMenuTooltip();
                    children= ((TreeMenuItem)data).children;
                    parent= ((TreeMenuItem)data).getParent();

                    }

                    public void setParent(TreeNode Parent) {
                    this.parent = (TreeMenuItem)Parent;
                    }


                    public String getMenuString() {
                    return menuString;
                    }

                    public void setMenuString(String menuString) {
                    this.menuString = menuString;
                    }

                    public String getMenuTooltip() {
                    return menuTooltip;
                    }

                    public void setMenuTooltip(String menuTooltip) {
                    this.menuTooltip = menuTooltip;
                    }

                    public String getMenuLink() {
                    return menuLink;
                    }

                    public void setMenuLink(String menuLink) {
                    this.menuLink = menuLink;
                    }

                    public void addChild(Object menuString, TreeNode child) {
                    if(children == null)children = new TreeMap<String, Object>();
                    children.put((String)menuString, (TreeMenuItem)child);

                    }

                    public String getMenuCategoryName() {
                    return menuCategoryName;
                    }

                    public void setMenuCategoryName(String menuCategoryName) {
                    this.menuCategoryName = menuCategoryName;
                    }

                    }

                    This allows in my menuBean, I can just add:

                    protected void initTree() {

                    rootTreeNode = new TreeMenuItem("Braunfusor",null,"root",null,null);

                    // Add a first menu Category to root: the "menuCat" category:
                    TreeMenuItem stationsMenuCat = new TreeMenuItem("Stations", null, "menuCat","Stations Use Cases", rootTreeNode);

                    // Add first menu Item to the menuCat category: "Program Stations"
                    TreeMenuItem stationsMenuItem = new TreeMenuItem("Program Stations", "progr_stations", "menuItem","Program Stations", stationsMenuCat);

                    }

                    & In my page:

                    <rich:tree switchType="client" value="#{menuBean.rootTreeNode.data}" var="item" nodeFace="#{item.menuCategoryName}">
                    <rich:treeNode menuCategoryName="root">
                    <h:outputText value="#{item.menuString}" />
                    </rich:treeNode>
                    <rich:treeNode menuCategoryName="menuCat" >
                    <h:outputText value="#{item.menuString}" />
                    </rich:treeNode>
                    <rich:treeNode menuCategoryName="menuItem" >
                    <h:commandLink action="#{useCaseBean.pickUseCase}" immediate="true">
                    <f:param name="usecase" value="#{item.menuLink}" />
                    <h:outputText id="TreeNode" value="#{item.menuString}" style="font-family:verdana;"/>
                    </h:commandLink>
                    </rich:treeNode>
                    </rich:tree>


                    Yet, I still get that nasty String Exception:

                    java.lang.ClassCastException: java.lang.String
                    at org.richfaces.model.TreeDataModel.doWalk(TreeDataModel.java:120)
                    at org.richfaces.model.TreeDataModel.walk(TreeDataModel.java:181)
                    at org.richfaces.component.UITree.walk(UITree.java:386)
                    at org.richfaces.renderkit.TreeRendererBase.writeContent(TreeRendererBase.java:631)
                    at org.richfaces.renderkit.TreeRendererBase.encodeChildren(TreeRendererBase.java:574)
                    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
                    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                    at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
                    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
                    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                    at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
                    at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                    at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
                    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
                    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
                    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
                    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
                    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                    at java.lang.Thread.run(Thread.java:613)

                    That's whole lot of code to make a 3 element tree... :-(
                    Soit, apparently I'm still smth wrong. Can someone advise what I'm still doing wrong?

                    -Wolf

                    • 8. Re: rich : tree // rich:tree // trying to make the basics wo
                      Janet Barbeau Newbie

                      I and another developer are trying to do this exact thing and have run into the same issue. All we want is a simple tree with a link on the leaf so that it can be used as a menu. I do not think you are lazy since we have worked days trying to make this work properly. If you find a solution - please post & we will do the same. Thanks!

                      • 9. Re: rich : tree // rich:tree // trying to make the basics wo
                        Wolf Benz Newbie

                        Thanks for the empathy JBarbeau. To me as well, it is indeed strange that an implementation like JBoss'es RichFaces apparently(that is my conclusion after all these days) has no way simple way to render a dead simple tree(3 static strings!).
                        This is the first of 4 implementation I come across (after Myfaces Tomahawk & Trinidad and IceFaces) where it is so hard to do just this. If I'm wrong, Id love to see myself stand corrected by a more experienced JBoss user, but so far, after all these days, I have little hope that will still happen. (Perhaps that explains why people wish to combine Tomahawk with RichFaces?)

                        -Wolf.

                        • 10. Re: rich : tree // rich:tree // trying to make the basics wo
                          Dirk Peeters Newbie

                          Having the same problem here.
                          (same situation - not at many attempts as Wolf but still the same error though)
                          And it seems no one from JBoss cares either. Strange, I had expected this community to be more vibrant. Perhaps Jboss primarily focusses on Hibernate and care less about the rest?
                          Has anyone had any success in trying simple trees liek this? Of so, please post/explain why/what is going wrong.

                          Wolf, do you have any further luck with your tree? :-)

                          -Dirk

                          • 11. Re: rich : tree // rich:tree // trying to make the basics wo
                            Wolf Benz Newbie

                            Has really no one a clue on the causes/errors made??
                            Is RichFaces used so little or is the tree component yet to be discovered, or does no one use the tree component beacuse of these problems?
                            Help!
                            -Wolf

                            • 12. Re: rich : tree // rich:tree // trying to make the basics wo
                              Janet Barbeau Newbie

                              Well, seems that others are having the same issue - we still have not found the solution & tomahawk tree is looking really good. However, what do you think about mixing libraries. I am afraid to do that since diff versions may require diff libs & they may start to conflict with one another. Any thoughts?

                              • 13. Re: rich : tree // rich:tree // trying to make the basics wo
                                Nicole Schweighardt Novice

                                Hi,

                                I am beginner concerning the use of richfaces and I searched the basic functionality that you describe too. And I had similar problems with the use of trees because they are very complex.
                                But I think the RichFaces component <rich:panelMenu...> could be the component you could use for your purpose?

                                http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panelMenu

                                I did not find it directly because it is not place under "Rich Menu" but in "Rich Output" :-) but now I am happy to have it.

                                I hope that could help you?
                                Greetings
                                NSchweig[/url]

                                • 14. Re: rich : tree // rich:tree // trying to make the basics wo
                                  Steven Wright Newbie

                                  I too am trying to make simple tree work. Like everything else with Rich Faces the documentation sucks. If it was not required by my job I would never use Rich Faces. I have tried just about every example I can find and nothing works as expected. I dont want to download the f'n source code and pick through it, although I will because I dont have any choice.

                                  1 2 Previous Next