Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.15
    • Fix Version/s: 5.3
    • Component/s: None
    • Labels:
      None

      Description

      There is no recursion available for template, and one of the most common use case of recursion is tree structure traversal.
      it would be great if the core component library include a Tree component.

      I have an example tree component here :
      http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/interldap/interldap-wui-t5/trunk/src/main/java/org/interldap/wui/tapestry/components/Tree.java?view=markup&rev=97
      And an example of use :
      http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/interldap/interldap-wui-t5/trunk/src/t5-test/resources/org/interldap/wui/tapestry/pages/TestTree.html?view=markup&rev=139

      Basically, the component take a DefaultMutableTreeNode as parameter and print it in a preorder traversal, and one can specify a (unique) html element as a level separator. But this component remains really simple and limited.
      Moreover, as I'm a beginner with Tapestry, it could be totally not idiomatic of the framework use (I try to base my implementation on "loop" component).

      But it handles the most important functional requirement I want to see for this component.
      So, that is my (very basic) "wish list" for a tree component :

      • the component traverse a Tree given in parameter
      • DefaultMutableTreeNode may be used for the Java representation for the tree ;
      • let the possibility to configure the traversal order, preorder is a good default ;
      • each iteration gives access to the current node ;
      • the body render for each ieration is free (as in loop) ;
      • "level" can be decorated (a tag or list of tag open before the level, closed after) ;
        There is surely others things to add

      hope it will gives you other ideas !

      Francois

        Activity

        Hide
        Francois Armand added a comment -

        Several other users have build the same kind of component, especially to deals with "folder" structure. Some wiki entries refer to such work :
        http://wiki.apache.org/tapestry/Tapestry5TreeComponent
        http://wiki.apache.org/tapestry/Tapestry5HowToCreateYourOwnComponents

        Show
        Francois Armand added a comment - Several other users have build the same kind of component, especially to deals with "folder" structure. Some wiki entries refer to such work : http://wiki.apache.org/tapestry/Tapestry5TreeComponent http://wiki.apache.org/tapestry/Tapestry5HowToCreateYourOwnComponents

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Francois Armand
          • Votes:
            9 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development