You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2012/05/22 14:18:30 UTC

svn commit: r1341439 [1/3] - in /myfaces/tobago/trunk: ./ tobago-core/src/main/java-jsf-1.1-todo/ tobago-core/src/main/java-jsf-1.1-todo/org/apache/myfaces/tobago/internal/taglib/component/ tobago-core/src/main/java-jsf-1.2-todo/ tobago-core/src/main/j...

Author: lofwyr
Date: Tue May 22 12:18:26 2012
New Revision: 1341439

URL: http://svn.apache.org/viewvc?rev=1341439&view=rev
Log:
TOBAGO-1049: Tree inside of the Sheet (aka TreeTable)
TOBAGO-1139: Supporting ValueChangeListener, Disabled, Required, Converter, ValidatorMessage, RequiredMessage and ConverterMessage for tc:treeSelect 
 - merged from branch

Added:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIData.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIData.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeListbox.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeListbox.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/model/
      - copied from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/model/
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsShowRoot.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsShowRoot.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsShowRootJunction.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsShowRootJunction.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/ExpandedState.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/model/ExpandedState.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MarkedState.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MarkedState.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeDataModel.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeDataModel.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeState.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeState.java
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/ExpandedStateUnitTest.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-core/src/test/java/org/apache/myfaces/tobago/model/ExpandedStateUnitTest.java
    myfaces/tobago/trunk/tobago-example/tobago-example-data/src/main/java/org/apache/myfaces/tobago/example/data/CantorInterval.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-data/src/main/java/org/apache/myfaces/tobago/example/data/CantorInterval.java
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/sheet/sheet-tree.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/sheet/sheet-tree.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-command.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-command.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-expanded.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-expanded.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-infinite.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-infinite.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-marked-with-model.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-marked-with-model.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-marked-without-model.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-marked-without-model.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-simple-with-data.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-simple-with-data.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-simple.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-simple.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/treeMenu/treeMenu-command.xhtml
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/main/webapp/tc/treeMenu/treeMenu-command.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/tree/
      - copied from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/tree/
    myfaces/tobago/trunk/tobago-theme/tobago-theme-richmond/src/main/resources/org/apache/myfaces/tobago/renderkit/html/richmond/standard/image/minus.gif
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-richmond/src/main/resources/org/apache/myfaces/tobago/renderkit/html/richmond/standard/image/minus.gif
    myfaces/tobago/trunk/tobago-theme/tobago-theme-richmond/src/main/resources/org/apache/myfaces/tobago/renderkit/html/richmond/standard/image/plus.gif
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-richmond/src/main/resources/org/apache/myfaces/tobago/renderkit/html/richmond/standard/image/plus.gif
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRendererBase.java
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRendererBase.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/image/minus.gif
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/image/minus.gif
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/image/plus.gif
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/image/plus.gif
    myfaces/tobago/trunk/tobago-theme/tobago-theme-speyside/src/main/resources/org/apache/myfaces/tobago/renderkit/html/speyside/standard/image/minus.gif
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-speyside/src/main/resources/org/apache/myfaces/tobago/renderkit/html/speyside/standard/image/minus.gif
    myfaces/tobago/trunk/tobago-theme/tobago-theme-speyside/src/main/resources/org/apache/myfaces/tobago/renderkit/html/speyside/standard/image/plus.gif
      - copied unchanged from r1341423, myfaces/tobago/branches/tobago-tree-table/tobago-theme/tobago-theme-speyside/src/main/resources/org/apache/myfaces/tobago/renderkit/html/speyside/standard/image/plus.gif
