<?xml version="1.0" encoding="UTF-8"?>
<!-- 
   Copyright 2004, 2005 The Apache Software Foundation

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<!DOCTYPE page-specification PUBLIC 
  "-//Apache Software Foundation//Tapestry Specification 4.0//EN" 
  "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">


<page-specification class="org.apache.tapestry.workbench.tree.examples.FileSystemTreeTable">


    <component id="body" type="Body"/>

    <component id="currentTime" type="Insert">
        <binding name="value" value="currentTime"/>
    </component>

    <component id="shell" type="Shell">
        <binding name="stylesheet" value="asset:stylesheet"/>
        <binding name="title" value="literal:Home"/>
    </component>

    <component id="tree" type="contrib:TreeTable">
        <binding name="nodeRenderFactory" value="renderFactory"/>
        <binding name="sessionStateManager" value="sessionStateManager"/>
        <binding name="treeModel" value="treeModel"/>
        <binding name="entriesPerTablePage" value="40"/>
        <binding name="tableColunms" value="tableColumns"/>
        <binding name="treeStateListener" value="treeStateListener"/>
        <!--binding name="showRootNode" value="@java.lang.Boolean@FALSE"/-->
    </component>

    <component id="directoryTableView" type="DirectoryTableView">
        <binding name="selectedFolderSource" value="selectedFolderSource"/>
    </component>
    
   <inject property="treeRootDir" object="app-property:TreeRootDir"/>

</page-specification>