Modified:
    myfaces/tobago/trunk/   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.1-todo/   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.1-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardFinishTag.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.1-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardNextTag.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.2-todo/   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.2-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardFinishTag.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.2-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardNextTag.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Facets.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Tags.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/TreeModelBuilder.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ResourceUtils.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeData.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SheetTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeDataTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeListboxTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeMenuTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeNodeTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeSelectTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/DefaultMutableTreeNodeAnalyser.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MixedTreeModel.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/Node.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SheetState.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeAnalyser.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreePath.java   (contents, props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/Wizard.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java
    myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-1.0.29.dtd   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-1.0.30.dtd   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-1.0.34.dtd   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-1.5.xsd   (props changed)
    myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config_1_0.dtd   (props changed)
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/MixedTreeModelUnitTest.java
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/NodeUnitTest.java   (props changed)
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/util/Parameterized.java   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/main/resources/META-INF/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/main/resources/log4j.xml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/main/webapp/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/main/webapp/addressbook-resource/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/main/webapp/addressbook-resource/html/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/main/webapp/addressbook-resource/html/standard/standard/property/error/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-addressbook/src/test/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-data/src/main/java/org/apache/myfaces/tobago/example/data/CategoryTree.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Navigation.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/tags/layout/overview.tag   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/tags/layout/plain.tagx   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/best-practice/tool-bar-customizer.xhtml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/03-tree/00/tree-editor.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/03-tree/01/treeMenu-different-types.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/03-tree/tree.xhtml   (contents, props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/footer.xhtml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/header.xhtml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.jsp
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml   (contents, props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/reference/layout-test.jsp   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-experimental/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-experimental/src/main/java-jsf-1.1/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/java/org/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/java/org/apache/myfaces/tobago/example/test/DirectoryBrowser.java   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/java/org/apache/myfaces/tobago/example/test/PageItem.java   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/java/org/apache/myfaces/tobago/example/test/TestPageFilter.java   (contents, props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/java/org/apache/myfaces/tobago/example/test/TreeController.java
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/WEB-INF/tobago-config.xml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/navigation.xhtml   (contents, props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-select.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/tree/tree-show-attributes.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/treeListbox/treeListbox.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/treeMenu/treeMenu-simple.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tf/wizard/navi/fileIntoCondition.xhtml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tf/wizard/navi/filter.xhtml   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/AutomaticSeleniumTest.java   (props changed)
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/SeleniumTest.java   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-deprecation/   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-facelets/src/main/java/org/apache/myfaces/tobago/facelets/MetaInfResourcesClasspathResourceResolver.java   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-facelets/src/main/resources/META-INF/wizardFinish.xml   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-facelets/src/main/resources/META-INF/wizardNext.xml   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-facelets/src/main/resources/META-INF/wizardPrevious.xml   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-facelets/src/main/resources/META-INF/wizardTrain.xml   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.1/   (props changed)
    myfaces/tobago/trunk/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/   (props changed)
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java-jsf-1.1/javax/   (props changed)
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java   (props changed)
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeMarkedListener.java   (props changed)
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java   (props changed)
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedEvent.java   (props changed)
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeCommandRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeIconRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeIndentRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeLabelRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxNodeRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeSelectRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css
    myfaces/tobago/trunk/tobago-theme/tobago-theme-speyside/src/main/resources/org/apache/myfaces/tobago/renderkit/html/speyside/standard/style/style.css
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/util/RenderUtils.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/jquery-ui/   (props changed)
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-tree.js

Propchange: myfaces/tobago/trunk/
------------------------------------------------------------------------------
    svn:mergeinfo = /myfaces/tobago/branches/tobago-tree-table:1226794-1341423

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.1-todo/
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.1-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardFinishTag.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.1-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardNextTag.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.2-todo/
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.2-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardFinishTag.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java-jsf-1.2-todo/org/apache/myfaces/tobago/internal/taglib/component/WizardNextTag.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Facets.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
            ('svn:mergeinfo' removed)

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Tags.java
            ('svn:mergeinfo' removed)

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/TreeModelBuilder.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/TreeModelBuilder.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/TreeModelBuilder.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/TreeModelBuilder.java Tue May 22 12:18:26 2012
@@ -21,10 +21,28 @@ import org.apache.myfaces.tobago.model.M
 
 import javax.faces.context.FacesContext;
 
+/**
+ * @deprecated since XXX 1.6.0 ???
+ */
+@Deprecated
 public interface TreeModelBuilder {
 
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
   void buildTreeModelBegin(FacesContext facesContext, MixedTreeModel model);
+
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
   void buildTreeModelChildren(FacesContext facesContext, MixedTreeModel model);
+
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
   void buildTreeModelEnd(FacesContext facesContext, MixedTreeModel model);
 
 }

Propchange: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ResourceUtils.java
            ('svn:mergeinfo' removed)

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java Tue May 22 12:18:26 2012
@@ -18,7 +18,6 @@ package org.apache.myfaces.tobago.intern
  */
 
 import org.apache.myfaces.tobago.compat.FacesUtils;
-import org.apache.myfaces.tobago.compat.InvokeOnComponent;
 import org.apache.myfaces.tobago.component.Attributes;
 import org.apache.myfaces.tobago.component.ColumnEvent;
 import org.apache.myfaces.tobago.component.ComponentTypes;
@@ -37,14 +36,14 @@ import org.apache.myfaces.tobago.layout.
 import org.apache.myfaces.tobago.layout.LayoutContainer;
 import org.apache.myfaces.tobago.layout.LayoutManager;
 import org.apache.myfaces.tobago.layout.LayoutTokens;
+import org.apache.myfaces.tobago.model.ExpandedState;
 import org.apache.myfaces.tobago.model.SheetState;
 import org.apache.myfaces.tobago.renderkit.LayoutComponentRenderer;
+import org.apache.myfaces.tobago.util.ComponentUtils;
 import org.apache.myfaces.tobago.util.CreateComponentUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.faces.FacesException;
-import javax.faces.component.ContextCallback;
 import javax.faces.component.UIColumn;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -58,9 +57,9 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-public abstract class AbstractUISheet extends javax.faces.component.UIData
-    implements SheetStateChangeSource, SortActionSource, InvokeOnComponent, OnComponentPopulated,
-    LayoutContainer, LayoutComponent, SupportsRenderedPartially{
+public abstract class AbstractUISheet extends AbstractUIData
+    implements SheetStateChangeSource, SortActionSource, OnComponentPopulated,
+    LayoutContainer, LayoutComponent, SupportsRenderedPartially {
 
   private static final Logger LOG = LoggerFactory.getLogger(AbstractUISheet.class);
 
@@ -263,13 +262,6 @@ public abstract class AbstractUISheet ex
   }
 
   /**
-   * @return Is the (maximum) number of rows to display set to zero?
-   */
-  public boolean isRowsUnlimited() {
-    return getRows() == 0;
-  }
-
-  /**
    * @return Should the paging controls be rendered? Either because of the need of paging or because
    * the show is enforced by {@link #isShowPagingAlways()}
    */
@@ -380,8 +372,8 @@ public abstract class AbstractUISheet ex
 
   public List<UIColumn> getAllColumns() {
     List<UIColumn> columns = new ArrayList<UIColumn>();
-    for (UIComponent kid : (List<UIComponent>) getChildren()) {
-      if (kid instanceof UIColumn && !(kid instanceof ColumnEvent)) {
+    for (UIComponent kid : (List<UIComponent>) ComponentUtils.findDescendantList(this, UIColumn.class)) {
+      if (!(kid instanceof ColumnEvent)) {
         columns.add((UIColumn) kid);
       }
     }
@@ -390,8 +382,8 @@ public abstract class AbstractUISheet ex
 
   public List<UIColumn> getRenderedColumns() {
     List<UIColumn> columns = new ArrayList<UIColumn>();
-    for (UIComponent kid : (List<UIComponent>) getChildren()) {
-      if (kid instanceof UIColumn && kid.isRendered() && !(kid instanceof ColumnEvent)) {
+    for (UIComponent kid : (List<UIComponent>) ComponentUtils.findDescendantList(this, UIColumn.class)) {
+      if (kid.isRendered() && !(kid instanceof ColumnEvent)) {
         columns.add((UIColumn) kid);
       }
     }
@@ -507,45 +499,6 @@ public abstract class AbstractUISheet ex
     return searchId;
   }
 
-  // todo: after removing jsf 1.1: @Override
-  public boolean invokeOnComponent(FacesContext facesContext, String clientId, ContextCallback callback)
-      throws FacesException {
-    // we may need setRowIndex on UISheet
-    int oldRowIndex = getRowIndex();
-    try {
-      String sheetId = getClientId(facesContext);
-      if (clientId.startsWith(sheetId)) {
-        String idRemainder = clientId.substring(sheetId.length());
-        if (LOG.isDebugEnabled()) {
-          LOG.debug("idRemainder = '" + idRemainder + "'");
-        }
-        if (idRemainder.matches("^:\\d+:.*")) {
-          idRemainder = idRemainder.substring(1);
-          int idx = idRemainder.indexOf(":");
-          try {
-            int rowIndex = Integer.parseInt(idRemainder.substring(0, idx));
-            if (LOG.isDebugEnabled()) {
-              LOG.debug("set rowIndex = '" + rowIndex + "'");
-            }
-            setRowIndex(rowIndex);
-          } catch (NumberFormatException e) {
-            LOG.warn("idRemainder = '" + idRemainder + "'", e);
-          }
-        } else {
-          if (LOG.isDebugEnabled()) {
-            LOG.debug("no match for '^:\\d+:.*'");
-          }
-        }
-      }
-
-      return FacesUtils.invokeOnComponent(facesContext, this, clientId, callback);
-
-    } finally {
-      // we should reset rowIndex on UISheet
-      setRowIndex(oldRowIndex);
-    }
-  }
-
   public void performPaging(PageActionEvent pageEvent) {
 
     int first;
@@ -657,7 +610,7 @@ public abstract class AbstractUISheet ex
           facesContext, ComponentTypes.SHEET_LAYOUT, RendererTypes.SHEET_LAYOUT, parent));
     }
   }
-  
+
   public LayoutManager getLayoutManager() {
     return (LayoutManager) getFacet(Facets.LAYOUT);
   }
@@ -670,6 +623,10 @@ public abstract class AbstractUISheet ex
     return true;
   }
 
+  public boolean isRendersRowContainer() {
+    return true;
+  }
+
   public abstract boolean isShowHeader();
 
   public Boolean getNeedVerticalScrollbar() {
@@ -679,4 +636,10 @@ public abstract class AbstractUISheet ex
   public void setNeedVerticalScrollbar(Boolean needVerticalScrollbar) {
     this.needVerticalScrollbar = needVerticalScrollbar;
   }
+
+  @Override
+  public ExpandedState getExpandedState() {
+    return getState().getExpandedState();
+  }
+
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java Tue May 22 12:18:26 2012
@@ -17,39 +17,78 @@ package org.apache.myfaces.tobago.intern
  * limitations under the License.
  */
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.tobago.compat.FacesUtils;
 import org.apache.myfaces.tobago.component.Attributes;
-import org.apache.myfaces.tobago.component.TreeModelBuilder;
+import org.apache.myfaces.tobago.internal.util.Deprecation;
 import org.apache.myfaces.tobago.layout.LayoutComponent;
+import org.apache.myfaces.tobago.model.ExpandedState;
+import org.apache.myfaces.tobago.model.MarkedState;
 import org.apache.myfaces.tobago.model.MixedTreeModel;
 import org.apache.myfaces.tobago.model.TreeSelectable;
+import org.apache.myfaces.tobago.model.TreeState;
 import org.apache.myfaces.tobago.util.ComponentUtils;
 
-import javax.faces.application.FacesMessage;
 import javax.faces.component.NamingContainer;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
-import javax.faces.validator.Validator;
-import javax.faces.validator.ValidatorException;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
-public abstract class AbstractUITree extends javax.faces.component.UIInput implements NamingContainer, LayoutComponent {
+public abstract class AbstractUITree extends AbstractUIData
+// extends javax.faces.component.UIInput
+    implements NamingContainer, LayoutComponent {
+
+  private static final Log LOG = LogFactory.getLog(AbstractUITree.class);
 
   public static final String MESSAGE_NOT_LEAF = "tobago.tree.MESSAGE_NOT_LEAF";
 
+  /** @deprecated since XXX 1.6.0 ??? */
+  @Deprecated
   public static final String SEP = "-";
 
+  /** @deprecated since XXX 1.6.0 ??? */
+  @Deprecated
   public static final String SELECT_STATE = SEP + "selectState";
+
+  /** @deprecated since XXX 1.6.0 ???  */
+  @Deprecated
   public static final String MARKED = "marked";
 
-  private MixedTreeModel model;
+  private TreeState state;
 
-  // XXX may be removed
-  private Set<String> expandedCache;
+  @Override
+  public void processValidators(FacesContext facesContext) {
+    final int last = hasRows() ? getFirst() + getRows() : Integer.MAX_VALUE;
+    for (int rowIndex = getFirst(); rowIndex < last; rowIndex++) {
+      setRowIndex(rowIndex);
+      if (!isRowAvailable()) {
+        break;
+      }
+      for (UIComponent child : getChildren()) {
+        child.processValidators(facesContext);
+      }
+    }
+  }
+
+  @Override
+  public void processUpdates(FacesContext facesContext) {
+    final int last = hasRows() ? getFirst() + getRows() : Integer.MAX_VALUE;
+    for (int rowIndex = getFirst(); rowIndex < last; rowIndex++) {
+      setRowIndex(rowIndex);
+      if (!isRowAvailable()) {
+        break;
+      }
+      for (UIComponent child : getChildren()) {
+        child.processUpdates(facesContext);
+      }
+    }
+  }
 
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
   public UIComponent getRoot() {
     // find the UITreeNode in the children.
     for (UIComponent child : (List<UIComponent>) getChildren()) {
@@ -63,31 +102,13 @@ public abstract class AbstractUITree ext
     return null;
   }
 
-  @Override
-  public void encodeEnd(FacesContext facesContext) throws IOException {
-    model = new MixedTreeModel();
-    expandedCache = new HashSet<String>();
-    for (Object child : getChildren()) {
-      if (child instanceof TreeModelBuilder) {
-        TreeModelBuilder builder = (TreeModelBuilder) child;
-        builder.buildTreeModelBegin(facesContext, model);
-        builder.buildTreeModelChildren(facesContext, model);
-        builder.buildTreeModelEnd(facesContext, model);
-      }
-    }
-
-    super.encodeEnd(facesContext);
-
-    model = null;
-    expandedCache = null;
-  }
-
+  /**
+   * @deprecated Since 1.5.0.
+   */
+  @Deprecated
   public MixedTreeModel getModel() {
-    return model;
-  }
-
-  public Set<String> getExpandedCache() {
-    return expandedCache;
+    Deprecation.LOG.error("Doesn't work anymore.");
+    return null;
   }
 
   @Override
@@ -109,22 +130,25 @@ public abstract class AbstractUITree ext
       return;
     }
 
-    if (ComponentUtils.isOutputOnly(this)) {
-      setValid(true);
-    } else {
-      // in tree first decode node and than decode children
-
-      decode(facesContext);
-
-      for (Iterator i = getFacetsAndChildren(); i.hasNext();) {
-        UIComponent uiComponent = ((UIComponent) i.next());
-        uiComponent.processDecodes(facesContext);
+    final int last = hasRows() ? getFirst() + getRows() : Integer.MAX_VALUE;
+    for (int rowIndex = getFirst(); rowIndex < last; rowIndex++) {
+      setRowIndex(rowIndex);
+      if (!isRowAvailable()) {
+        break;
+      }
+      for (UIComponent child : getChildren()) {
+        child.processDecodes(facesContext);
       }
     }
+    setRowIndex(-1);
+
+    decode(facesContext);
   }
 
+/* XXX
   @Override
   public void validate(FacesContext context) {
+*/
 
 // todo: validate must be written new, without TreeState
 /*
@@ -151,6 +175,7 @@ public abstract class AbstractUITree ext
     }
 */
 //  call all validators
+/*
     if (getValidators() != null) {
       for (Validator validator : getValidators()) {
         try {
@@ -174,7 +199,50 @@ public abstract class AbstractUITree ext
     // nothing to update for tree's
     // TODO: updating the model here and *NOT* in the decode phase
   }
+*/
+  public void setState(TreeState state) {
+    this.state = state;
+  }
+
+  public TreeState getState() {
+    if (state != null) {
+      return state;
+    } else {
+      if (FacesUtils.hasValueBindingOrValueExpression(this, Attributes.STATE)) {
+        final FacesContext facesContext = FacesContext.getCurrentInstance();
+        TreeState state = (TreeState)
+            FacesUtils.getValueFromValueBindingOrValueExpression(facesContext, this, Attributes.STATE);
+        if (state == null) {
+          state = new TreeState(new ExpandedState(2), new MarkedState());
+          FacesUtils.setValueOfBindingOrExpression(facesContext, state, this, Attributes.STATE);
+        }
+        return state;
+      } else {
+        state = new TreeState(new ExpandedState(2), new MarkedState());
+        return state;
+      }
+    }
+  }
+
+  public MarkedState getMarkedState() {
+    return getState().getMarkedState();
+  }
+
+  @Override
+  public ExpandedState getExpandedState() {
+    return getState().getExpandedState();
+  }
 
-  public abstract Object getState();
+  public void restoreState(FacesContext context, Object componentState) {
+    Object[] values = (Object[]) componentState;
+    super.restoreState(context, values[0]);
+    state = (TreeState) values[1];
+  }
 
+  public Object saveState(FacesContext context) {
+    Object[] values = new Object[2];
+    values[0] = super.saveState(context);
+    values[1] = state;
+    return values;
+  }
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeData.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeData.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeData.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeData.java Tue May 22 12:18:26 2012
@@ -17,475 +17,73 @@ package org.apache.myfaces.tobago.intern
  * limitations under the License.
  */
 
-import org.apache.commons.lang.ObjectUtils;
-import org.apache.myfaces.tobago.compat.FacesUtils;
+import org.apache.myfaces.tobago.component.OnComponentCreated;
 import org.apache.myfaces.tobago.component.TreeModelBuilder;
+import org.apache.myfaces.tobago.internal.util.Deprecation;
 import org.apache.myfaces.tobago.model.MixedTreeModel;
-import org.apache.myfaces.tobago.model.Node;
-import org.apache.myfaces.tobago.model.TreePath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import javax.faces.FacesException;
-import javax.faces.component.ContextCallback;
+import javax.el.ValueExpression;
 import javax.faces.component.NamingContainer;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
-import javax.faces.event.AbortProcessingException;
-import javax.faces.event.FacesEvent;
-import javax.faces.event.FacesListener;
-import javax.faces.event.PhaseId;
-import javax.swing.tree.DefaultMutableTreeNode;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
 
+/**
+ * @deprecated since XXX 1.6.0 ???
+ */
+@Deprecated
 public abstract class AbstractUITreeData extends javax.faces.component.UIInput
-    implements NamingContainer, TreeModelBuilder {
-
-  private static final Logger LOG = LoggerFactory.getLogger(AbstractUITreeData.class);
+    implements NamingContainer, TreeModelBuilder, OnComponentCreated {
 
   public static final String COMPONENT_TYPE = "org.apache.myfaces.tobago.TreeData";
 
-  private String var;
-
-  private DefaultMutableTreeNode currentNode;
-
-  private TreePath rowIndex;
-
-  // XXX hack: fix this if there is a Listener
-  private Object marked;
-
-  // Holds for each node the states of the child components of this UITreeData.
-  private Map<TreePath, Object> pathStates = new HashMap<TreePath, Object>();
-
-  @Override
-  public void processDecodes(FacesContext facesContext) {
-
-    decodeNodes(facesContext, (DefaultMutableTreeNode) getValue(), new TreePath(0));
-  }
-
-  private void decodeNodes(FacesContext facesContext, DefaultMutableTreeNode node, TreePath position) {
-
-    setRowIndex(facesContext, position);
-    LOG.debug("path index (decode) = '" + position + "'");
-    AbstractUITreeNode templateComponent = getTemplateComponent();
-    templateComponent.processDecodes(facesContext);
-    setRowIndex(facesContext, null);
-
-    // XXX hack: fix this if there is a Listener
-    if (templateComponent.isMarked()) {
-      marked = templateComponent.getValue();
-    }
-
-    int index = 0;
-    for (Enumeration e = node.children(); e.hasMoreElements();) {
-      DefaultMutableTreeNode sub = (DefaultMutableTreeNode) e.nextElement();
-      decodeNodes(facesContext, sub, new TreePath(position, index));
-      index++;
-    }
-  }
-
-  @Override
-  public void decode(FacesContext facesContext) {
-
-  }
-
-  @Override
-  public void processValidators(FacesContext facesContext) {
-    validateNodes(facesContext, (DefaultMutableTreeNode) getValue(), new TreePath(0));
-  }
-
-  private void validateNodes(FacesContext facesContext, DefaultMutableTreeNode node, TreePath position) {
-
-    setRowIndex(facesContext, position);
-    LOG.debug("path index (validate) = '" + position + "'");
-    AbstractUITreeNode templateComponent = getTemplateComponent();
-    templateComponent.processValidators(facesContext);
-    setRowIndex(facesContext, null);
-
-    int index = 0;
-    for (Enumeration e = node.children(); e.hasMoreElements();) {
-      DefaultMutableTreeNode sub = (DefaultMutableTreeNode) e.nextElement();
-      validateNodes(facesContext, sub, new TreePath(position, index));
-      index++;
-    }
-  }
-
-  @Override
-  public void processUpdates(FacesContext facesContext) {
-    updateNodes(facesContext, (DefaultMutableTreeNode) getValue(), new TreePath(0));    
-  }
-
-  private void updateNodes(FacesContext facesContext, DefaultMutableTreeNode node, TreePath position) {
-
-    setRowIndex(facesContext, position);
-    if (LOG.isDebugEnabled()) {
-      LOG.debug("path index (update) = '" + position + "'");
-    }
-    AbstractUITreeNode templateComponent = getTemplateComponent();
-    templateComponent.processUpdates(facesContext);
-    setRowIndex(facesContext, null);
-
-    int index = 0;
-    for (Enumeration e = node.children(); e.hasMoreElements();) {
-      DefaultMutableTreeNode sub = (DefaultMutableTreeNode) e.nextElement();
-      updateNodes(facesContext, sub, new TreePath(position, index));
-      index++;
-    }
-  }
-
-  public TreePath getRowIndex() {
-    return rowIndex;
-  }
-
-  private void setRowIndex(FacesContext facesContext, TreePath rowIndex) {
-
-    if (ObjectUtils.equals(this.rowIndex, rowIndex)) {
-      return; // nothing to do, if already set.
-    }
-
-    AbstractUITreeNode template = getTemplateComponent();
-    pathStates.put(this.rowIndex, saveStateDeep(facesContext, template));
-    if (LOG.isDebugEnabled()) {
-      LOG.debug("save   " + this.rowIndex + " ex=" + template.isExpanded());
-    }
-
-    this.rowIndex = rowIndex;
-    if (rowIndex != null) {
-      DefaultMutableTreeNode model = (DefaultMutableTreeNode) getValue();
-      currentNode = rowIndex.getNode(model);
-      facesContext.getExternalContext().getRequestMap().put(var, currentNode);
-    } else {
-      FacesContext.getCurrentInstance().getExternalContext().getRequestMap().remove(var);
-      currentNode = null;
+  /**
+   * Patch for backward compatibility.
+   */
+  public void onComponentCreated(FacesContext facesContext, UIComponent parent) {
+    Deprecation.LOG.warn("Please not use the <tc:treeData> tag.");
+    if (parent instanceof AbstractUITree) {
+      ValueExpression ve = getValueExpression("var");
+      if (ve != null) {
+        parent.setValueExpression("var", ve);
+      } else {
+        ((AbstractUITree) parent).setVar(getVar());
+      }
     }
 
-    Object state = pathStates.get(this.rowIndex);
-    if (state != null) {
-      restoreStateDeep(facesContext, template, state);
-      if (LOG.isDebugEnabled()) {
-        LOG.debug("restore " + this.rowIndex + " ex=" + template.isExpanded());
+    if (parent instanceof AbstractUITree) {
+      ValueExpression ve = getValueExpression("value");
+      if (ve != null) {
+        parent.setValueExpression("value", ve);
+      } else {
+        ((AbstractUITree) parent).setValue(getValue());
       }
     }
   }
 
-  /**
-   * Restores the state of the component and the state of all facets and children from the state object.
-   */
-  private void restoreStateDeep(FacesContext facesContext, UIComponent template, Object stateObject) {
-    final List<Object> state = (List<Object>) stateObject;
-    int i = 0;
-    template.restoreState(facesContext, state.get(i++));
-
-    // reset the client id (see spec 3.1.6)
-    template.setId(template.getId());
-    
-    final Iterator<UIComponent> facetsAndChildren = template.getFacetsAndChildren();
-    while (facetsAndChildren.hasNext()) {
-      UIComponent component = (UIComponent) facetsAndChildren.next();
-      restoreStateDeep(facesContext, component, state.get(i++));
-    }
-  }
+  public abstract String getVar();
 
   /**
-   * Put the state of the component and the state of all facets and children into a object.
+   * @deprecated since XXX 1.6.0 ???
    */
-  private Object saveStateDeep(FacesContext facesContext, UIComponent template) {
-    final List<Object> state = new ArrayList<Object>();
-    state.add(template.saveState(facesContext));
-
-    final Iterator<UIComponent> facetsAndChildren = template.getFacetsAndChildren();
-    while (facetsAndChildren.hasNext()) {
-      UIComponent component = (UIComponent) facetsAndChildren.next();
-      state.add(saveStateDeep(facesContext, component));
-    }
-    return state;
-  }
-/*
-  public void buildTreeModel(MixedTreeModel model) {
-    model.beginBuildNodeData(this);
-    // childred are not needed to add here
-    model.endBuildNodeData(this);
-  }
-  */
-
+  @Deprecated
   public void buildTreeModelBegin(FacesContext facesContext, MixedTreeModel model) {
-    Object data = getValue();
-    if (data instanceof Node) {
-      buildTreeModelNodes(facesContext, model, (Node) data, new TreePath(0));
-    } else if (data instanceof DefaultMutableTreeNode) {
-      buildTreeModelNodes(facesContext, model, (DefaultMutableTreeNode) data, new TreePath(0));
-    }
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
   public void buildTreeModelChildren(FacesContext facesContext, MixedTreeModel model) {
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
   public void buildTreeModelEnd(FacesContext facesContext, MixedTreeModel model) {
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
-  public void buildTreeModelNodes(
-      FacesContext facesContext, MixedTreeModel model, Node node, TreePath position) {
-
-    setRowIndex(facesContext, position);
-    LOG.debug("path index (build) node = '" + position + "'");
-
-    getTemplateComponent().buildTreeModelBegin(facesContext, model);
-
-    int index = 0;
-    for (Node sub : node.getChildren()) {
-      buildTreeModelNodes(facesContext, model, sub, new TreePath(position, index));
-      index++;
-    }
-
-    getTemplateComponent().buildTreeModelEnd(facesContext, model);
-
-    setRowIndex(facesContext, null);
-  }
-
-  public void buildTreeModelNodes(
-      FacesContext facesContext, MixedTreeModel model, DefaultMutableTreeNode node, TreePath position) {
-
-    setRowIndex(facesContext, position);
-    LOG.debug("path index (build) dmtn = '" + position + "'");
-
-    getTemplateComponent().buildTreeModelBegin(facesContext, model);
-
-    int index = 0;
-    for (Enumeration e = node.children(); e.hasMoreElements();) {
-      DefaultMutableTreeNode sub = (DefaultMutableTreeNode) e.nextElement();
-      buildTreeModelNodes(facesContext, model, sub, new TreePath(position, index));
-      index++;
-    }
-
-    getTemplateComponent().buildTreeModelEnd(facesContext, model);
-
-    setRowIndex(facesContext, null);
-  }
-
-  @Override
-  public void encodeChildren(FacesContext context) throws IOException {
-  }
-
-  @Override
-  public void encodeEnd(FacesContext facesContext) throws IOException {
-    encodeNodes(facesContext, (DefaultMutableTreeNode) getValue(), new TreePath(0));
-    super.encodeEnd(facesContext);
-  }
-
-  private void encodeNodes(FacesContext facesContext, DefaultMutableTreeNode node, TreePath position)
-      throws IOException {
-
-    setRowIndex(facesContext, position);
-    LOG.debug("path index (begin)  = '" + position + "'");
-    final AbstractUITreeNode template = getTemplateComponent();
-    super.encodeBegin(facesContext); // XXX hack!
-  //  template.getRenderer().pre
-    template.encodeBegin(facesContext);
-    setRowIndex(facesContext, null);
-
-    int index = 0;
-    for (Enumeration e = node.children(); e.hasMoreElements();) {
-      DefaultMutableTreeNode sub = (DefaultMutableTreeNode) e.nextElement();
-      encodeNodes(facesContext, sub, new TreePath(position, index));
-      index++;
-    }
-
-    setRowIndex(facesContext, position);
-    LOG.debug("path index (end)    = '" + position + "'");
-    getTemplateComponent().encodeEnd(facesContext);
-    setRowIndex(facesContext, null);
-  }
-
-  @Override
-  public boolean getRendersChildren() {
-    return true;
-  }
-
-  @Override
-  public void updateModel(FacesContext facesContext) {
-    // nothing to update for tree's
-    // TODO: updating the model here and *NOT* in the decode phase
-  }
-
-  public AbstractUITreeNode getTemplateComponent() {
-    for (Object child : getChildren()) {
-      if (child instanceof AbstractUITreeNode) {
-        return (AbstractUITreeNode) child;
-      }
-    }
-    return null;
-  }
-
-  @Override
-  public String getClientId(FacesContext context) {
-    String clientId = super.getClientId(context);
-    if (rowIndex == null) {
-      return clientId;
-    }
-    return clientId + NamingContainer.SEPARATOR_CHAR + rowIndex;
-  }
-
-  public UIComponent findComponent(String searchId) {
-
-    assert searchId.matches("^(_\\d+)+" + SEPARATOR_CHAR + ".*")
-        : "The searchId '" + searchId + "' does not start with a tree structure";
-
-    searchId = searchId.substring(searchId.indexOf(SEPARATOR_CHAR) + 1);
-    return super.findComponent(searchId);
-  }
-
-  @Override
-  public void queueEvent(FacesEvent event) {
-    super.queueEvent(new FacesEventWrapper(event, getRowIndex(), this));
-  }
-
-  @Override
-  public void broadcast(FacesEvent event) throws AbortProcessingException {
-    if (event instanceof FacesEventWrapper) {
-      FacesContext facesContext = FacesContext.getCurrentInstance();
-      FacesEvent originalEvent = ((FacesEventWrapper) event).getWrappedFacesEvent();
-      TreePath eventPathIndex = ((FacesEventWrapper) event).getRowIndex();
-      TreePath currentPathIndex = getRowIndex();
-      setRowIndex(facesContext, eventPathIndex);
-      try {
-        originalEvent.getComponent().broadcast(originalEvent);
-      } finally {
-        setRowIndex(facesContext, currentPathIndex);
-      }
-    } else {
-      super.broadcast(event);
-    }
-  }
-
-  public boolean invokeOnComponent(FacesContext facesContext, String clientId, ContextCallback callback)
-      throws FacesException {
-    TreePath oldRowIndex = getRowIndex();
-    try {
-      String sheetId = getClientId(facesContext);
-      if (clientId.startsWith(sheetId)) {
-        String idRemainder = clientId.substring(sheetId.length());
-        if (LOG.isDebugEnabled()) {
-          LOG.debug("idRemainder = '" + idRemainder + "'");
-        }
-        if (idRemainder.matches("^:(_\\d+)+:.*")) {
-          idRemainder = idRemainder.substring(1);
-          int idx = idRemainder.indexOf(":");
-          try {
-            TreePath rowIndex = new TreePath(idRemainder.substring(0, idx));
-            if (LOG.isDebugEnabled()) {
-              LOG.debug("set rowIndex = '" + rowIndex + "'");
-            }
-            setRowIndex(facesContext, rowIndex);
-          } catch (NumberFormatException e) {
-            LOG.warn("idRemainder = '" + idRemainder + "'", e);
-          }
-        } else {
-          if (LOG.isDebugEnabled()) {
-            LOG.debug("no match for '^:(_\\d+)+:.*'");
-          }
-        }
-      }
-
-      return FacesUtils.invokeOnComponent(facesContext, this, clientId, callback);
-
-    } finally {
-      // we should reset rowIndex on UISheet
-      setRowIndex(facesContext, oldRowIndex);
-    }
-  }
-
-  @Override
-  public Object saveState(FacesContext context) {
-    Object[] state = new Object[2];
-    state[0] = super.saveState(context);
-    state[1] = var;
-    return state;
-  }
-
-  @Override
-  public void restoreState(FacesContext context, Object state) {
-    Object[] values = (Object[]) state;
-    super.restoreState(context, values[0]);
-    var = (String) values[1];
-  }
-
-  public String getVar() {
-    return var;
-  }
-
-  public void setVar(String var) {
-    this.var = var;
-  }
-
-  public DefaultMutableTreeNode getCurrentNode() {
-    return currentNode;
-  }
-
-  public void setCurrentNode(DefaultMutableTreeNode currentNode) {
-    this.currentNode = currentNode;
-  }
-
-  private static class FacesEventWrapper extends FacesEvent {
-
-    private static final long serialVersionUID = 1L;
-
-    private FacesEvent wrappedFacesEvent;
-    private TreePath rowIndex;
-
-    FacesEventWrapper(FacesEvent facesEvent, TreePath rowIndex, AbstractUITreeData redirectComponent) {
-      super(redirectComponent);
-      wrappedFacesEvent = facesEvent;
-      this.rowIndex = rowIndex;
-    }
-
-    @Override
-    public PhaseId getPhaseId() {
-      return wrappedFacesEvent.getPhaseId();
-    }
-
-    @Override
-    public void setPhaseId(PhaseId phaseId) {
-      wrappedFacesEvent.setPhaseId(phaseId);
-    }
-
-    @Override
-    public void queue() {
-      wrappedFacesEvent.queue();
-    }
-
-    @Override
-    public String toString() {
-      return wrappedFacesEvent.toString();
-    }
-
-    @Override
-    public boolean isAppropriateListener(
-        FacesListener faceslistener) {
-      return wrappedFacesEvent.isAppropriateListener(faceslistener);
-    }
-
-    @Override
-    public void processListener(FacesListener faceslistener) {
-      wrappedFacesEvent.processListener(faceslistener);
-    }
-
-    public FacesEvent getWrappedFacesEvent() {
-      return wrappedFacesEvent;
-    }
-
-    public TreePath getRowIndex() {
-      return rowIndex;
-    }
-  }
-
-  // XXX hack: fix this if there is a Listener
-  public Object getMarker() {
-    return marked;
-  }
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java Tue May 22 12:18:26 2012
@@ -17,133 +17,69 @@ package org.apache.myfaces.tobago.intern
  * limitations under the License.
  */
 
-import org.apache.myfaces.tobago.compat.FacesUtils;
-import org.apache.myfaces.tobago.component.Attributes;
 import org.apache.myfaces.tobago.component.SupportsMarkup;
 import org.apache.myfaces.tobago.component.TreeModelBuilder;
 import org.apache.myfaces.tobago.config.Configurable;
-import org.apache.myfaces.tobago.event.TreeExpansionEvent;
 import org.apache.myfaces.tobago.event.TreeExpansionListener;
-import org.apache.myfaces.tobago.event.TreeMarkedEvent;
 import org.apache.myfaces.tobago.event.TreeMarkedListener;
+import org.apache.myfaces.tobago.internal.util.Deprecation;
 import org.apache.myfaces.tobago.model.MixedTreeModel;
+import org.apache.myfaces.tobago.model.TreeDataModel;
 import org.apache.myfaces.tobago.model.TreePath;
 import org.apache.myfaces.tobago.util.ComponentUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.faces.component.UIComponent;
+import javax.faces.component.UIData;
 import javax.faces.component.UIOutput;
 import javax.faces.context.FacesContext;
 import javax.faces.el.MethodBinding;
-import javax.faces.event.AbortProcessingException;
-import javax.faces.event.FacesEvent;
+import javax.faces.model.DataModel;
 import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreeNode;
 import java.io.IOException;
 import java.util.List;
+import java.util.Stack;
 
 public abstract class AbstractUITreeNode
     extends UIOutput implements SupportsMarkup, TreeModelBuilder, Configurable {
 
   private static final Logger LOG = LoggerFactory.getLogger(AbstractUITreeNode.class);
 
-  private int depth;
-  private boolean folder;
-  private TreePath path;
-  private List<Boolean> junctions;
-  private boolean hasNextSibling;
-
-  public void buildTreeModelBegin(FacesContext facesContext, MixedTreeModel model) {
-    model.beginBuildNode();
-    setDepth(computeDepth(this));
-    setFolder(computeFolder());
-  }
-
-  public void buildTreeModelChildren(FacesContext facesContext, MixedTreeModel model) {
-    for (Object child : getChildren()) {
-      if (child instanceof TreeModelBuilder) {
-        TreeModelBuilder builder = (TreeModelBuilder) child;
-        builder.buildTreeModelBegin(facesContext, model);
-        builder.buildTreeModelChildren(facesContext, model);
-        builder.buildTreeModelEnd(facesContext, model);
-      }
-    }
-  }
-
-  public void buildTreeModelEnd(FacesContext facesContext, MixedTreeModel model) {
-    model.endBuildNode();
-  }
-
   @Override
-  public void encodeBegin(FacesContext context) throws IOException {
-    AbstractUITree tree = ComponentUtils.findAncestor(this, AbstractUITree.class);
-    MixedTreeModel mixedModel = tree.getModel();
-    mixedModel.onEncodeBegin();
-    setPath(mixedModel.getPath());
-    setHasNextSibling(computeHasNextSibling());
-    setJunctions(mixedModel.getJunctions());
-    super.encodeBegin(context);
-  }
-
-  private int computeDepth(UIComponent component) {
-    int depth = 0;
-    while (component != null) {
-      depth++;
-      if (component instanceof AbstractUITree) {
-        return depth;
-      }
-      if (component instanceof AbstractUITreeData) {
-        Object dataTree = ((AbstractUITreeData) component).getValue();
-        // todo: make independent from impl.
-        if (dataTree instanceof DefaultMutableTreeNode) {
-          return ((DefaultMutableTreeNode) dataTree).getDepth(); // XXX expensive
-        }
-        LOG.warn("Tree type not supported");
-      }
-      component = component.getParent();
+  public void encodeBegin(FacesContext facesContext) throws IOException {
+    final AbstractUIData data = ComponentUtils.findAncestor(this, AbstractUIData.class);
+    DataModel model = data.getDataModel();
+    if (model instanceof TreeDataModel) {
+      final TreeDataModel treeDataModel = (TreeDataModel) model;
+      treeDataModel.setRowClientId(getClientId(facesContext));
     }
-    throw new RuntimeException("Not inside of a UITree");
+
+    super.encodeBegin(facesContext);
   }
 
-  private boolean computeFolder() {
-    DefaultMutableTreeNode node = getDataNode();
-    if (node != null) {
-      return !node.isLeaf();
-    } else {
-      for (UIComponent child : (List<UIComponent>) getChildren()) {
-        if ((child instanceof AbstractUITreeNode || child instanceof AbstractUITreeData) && child.isRendered()) {
-          return true;
-        }
-      }
-      return false;
-    }
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
+  public void buildTreeModelBegin(FacesContext facesContext, MixedTreeModel model) {
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
-  private boolean computeHasNextSibling() {
-    DefaultMutableTreeNode node = getDataNode();
-    if (node != null) {
-      if (node.isRoot()) {
-        return hasSiblingAfter(getParent().getParent(), getParent());
-      } else {
-        return node.getNextSibling() != null;
-      }
-    } else {
-      return hasSiblingAfter(getParent(), this);
-    }
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
+  public void buildTreeModelChildren(FacesContext facesContext, MixedTreeModel model) {
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
-  private boolean hasSiblingAfter(UIComponent parent, UIComponent child) {
-    boolean found = false;
-    for (Object sibling : parent.getChildren()) {
-      if (child.equals(sibling)) {
-        found = true;
-        continue;
-      }
-      if (found) {
-        return true;
-      }
-    }
-    return false;
+  /**
+   * @deprecated since XXX 1.6.0 ???
+   */
+  @Deprecated
+  public void buildTreeModelEnd(FacesContext facesContext, MixedTreeModel model) {
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
   /**
@@ -151,7 +87,7 @@ public abstract class AbstractUITreeNode
    * Returns null if it will be called not inside of {@link AbstractUITreeData}
    */
   // todo: make independent from impl.: DefaultMutableTreeNode
-  private DefaultMutableTreeNode getDataNode() {
+/*  private DefaultMutableTreeNode getDataNode() {
     UIComponent component = this;
     while (component != null) {
       if (component instanceof AbstractUITreeData) {
@@ -165,119 +101,109 @@ public abstract class AbstractUITreeNode
       component = component.getParent();
     }
     return null;
-  }
+  }*/
 
   @Override
   public Object getValue() {
-    LOG.error("XXXXXXXXXXX should not be called!!!!!!!!!!!!");
+    LOG.error("XXX: Should not be called!", new Exception());
     return super.getValue();
   }
 
+  protected DefaultMutableTreeNode getRowData() {
+    final UIData data = ComponentUtils.findAncestor(this, UIData.class);
+    final Object rowData = data.getRowData();
+    return (DefaultMutableTreeNode) rowData;
+  }
+  
   /**
    * Returns the level of the tree node inside of the virtual tree. The root node has level 0.
    * The children of the root note have level 1, and so on. 
    */
   public int getLevel() {
-    return path.getLength() - 1;
+    final DefaultMutableTreeNode node = getRowData();
+    return node.getLevel();
   }
 
   public String nodeStateId(FacesContext facesContext) {
-    String clientId = getClientId(facesContext);
-    AbstractUITree tree = ComponentUtils.findAncestor(this, AbstractUITree.class);
-    String treeId = tree.getClientId(facesContext);
-    return clientId.substring(treeId.length() + 1);
-  }
-
-  @Override
-  public void broadcast(FacesEvent event) throws AbortProcessingException {
-    super.broadcast(event);
-    if (event instanceof TreeExpansionEvent) {
-      FacesUtils.invokeMethodBinding(getFacesContext(), getTreeExpansionListener(), event);
-      boolean expanded = ((TreeExpansionEvent) event).isNewExpanded();
-
-      if (FacesUtils.hasValueBindingOrValueExpression(this, Attributes.EXPANDED)) {
-        try {
-          FacesUtils.setValueOfBindingOrExpression(getFacesContext(), expanded, this, Attributes.EXPANDED);
-        } catch (Exception e) {
-          if (LOG.isDebugEnabled()) {
-            LOG.debug("Can't set expanded.", e);
-          }
-        }
-      } else {
-        setExpanded(expanded);
-      }
-    }
-    if (event instanceof TreeMarkedEvent) {
-      FacesUtils.invokeMethodBinding(getFacesContext(), getTreeMarkedListener(), event);
-      boolean marked = ((TreeMarkedEvent) event).isNewMarked();
-
-      if (FacesUtils.hasValueBindingOrValueExpression(this, Attributes.MARKED)) {
-        try {
-          FacesUtils.setValueOfBindingOrExpression(getFacesContext(), marked, this, Attributes.MARKED);
-        } catch (Exception e) {
-          if (LOG.isDebugEnabled()) {
-            LOG.debug("Can't set marked.", e);
-          }
-        }
-      } else {
-        setMarked(marked);
-      }
-    }
-  }
-
-  public void restoreState(FacesContext context, Object componentState) {
-    Object[] values = (Object[]) componentState;
-    super.restoreState(context, values[0]);
-    path = (TreePath) values[1];
-    folder = (Boolean) values[2];
-  }
-
-  public Object saveState(FacesContext context) {
-    Object[] values = new Object[3];
-    values[0] = super.saveState(context);
-    values[1] = path;
-    values[2] = folder;
-    return values;
+    final String clientId = getClientId(facesContext);
+    final UIData data = ComponentUtils.findAncestor(this, UIData.class);
+    String dataId = data.getClientId(facesContext);
+    return clientId.substring(dataId.length() + 1);
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public int getDepth() {
-    return depth;
+    Deprecation.LOG.error("Doesn't work anymore.");
+    return 1;
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public void setDepth(int depth) {
-    this.depth = depth;
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
   public boolean isFolder() {
-    return folder;
+    final DefaultMutableTreeNode rowData = getRowData();
+    return !rowData.isLeaf();
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public void setFolder(boolean folder) {
-    this.folder = folder;
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
   public TreePath getPath() {
-    return path;
+    return new TreePath(getRowData());
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public void setPath(TreePath path) {
-    this.path = path;
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
   public List<Boolean> getJunctions() {
+    final DefaultMutableTreeNode node = getRowData();
+    List<Boolean> junctions = new Stack<Boolean>();
+    for (TreeNode ancestor : node.getPath()) {
+      junctions.add(((DefaultMutableTreeNode) ancestor).getNextSibling() != null);
+    }
     return junctions;
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public void setJunctions(List<Boolean> junctions) {
-    this.junctions = junctions;
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public boolean isHasNextSibling() {
-    return hasNextSibling;
+    return getRowData().getNextSibling() != null;
   }
 
+  /**
+   * @deprecated since XXX 1.6.0 version???
+   */
+  @Deprecated
   public void setHasNextSibling(boolean hasNextSibling) {
-    this.hasNextSibling = hasNextSibling;
+    Deprecation.LOG.error("Doesn't work anymore.");
   }
 
   public abstract MethodBinding getTreeExpansionListener();

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SheetTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SheetTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SheetTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SheetTagDeclaration.java Tue May 22 12:18:26 2012
@@ -32,6 +32,8 @@ import org.apache.myfaces.tobago.interna
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasRenderedPartially;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsGridLayoutComponent;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsGridLayoutContainer;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsShowRoot;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsShowRootJunction;
 
 /**
  * Render a sheet element.
@@ -50,7 +52,7 @@ import org.apache.myfaces.tobago.interna
                      allowedChildComponenents = "org.apache.myfaces.tobago.Reload")})
 public interface SheetTagDeclaration 
     extends HasIdBindingAndRendered, IsGridLayoutComponent, IsGridLayoutContainer, HasMarkup, HasCurrentMarkup,
-    HasRenderedPartially {
+    HasRenderedPartially, IsShowRoot, IsShowRootJunction {
   /**
    * LayoutConstraints for column layout.
    * Semicolon separated list of layout tokens ('&lt;x>*', '&lt;x>px' or '&lt;x>%').

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeDataTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeDataTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeDataTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeDataTagDeclaration.java Tue May 22 12:18:26 2012
@@ -28,7 +28,10 @@ import org.apache.myfaces.tobago.interna
 /**
  * Describes a sub tree of nodes.
  * The value has to be a javax.swing.tree.TreeNode object to use as rootNode in the tree.
+ *
+ * @deprecated since XXX 1.6.0 ??? Use the "var" and "value" attribute of the parent tree tag.
  */
+@Deprecated
 @Tag(name = "treeData")
 @BodyContentDescription(anyTagOf = "<tc:treeNode>")
 @UIComponentTag(

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeListboxTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeListboxTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeListboxTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeListboxTagDeclaration.java Tue May 22 12:18:26 2012
@@ -37,7 +37,7 @@ import org.apache.myfaces.tobago.interna
 @BodyContentDescription(anyTagOf = "<tc:treeNode>|<tc:treeData>")
 @UIComponentTag(
     uiComponent = "org.apache.myfaces.tobago.component.UITreeListbox",
-    uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUITree",
+    uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUITreeListbox",
     rendererType = RendererTypes.TREE_LISTBOX,
     allowedChildComponenents = {
         "org.apache.myfaces.tobago.TreeNode",
@@ -68,6 +68,8 @@ public interface TreeListboxTagDeclarati
    * component's state.
    */
   @TagAttribute
-  @UIComponentTagAttribute(type = "java.lang.Object", expression = DynamicExpression.VALUE_BINDING_REQUIRED)
+  @UIComponentTagAttribute(
+      type = "org.apache.myfaces.tobago.model.TreeState",
+      expression = DynamicExpression.VALUE_BINDING_REQUIRED)
   void setState(String state);
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeMenuTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeMenuTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeMenuTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeMenuTagDeclaration.java Tue May 22 12:18:26 2012
@@ -27,7 +27,10 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasCurrentMarkup;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasMarkup;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasValue;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasVar;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsGridLayoutComponent;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsShowRoot;
 
 /**
  * A tree which will be displayed like a flat menu.
@@ -44,23 +47,18 @@ import org.apache.myfaces.tobago.interna
         "org.apache.myfaces.tobago.TreeData"
         })
 public interface TreeMenuTagDeclaration
-    extends HasIdBindingAndRendered, IsGridLayoutComponent, HasMarkup, HasCurrentMarkup {
+    extends HasIdBindingAndRendered, HasValue, HasVar, IsGridLayoutComponent, HasMarkup, HasCurrentMarkup,
+    IsShowRoot {
 
   /**
    *
    * <strong>ValueBindingExpression</strong> pointing to a object to save the
    * component's state.
-   *
    */
   @TagAttribute
-  @UIComponentTagAttribute(type = "java.lang.Object", expression = DynamicExpression.VALUE_BINDING_REQUIRED)
+  @UIComponentTagAttribute(
+      type = "org.apache.myfaces.tobago.model.TreeState",
+      expression = DynamicExpression.VALUE_BINDING_REQUIRED)
   void setState(String state);
 
-  /**
-   * Indicates that the root node should be displayed or not.
-   * Normally the root node of a menu will not be shown, because it has only technical significance.
-   */
-  @TagAttribute
-  @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  void setShowRoot(String showRoot);
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeNodeTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeNodeTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeNodeTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeNodeTagDeclaration.java Tue May 22 12:18:26 2012
@@ -51,21 +51,27 @@ public interface
 
   /**
    * Flag indicating if the subnodes are to be displayed.
+   * @deprecated since XXX 1.6.0 ??? Please use the state attribute of the tree with a TreeState
    */
+  @Deprecated
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
   void setExpanded(String expanded);
 
   /**
    * Flag indicating if the node is marked, and should be displayed in a special way.
+   * @deprecated since XXX 1.6.0 ??? Please use the state attribute of the tree with a TreeState
    */
+  @Deprecated
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
   void setMarked(String marked);
 
   /**
    * Flag indicating if the node is selected (only possible, when the tree component allows it).
+   * @deprecated since XXX 1.6.0 ??? Please use <code>&lt;tc:treeSelect></code>
    */
+  @Deprecated
   @TagAttribute()
   @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
   void setSelected(String selected);

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeSelectTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeSelectTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeSelectTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeSelectTagDeclaration.java Tue May 22 12:18:26 2012
@@ -22,12 +22,19 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
 import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverter;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverterMessage;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasCurrentMarkup;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasLabel;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasMarkup;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasRequiredMessage;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasValidatorMessage;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasValue;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasValueChangeListener;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsDisabled;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsRequired;
 
 /**
  * Makes a tree node selectable.
@@ -39,7 +46,8 @@ import org.apache.myfaces.tobago.interna
     rendererType = RendererTypes.TREE_SELECT,
     allowedChildComponenents = "NONE")
 public interface TreeSelectTagDeclaration
-    extends HasIdBindingAndRendered, HasLabel, HasTip, HasMarkup, HasCurrentMarkup, HasValue {
+    extends HasIdBindingAndRendered, HasLabel, HasTip, HasMarkup, HasCurrentMarkup, HasValue, HasValueChangeListener,
+        IsDisabled, IsRequired, HasConverter, HasValidatorMessage, HasRequiredMessage, HasConverterMessage {
 
   /**
    * Show a checkbox to visualize the selection state.

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeTagDeclaration.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeTagDeclaration.java Tue May 22 12:18:26 2012
@@ -27,8 +27,11 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasCurrentMarkup;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasMarkup;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasValue;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasVar;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsGridLayoutComponent;
-import org.apache.myfaces.tobago.internal.taglib.declaration.IsRequired;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsShowRoot;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsShowRootJunction;
 
 /**
  * A tree with classical look. 
@@ -45,7 +48,8 @@ import org.apache.myfaces.tobago.interna
         "org.apache.myfaces.tobago.TreeData"
         })
 public interface TreeTagDeclaration
-    extends HasIdBindingAndRendered, IsRequired, IsGridLayoutComponent, HasMarkup, HasCurrentMarkup {
+    extends HasIdBindingAndRendered, HasValue, HasVar, IsGridLayoutComponent, HasMarkup, HasCurrentMarkup,
+    IsShowRoot, IsShowRootJunction {
 
   /**
    * Flag indicating whether or not this component should be render selectable items.
@@ -65,21 +69,14 @@ public interface TreeTagDeclaration
       allowedValues = {"multi", "single", "multiLeafOnly", "singleLeafOnly", "off"})
   void setSelectable(String selectable);
 
-  @TagAttribute
-  @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  void setShowRootJunction(String showRootJunction);
-
-  @TagAttribute
-  @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
-  void setShowRoot(String showRoot);
-  
   /**
    *
    * <strong>ValueBindingExpression</strong> pointing to a object to save the
    * component's state.
-   *
    */
   @TagAttribute
-  @UIComponentTagAttribute(type = "java.lang.Object", expression = DynamicExpression.VALUE_BINDING_REQUIRED)
+  @UIComponentTagAttribute(
+      type = "org.apache.myfaces.tobago.model.TreeState",
+      expression = DynamicExpression.VALUE_BINDING_REQUIRED)
   void setState(String state);
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/DefaultMutableTreeNodeAnalyser.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/DefaultMutableTreeNodeAnalyser.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/DefaultMutableTreeNodeAnalyser.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/DefaultMutableTreeNodeAnalyser.java Tue May 22 12:18:26 2012
@@ -19,7 +19,10 @@ package org.apache.myfaces.tobago.model;
 
 import javax.swing.tree.DefaultMutableTreeNode;
 
-
+/**
+ * @deprecated since XXX 1.6.0 version???
+ */
+@Deprecated
 public class DefaultMutableTreeNodeAnalyser implements TreeAnalyser {
 
   private DefaultMutableTreeNode node;

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MixedTreeModel.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MixedTreeModel.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MixedTreeModel.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/MixedTreeModel.java Tue May 22 12:18:26 2012
@@ -24,6 +24,10 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Stack;
 
+/**
+ * @deprecated since XXX 1.6.0 ???
+ */
+@Deprecated
 public class MixedTreeModel {
 
   private static final Logger LOG = LoggerFactory.getLogger(MixedTreeModel.class);

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/Node.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/Node.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/Node.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/Node.java Tue May 22 12:18:26 2012
@@ -21,7 +21,10 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-
+/**
+ * @deprecated since XXX 1.6.0 ???
+ */
+@Deprecated
 public class Node {
 
   private List<Node> children;
@@ -58,7 +61,7 @@ public class Node {
     for (int i = 0; i < children.size(); i++) {
       Node child = children.get(i);
       if (child.equals(node)) {
-         return i;
+        return i;
       }
     }
     return -1;

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SheetState.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SheetState.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SheetState.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/SheetState.java Tue May 22 12:18:26 2012
@@ -27,10 +27,12 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-// TODO find a better solution for this
 public class SheetState implements Serializable {
+
   private static final long serialVersionUID = 7765536344426661777L;
+
   private static final Logger LOG = LoggerFactory.getLogger(SheetState.class);
+
   public static final String SEPARATOR = ",";
 
   private int first = -1;
@@ -39,6 +41,7 @@ public class SheetState implements Seria
   private String columnWidths;
   private List<Integer> selectedRows;
   private Integer[] scrollPosition;
+  private ExpandedState expandedState;
 
   public SheetState() {
     resetSelected();
@@ -109,6 +112,17 @@ public class SheetState implements Seria
     this.scrollPosition = scrollPosition;
   }
 
+  public ExpandedState getExpandedState() {
+    if (expandedState == null) {
+      expandedState = new ExpandedState(2);
+    }
+    return expandedState;
+  }
+
+  public void setExpandedState(ExpandedState expandedState) {
+    this.expandedState = expandedState;
+  }
+
   public static Integer[] parseScrollPosition(String value) {
     Integer[] position = null;
     if (!StringUtils.isBlank(value)) {

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeAnalyser.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeAnalyser.java?rev=1341439&r1=1341438&r2=1341439&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeAnalyser.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/TreeAnalyser.java Tue May 22 12:18:26 2012
@@ -18,8 +18,9 @@ package org.apache.myfaces.tobago.model;
  */
 
 /**
- * Date: 04.12.2008
+ * @deprecated since XXX 1.6.0 version???
  */
+@Deprecated
 public interface TreeAnalyser {
 
   int computeDepth();