You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by ts...@apache.org on 2003/10/31 09:21:19 UTC

cvs commit: jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel IFileSystemTreeNode.java harddrive.gif AssetsHolder.java FolderObject.java FileSystemStateManager.java NodeRenderFactory.java FileSystemDataModel.java FileObject.java FileSystem.java Drive.java SFObject.java computer.gif file.gif TreeOpen.gif TreeClosed.gif

tsvetelin    2003/10/31 00:21:19

  Added:       examples/Workbench/src/org/apache/tapestry/workbench/tree/examples
                        ISelectedFolderSource.java FileSystemTreeTable.java
                        SessionVisit.java TestTreeNode.java
                        FileSystemTree.java SimpleTree.java
                        DirectoryTableView.java
               examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel
                        IFileSystemTreeNode.java harddrive.gif
                        AssetsHolder.java FolderObject.java
                        FileSystemStateManager.java NodeRenderFactory.java
                        FileSystemDataModel.java FileObject.java
                        FileSystem.java Drive.java SFObject.java
                        computer.gif file.gif TreeOpen.gif TreeClosed.gif
  Log:
  Workbench Tree example data - initial commit
  
  Revision  Changes    Path
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/ISelectedFolderSource.java
  
  Index: ISelectedFolderSource.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import java.util.Collection;
  
  /**
   * All right reserved.
   * Copyright (c) by Rushmore Digital Ltd.
   * 
   * Created on Sep 4, 2003
   * 
   * @author ceco
   */
  public interface ISelectedFolderSource {
  	Collection getSelectedFolderChildren();
  	String getSelectedNodeName();
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/FileSystemTreeTable.java
  
  Index: FileSystemTreeTable.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import java.io.File;
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.Date;
  
  import org.apache.tapestry.contrib.table.model.simple.SimpleTableColumn;
  import org.apache.tapestry.contrib.tree.components.INodeRenderFactory;
  import org.apache.tapestry.contrib.tree.components.table.TreeTable;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FileSystem;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FileSystemDataModel;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FileSystemStateManager;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FolderObject;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.NodeRenderFactory;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.IFileSystemTreeNode;
  import org.apache.tapestry.contrib.tree.model.TreeRowObject;
  import org.apache.tapestry.contrib.tree.model.TreeStateEvent;
  import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
  import org.apache.tapestry.contrib.tree.model.ITreeModel;
  import org.apache.tapestry.contrib.tree.model.ITreeModelSource;
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  import org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager;
  import org.apache.tapestry.contrib.tree.model.ITreeStateListener;
  import org.apache.tapestry.contrib.tree.model.ITreeStateModel;
  import org.apache.tapestry.contrib.tree.simple.SimpleTreeModel;
  import org.apache.tapestry.html.BasePage;
  
  public class FileSystemTreeTable extends BasePage implements ISelectedFolderSource, ITreeStateListener{
      private ITreeSessionStateManager m_objTreeSessionStateManager = null;
      private ITreeDataModel m_objDataModel;
      private ITreeModel m_objModel;
      private Object m_objValue;
  	private ArrayList m_arrTableColumns = null;
  
      public FileSystemTreeTable() {
          super();
      }
  
  	protected void initialize() {
  		super.initialize();
          m_objDataModel = null;
          m_objValue = null;
          m_objTreeSessionStateManager = null;
      }
  
      public void initTableModel() {
          ITreeNode objParent;
          String strRootDir = getRequestCycle().getRequestContext().getServlet().getInitParameter("TreeRootDir");
  
          System.out.println("strRootDir = " + strRootDir);
  
          if (strRootDir == null || "".equals(strRootDir)) {
              objParent = new FileSystem();
          } else{
              FolderObject objFolder = new FolderObject(null, new File(strRootDir), true);
              objFolder.reload();
              objParent = objFolder;
          }
  
          m_objDataModel = new FileSystemDataModel(objParent);
          m_objModel = new SimpleTreeModel(m_objDataModel);
      }
  
      public Date getCurrentTime() {
          return new Date();
      }
  
      public ITreeModel getTreeModel() {
          if (m_objDataModel == null) {
              initTableModel();
          }
          return m_objModel;
      }
  
      /**
       * Returns the value.
       * @return Object
       */
      public Object getValue() {
          return m_objValue;
      }
  
      /**
       * Sets the value.
       * @param value The value to set
       */
      public void setValue(Object value) {
          m_objValue = value;
      }
  
      public INodeRenderFactory getRenderFactory() {
          return new NodeRenderFactory();
      }
  
      public ITreeSessionStateManager getSessionStateManager() {
          if (m_objTreeSessionStateManager == null) {
              String strRootDir = getRequestCycle().getRequestContext().getServlet().getInitParameter("TreeRootDir");
  //            System.out.println("strRootDir = " + strRootDir);
  
              m_objTreeSessionStateManager =
                  new FileSystemStateManager(strRootDir);
          }
          return m_objTreeSessionStateManager;
      }
  	
  	/**
  	 * @return
  	 */
  	public ArrayList getTableColumns() {
  		if(m_arrTableColumns == null){
  			m_arrTableColumns = new ArrayList();
  			m_arrTableColumns.add(new SimpleTableColumn ("Date", true) 
  				{ 
  					public Object getColumnValue(Object objValue) {
  						TreeRowObject objRowObject = (TreeRowObject)objValue;
  						//SFObject objSFObject = (SFObject)objRowObject.getTreeNode();
  						IFileSystemTreeNode objFileSystemTreeNode = (IFileSystemTreeNode)objRowObject.getTreeNode();
  						return objFileSystemTreeNode.getDate();
  					}
  				});
  		}
  		return m_arrTableColumns;
  	}
  
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.ISelectedFolderSource#getSelectedFolder()
  	 */
  	public Collection getSelectedFolderChildren() {
  		TreeTable objTreeTable = (TreeTable)getComponent("tree");
  		ITreeModelSource objTreeModelSource = objTreeTable.getTreeModelSource();
  		ITreeStateModel objTreeStateModel = objTreeModelSource.getTreeModel().getTreeStateModel();
  		Object objSelectedNodeUID = objTreeStateModel.getSelectedNode();
  		ITreeNode objSelectedNode = null;
  		if(objSelectedNodeUID != null)
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getObject(objSelectedNodeUID);
  		else{
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getRoot();
  		}
  		return objSelectedNode.getChildren();
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeStateListener#treeStateChanged(org.apache.tapestry.contrib.tree.model.TreeStateEvent)
  	 */
  	public void treeStateChanged(TreeStateEvent objEvent) {
  		DirectoryTableView objDirectoryTableView = (DirectoryTableView)getComponent("directoryTableView");
  		objDirectoryTableView.resetState();
  	}
  
  	public ITreeStateListener getTreeStateListener(){
  		return this;
  	}
  
  	public ISelectedFolderSource getSelectedFolderSource(){
  		return this;
  	}
  
  	
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.ISelectedFolderSource#getSelectedNodeName()
  	 */
  	public String getSelectedNodeName() {
  		TreeTable objTreeTable = (TreeTable)getComponent("tree");
  		ITreeModelSource objTreeModelSource = objTreeTable.getTreeModelSource();
  		ITreeStateModel objTreeStateModel = objTreeModelSource.getTreeModel().getTreeStateModel();
  		Object objSelectedNodeUID = objTreeStateModel.getSelectedNode();
  		ITreeNode objSelectedNode = null;
  		if(objSelectedNodeUID != null)
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getObject(objSelectedNodeUID);
  		else{
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getRoot();
  		}
  		return objSelectedNode.toString();
  	}
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/SessionVisit.java
  
  Index: SessionVisit.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import java.io.*;
  
  public class SessionVisit implements Serializable
  {
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/TestTreeNode.java
  
  Index: TestTreeNode.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import org.apache.tapestry.contrib.tree.model.IMutableTreeNode;
  import org.apache.tapestry.contrib.tree.simple.TreeNode;
  
  /**
   * @author ceco
   */
  public class TestTreeNode extends TreeNode {
  
      private String m_strValue;
  
      /**
       * Constructor for TestTreeNode.
       */
      public TestTreeNode(String strValue) {
          this(null, strValue);
      }
  
      /**
       * Constructor for TestTreeNode.
       * @param parentNode
       */
      public TestTreeNode(IMutableTreeNode parentNode, String strValue) {
          super(parentNode);
          m_strValue = strValue;
      }
  
      public String toString(){
          return m_strValue;
      }
  
      public int hashCode(){
          return m_strValue.hashCode();
      }
  
      public boolean equals(Object objTarget){
          if(objTarget == this)
              return true;
          if(! (objTarget instanceof TestTreeNode))
              return false;
  
          TestTreeNode objTargetNode = (TestTreeNode)objTarget;
          return this.getValue().equals(objTargetNode.getValue());
      }
  
      /**
       * Returns the value.
       * @return String
       */
      public String getValue() {
          return m_strValue;
      }
  
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/FileSystemTree.java
  
  Index: FileSystemTree.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import java.io.File;
  import java.util.Collection;
  import java.util.Date;
  
  import org.apache.tapestry.contrib.tree.components.INodeRenderFactory;
  import org.apache.tapestry.contrib.tree.components.TreeView;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FileSystem;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FileSystemDataModel;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FileSystemStateManager;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.FolderObject;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.NodeRenderFactory;
  import org.apache.tapestry.contrib.tree.model.TreeStateEvent;
  import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
  import org.apache.tapestry.contrib.tree.model.ITreeModel;
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  import org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager;
  import org.apache.tapestry.contrib.tree.model.ITreeStateListener;
  import org.apache.tapestry.contrib.tree.model.ITreeStateModel;
  import org.apache.tapestry.contrib.tree.simple.SimpleTreeModel;
  
  import org.apache.tapestry.html.BasePage;
  
  public class FileSystemTree extends BasePage implements ISelectedFolderSource, ITreeStateListener{
      private ITreeSessionStateManager m_objTreeSessionStateManager = null;
      private ITreeDataModel m_objDataModel;
      private ITreeModel m_objModel;
      private Object m_objValue;
  
      public FileSystemTree() {
          super();
      }
  
  	protected void initialize() {
  		super.initialize();
          m_objDataModel = null;
          m_objValue = null;
          m_objTreeSessionStateManager = null;
      }
  
      public void initTableModel() {
          ITreeNode objParent;
          String strRootDir = getRequestCycle().getRequestContext().getServlet().getInitParameter("TreeRootDir");
  
          System.out.println("strRootDir = " + strRootDir);
  
          if (strRootDir == null || "".equals(strRootDir)) {
              objParent = new FileSystem();
          } else{
              FolderObject objFolder = new FolderObject(null, new File(strRootDir), true);
              objFolder.reload();
              objParent = objFolder;
          }
  
          m_objDataModel = new FileSystemDataModel(objParent);
          m_objModel = new SimpleTreeModel(m_objDataModel);
      }
  
      public Date getCurrentTime() {
          return new Date();
      }
  
      public ITreeModel getTreeModel() {
          if (m_objDataModel == null) {
              initTableModel();
          }
          return m_objModel;
      }
  
      /**
       * Returns the value.
       * @return Object
       */
      public Object getValue() {
          return m_objValue;
      }
  
      /**
       * Sets the value.
       * @param value The value to set
       */
      public void setValue(Object value) {
          m_objValue = value;
      }
  
      public INodeRenderFactory getRenderFactory() {
          return new NodeRenderFactory();
      }
  
      public ITreeSessionStateManager getSessionStateManager() {
  		//IPage objPage = getRequestCycle().getPage("contrib:TreeNodeViewPage");
  		//System.out.println("TreeNodeViewPage NamespaceId : "+objPage.getNamespace().getNamespaceId());
          
          if (m_objTreeSessionStateManager == null) {
              String strRootDir = getRequestCycle().getRequestContext().getServlet().getInitParameter("TreeRootDir");
              //System.out.println("strRootDir = " + strRootDir);
  
              m_objTreeSessionStateManager =
                  new FileSystemStateManager(strRootDir);
          }
          return m_objTreeSessionStateManager;
      }
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.ISelectedFolderSource#getSelectedFolder()
  	 */
  	public Collection getSelectedFolderChildren() {
  		TreeView objTreeView = (TreeView)getComponent("treeView");
  		ITreeStateModel objTreeStateModel = objTreeView.getTreeModel().getTreeStateModel();
  		Object objSelectedNodeUID = objTreeStateModel.getSelectedNode();
  		ITreeNode objSelectedNode = null;
  		if(objSelectedNodeUID != null)
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getObject(objSelectedNodeUID);
  		else{
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getRoot();
  		}
  		return objSelectedNode.getChildren();
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeStateListener#treeStateChanged(org.apache.tapestry.contrib.tree.model.TreeStateEvent)
  	 */
  	public void treeStateChanged(TreeStateEvent objEvent) {
  		DirectoryTableView objDirectoryTableView = (DirectoryTableView)getComponent("directoryTableView");
  		objDirectoryTableView.resetState();
  	}
  
  	public ITreeStateListener getTreeStateListener(){
  		return this;
  	}
  
  	public ISelectedFolderSource getSelectedFolderSource(){
  		return this;
  	}
  	
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.ISelectedFolderSource#getSelectedNodeName()
  	 */
  	public String getSelectedNodeName() {
  		TreeView objTreeView = (TreeView)getComponent("treeView");
  		ITreeStateModel objTreeStateModel = objTreeView.getTreeModel().getTreeStateModel();
  		Object objSelectedNodeUID = objTreeStateModel.getSelectedNode();
  		ITreeNode objSelectedNode = null;
  		if(objSelectedNodeUID != null)
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getObject(objSelectedNodeUID);
  		else{
  			objSelectedNode = (ITreeNode)getTreeModel().getTreeDataModel().getRoot();
  		}
  		return objSelectedNode.toString();
  	}
  
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/SimpleTree.java
  
  Index: SimpleTree.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import java.util.Date;
  
  import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
  import org.apache.tapestry.contrib.tree.model.ITreeModel;
  import org.apache.tapestry.contrib.tree.simple.SimpleTreeModel;
  import org.apache.tapestry.contrib.tree.simple.SimpleTreeDataModel;
  
  import org.apache.tapestry.IEngine;
  import org.apache.tapestry.html.BasePage;
  
  /**
   * Simple example page.
   *
   * @version $Revision: 1.1 $
   */
  public class SimpleTree extends BasePage {
      private ITreeDataModel treeDataModel;
      private ITreeModel treeModel;
      private Object value;
  
      public SimpleTree() {
      }
  
      public void attach(IEngine value) {
          super.attach(value);
      }
  
      public void detach() {
          super.detach();
          treeDataModel = null;
          value = null;
      }
  
      public void init() {
          TestTreeNode objParent = new TestTreeNode("Parent");
  
          TestTreeNode objChild1 = new TestTreeNode("Child1");
          TestTreeNode objChild2 = new TestTreeNode("Child2");
          TestTreeNode objChild3 = new TestTreeNode("Child3");
  
          objParent.insert(objChild3);
          objParent.insert(objChild2);
          objParent.insert(objChild1);
  
          TestTreeNode objChild31 = new TestTreeNode("Child31");
          TestTreeNode objChild32 = new TestTreeNode("Child32");
  
          objChild3.insert(objChild32);
          objChild3.insert(objChild31);
  
          treeDataModel = new SimpleTreeDataModel(objParent);
          treeModel = new SimpleTreeModel(treeDataModel);
      }
  
      public Date getCurrentTime() {
          return new Date();
      }
  
      public ITreeModel getTreeModel() {
          if(treeModel == null) {
              init();
          }
          return treeModel;
      }
  
      /**
       * Returns the value.
       * @return Object
       */
      public Object getValue() {
          return value;
      }
  
      /**
       * Sets the value.
       * @param value The value to set
       */
      public void setValue(Object value) {
          this.value = value;
      }
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/DirectoryTableView.java
  
  Index: DirectoryTableView.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples;
  
  import java.util.ArrayList;
  import java.util.Collection;
  
  import org.apache.tapestry.BaseComponent;
  import org.apache.tapestry.IBinding;
  import org.apache.tapestry.contrib.table.components.Table;
  import org.apache.tapestry.contrib.table.model.ITableColumn;
  import org.apache.tapestry.contrib.table.model.ITableModel;
  import org.apache.tapestry.contrib.table.model.simple.SimpleTableColumn;
  import org.apache.tapestry.contrib.table.model.simple.SimpleTableModel;
  import org.apache.tapestry.workbench.tree.examples.fsmodel.SFObject;
  import org.apache.tapestry.event.PageDetachListener;
  import org.apache.tapestry.event.PageEvent;
  
  /**
   * All right reserved.
   * Copyright (c) by Rushmore Digital Ltd.
   * 
   * Created on Sep 2, 2003
   * 
   * @author ceco
   */
  public class DirectoryTableView extends BaseComponent implements PageDetachListener{
  
  	private ITableModel m_objTableModel = null;
  	private ITableColumn[] m_arrColumns = null;
  	private ISelectedFolderSource m_objSelectedFolderSource = null;
  	/**
  	 * 
  	 */
  	public DirectoryTableView() {
  		super();
  		initialize();
  	}
  
  
  	private void initialize(){
  		m_objTableModel = null;
  		m_objSelectedFolderSource = null;
  	}
  	
  	/**
  	 * @see org.apache.tapestry.AbstractComponent#finishLoad()
  	 */
  	protected void finishLoad() {
  		super.finishLoad();
  		getPage().addPageDetachListener(this);
  	}
  
  
  	/**
  	 * @see org.apache.tapestry.event.PageDetachListener#pageDetached(org.apache.tapestry.event.PageEvent)
  	 */
  	public void pageDetached(PageEvent arg0) {
  		initialize();
  	}
  
  	/**
  	 * @return
  	 */
  	public ITableModel getTableModel() {
  		if(m_objTableModel == null){
  			ISelectedFolderSource objSelectedFolderSource = getSelectedFolderSource();
  			Collection colChildrens = objSelectedFolderSource.getSelectedFolderChildren();
  			
  			m_objTableModel = new SimpleTableModel(colChildrens.toArray(), getColumns());
  		}
  		return m_objTableModel;
  	}
  
  	/**
  	 * @return
  	 */
  	public ITableColumn[] getColumns() {
  		if(m_arrColumns == null){
  			ArrayList arrColumnsList = new ArrayList();
  			arrColumnsList.add(new SimpleTableColumn ("Name", true) 
  				{ 
  					public Object getColumnValue(Object objValue) {
  						SFObject objSFObject = (SFObject) objValue;
  						return objSFObject.getName();
  					}
  				});
  
  			arrColumnsList.add(new SimpleTableColumn ("Date", true) 
  				{ 
  					public Object getColumnValue(Object objValue) {
  						SFObject objSFObject = (SFObject) objValue;
  						return objSFObject.getDate();
  					}
  				});
  
  			m_arrColumns = new SimpleTableColumn[arrColumnsList.size()];
  			arrColumnsList.toArray(m_arrColumns);
  		}
  		return m_arrColumns;
  	}
  
  	/**
  	 * @return
  	 */
  	public ISelectedFolderSource getSelectedFolderSource() {
  		if(m_objSelectedFolderSource == null){
  			IBinding objBinding = getBinding("selectedFolderSource");
  			m_objSelectedFolderSource = (ISelectedFolderSource)objBinding.getObject();
  		}
  		return m_objSelectedFolderSource;
  	}
  
  
  	public void resetState(){
  		initialize();
  		Table objTable = (Table)getComponent("table");
  		objTable.reset();
  	}
  	
  	public String getSelectedNodeName(){
  		return getSelectedFolderSource().getSelectedNodeName();
  	}
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/IFileSystemTreeNode.java
  
  Index: IFileSystemTreeNode.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.util.Date;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  
  /**
   * @author ceco
   */
  public interface IFileSystemTreeNode extends ITreeNode {
      String getAbsolutePath();
      AssetsHolder getAssets();
      Date getDate();
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/harddrive.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/AssetsHolder.java
  
  Index: AssetsHolder.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import org.apache.tapestry.asset.PrivateAsset;
  import org.apache.tapestry.resource.ClasspathResourceLocation;
  import org.apache.tapestry.util.DefaultResourceResolver;
  
  /**
   * All right reserved.
   * Copyright (c) by Rushmore Digital Ltd.
   * Created on Oct 3, 2002
   *
   * @author ceco
   *
   */
  public class AssetsHolder {
  
  	private String m_strOpenAssetsURL;
  	private String m_strCloseAssetsURL;
  	private PrivateAsset m_objOpenAsset = null;
  	private PrivateAsset m_objCloseAsset = null;
  	/**
  	 * Constructor for AssetsHolder.
  	 */
  	public AssetsHolder(String strOpenAssetsURL, String strCloseAssetsURL) {
  		super();
  		m_strOpenAssetsURL = strOpenAssetsURL;
  		m_strCloseAssetsURL = strCloseAssetsURL;
  	}
      public PrivateAsset getAssetForOpenNode(){
          if(m_objOpenAsset == null){
              //m_objOpenAsset = new PrivateAsset(m_strOpenAssetsURL);
              m_objOpenAsset =
                  new PrivateAsset
                  (new ClasspathResourceLocation
                   (new DefaultResourceResolver(), m_strOpenAssetsURL), null);
          }
          return m_objOpenAsset;
  	}
  	public PrivateAsset getAssetForCloseNode(){
  		if(m_objCloseAsset == null){
                      //m_objCloseAsset = new PrivateAsset(m_strCloseAssetsURL);
                      m_objCloseAsset =
                          new PrivateAsset
                          (new ClasspathResourceLocation
                           (new DefaultResourceResolver(), m_strCloseAssetsURL),
                           null);
  		}
  		return m_objCloseAsset;
  	}
  
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java
  
  Index: FolderObject.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.File;
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.Vector;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  
  public class FolderObject extends SFObject{
  
      /**
       * @associates <{File}>
       * @supplierCardinality 0..*
       * @link aggregation
       */
      private Vector m_vFiles = null;
  
      /**
       * @associates <{FolderObject}>
       * @supplierCardinality 0..*
       * @link aggregation
       */
      private Vector m_vFolders = null;
      private boolean m_bShared;
  
      public FolderObject(ITreeNode objParent, File objFile, boolean bInvokeInit) {
          super(objParent, objFile);
          if(bInvokeInit)
          	init();
      }
  
      public void reload() {
          m_vFolders = new Vector();
          m_vFiles = new Vector();
  
          File[] arrFiles = getFile().listFiles();
  
          if (arrFiles == null) {
              return;
          }
  
          for (int i=0; i<arrFiles.length; i++) {
              if (arrFiles[i].isDirectory()) {
                  m_vFolders.addElement(new FolderObject(this, arrFiles[i], true));
              } else {
                  m_vFiles.addElement(new FileObject(this, arrFiles[i]));
              }
          }
      }
  
      public boolean isShared() {
          return m_bShared;
      }
  
      public Vector getFolders() {
          if (m_vFolders == null) {
              reload();
          }
          return m_vFolders;
      }
  
      public Vector getFiles() {
          if (m_vFiles == null) {
              reload();
          }
          return m_vFiles;
      }
  
      public int getChildNumber(Object objChild) {
          for(int i = 0; i < m_vFolders.size(); i++) {
              Object objChildFolder = m_vFolders.elementAt(i);
              if (objChildFolder.equals(objChild)) {
                  return i;
              }
          }
          return -1;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#containsChild(ITreeNode)
       */
      public boolean containsChild(ITreeNode node) {
          return true;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getAllowsChildren()
       */
      public boolean getAllowsChildren() {
          return true;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildCount()
       */
      public int getChildCount() {
          return getFolders().size() + getFiles().size();
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildren()
       */
      public Collection getChildren() {
          ArrayList arrChildrens = new ArrayList();
          arrChildrens.addAll(getFolders());
          arrChildrens.addAll(getFiles());
          return arrChildrens;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#isLeaf()
       */
      public boolean isLeaf() {
          return false;
      }
  
      private final static String openImage =
          "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeOpen.gif";
  
      private final static String closedImage =
          "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeClosed.gif";
  
      public AssetsHolder getAssets() {
          if (m_objAssetsHolder == null) {
              m_objAssetsHolder = new AssetsHolder(openImage, closedImage);
          }
          return m_objAssetsHolder;
      }
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/FileSystemStateManager.java
  
  Index: FileSystemStateManager.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.File;
  
  import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
  import org.apache.tapestry.contrib.tree.model.ITreeModel;
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  import org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager;
  import org.apache.tapestry.contrib.tree.model.ITreeStateModel;
  import org.apache.tapestry.contrib.tree.simple.SimpleTreeModel;
  
  /**
   * @author ceco
   */
  public class FileSystemStateManager implements ITreeSessionStateManager {
      private String m_strRootDir;
  
      /**
       * Constructor for FileSystemStateManager.
       */
      public FileSystemStateManager(String strRootDir) {
          super();
          m_strRootDir = strRootDir;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager#getSessionState(ITreeModel)
       */
      public Object getSessionState(ITreeModel objModel) {
          return objModel.getTreeStateModel();
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager#getModel(Object)
       */
      public ITreeModel getModel(Object objSessionState) {
          ITreeStateModel objStateModel = (ITreeStateModel) objSessionState;
  
          ITreeNode objParent;
  
          if (m_strRootDir == null || "".equals(m_strRootDir)) {
              objParent = new FileSystem();
          } else {
              FolderObject objFolder = new FolderObject(null, new File(m_strRootDir), true);
              objFolder.reload();
              objParent = objFolder;
          }
  
          ITreeDataModel objDataModel = new FileSystemDataModel(objParent);
          ITreeModel objModel = new SimpleTreeModel(objDataModel,
                                                      objStateModel);
  
          return objModel;
      }
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/NodeRenderFactory.java
  
  Index: NodeRenderFactory.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import org.apache.tapestry.IMarkupWriter;
  import org.apache.tapestry.IRender;
  import org.apache.tapestry.IRequestCycle;
  import org.apache.tapestry.asset.PrivateAsset;
  import org.apache.tapestry.contrib.tree.components.INodeRenderFactory;
  import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
  import org.apache.tapestry.contrib.tree.model.ITreeModelSource;
  import org.apache.tapestry.contrib.tree.model.ITreeStateModel;
  
  /**
   * @author ceco
   */
  public class NodeRenderFactory implements INodeRenderFactory {
  
      /**
       * Constructor for NodeRenderFactory.
       */
      public NodeRenderFactory() {
          super();
      }
  
      /**
       * @see net.sf.tacos.tree.components.INodeRenderFactory#getRenderByID(Object, ITreeComponent, IRequestCycle)
       */
      public IRender getRenderByID(Object objUniqueKey,
  								 ITreeModelSource objTreeModelSource,
                                   IRequestCycle objCycle) {
          Object objValue = objTreeModelSource.getTreeModel().getTreeDataModel().getObject(objUniqueKey);
          return getRender(objValue, objTreeModelSource, objCycle);
      }
  
      /**
       * @see net.sf.tacos.tree.components.INodeRenderFactory#getRender(Object, ITreeComponent, IRequestCycle)
       */
      public IRender getRender(Object objValue,
  							 ITreeModelSource objTreeModelSource,
                               IRequestCycle objCycle) {
          return new CFileSystemRender(objValue, objTreeModelSource);
      }
  
  
      public class CFileSystemRender implements IRender{
          private Object m_objNode;
          private ITreeModelSource m_objTreeModelSource;
  
          public CFileSystemRender(Object objNode, ITreeModelSource objTreeModelSource) {
              super();
              m_objNode = objNode;
  			m_objTreeModelSource = objTreeModelSource;
          }
  
          public boolean isOpen() {
              ITreeDataModel objDataModel =
  				m_objTreeModelSource.getTreeModel().getTreeDataModel();
              ITreeStateModel objStateModel =
  				m_objTreeModelSource.getTreeModel().getTreeStateModel();
              Object objUniqueKey = objDataModel.getUniqueKey(m_objNode, null);
              return objStateModel.isUniqueKeyExpanded(objUniqueKey);
          }
  
          public boolean isSelected(){
              ITreeDataModel objDataModel =
  				m_objTreeModelSource.getTreeModel().getTreeDataModel();
              ITreeStateModel objStateModel =
  				m_objTreeModelSource.getTreeModel().getTreeStateModel();
              Object objUniqueKey = objDataModel.getUniqueKey(m_objNode, null);
              return objUniqueKey.equals(objStateModel.getSelectedNode());
          }
  
          public void render(IMarkupWriter objWriter, IRequestCycle objCycle) {
              PrivateAsset objAsset = getAsset();
              objWriter.begin("img");
              objWriter.attribute("border", "0");
              objWriter.attribute("src", objAsset.buildURL(objCycle));
              objWriter.attribute("align", "bottom");
              objWriter.end();
              objWriter.print(" ");
              objWriter.begin("span");
              String strClassName = "fsNodeValue";
              objWriter.attribute("class", strClassName);
              objWriter.closeTag();
              objWriter.print(getNode().toString().trim());
              objWriter.end();
          }
  
          public IFileSystemTreeNode getNode(){
              return (IFileSystemTreeNode) m_objNode;
          }
  
          private PrivateAsset getAsset(){
              PrivateAsset objAsset;
  
              if (!isOpen()) {
                  objAsset = getNode().getAssets().getAssetForCloseNode();
              } else {
                  objAsset = getNode().getAssets().getAssetForOpenNode();
              }
  
              return objAsset;
          }
      }
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/FileSystemDataModel.java
  
  Index: FileSystemDataModel.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.Serializable;
  import java.util.Iterator;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  import org.apache.tapestry.contrib.tree.simple.SimpleTreeDataModel;
  
  /**
   * @author ceco
   */
  public class FileSystemDataModel extends SimpleTreeDataModel
      implements Serializable {
      /**
       * Constructor for FileSystemDataModel.
       * @param objRootNode
       */
      public FileSystemDataModel(ITreeNode objRootNode) {
          super(objRootNode);
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getObject(Object)
       */
      public Object getObject(Object objUniqueKey) {
          return findNode(objUniqueKey, (IFileSystemTreeNode)getRoot());
      }
  
      private IFileSystemTreeNode findNode(Object objUniqueKey,
                                           IFileSystemTreeNode objParentNode) {
          String strUniqueKey = (String) objUniqueKey;
          String strParentUniqueKey = objParentNode.getAbsolutePath();
  
          if (strUniqueKey.equals(strParentUniqueKey)) {
              return objParentNode;
          }
  
          IFileSystemTreeNode obj = null;
  
  		if(strUniqueKey.startsWith(strParentUniqueKey))
  		{
  	        for (Iterator iter = objParentNode.getChildren().iterator(); iter.hasNext();) {
  	            IFileSystemTreeNode element = (IFileSystemTreeNode) iter.next();
  	            obj = findNode(objUniqueKey, element);
  	            if (obj != null) {
  	                break;
  	            }
  	        }
  		}
  
          return obj;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getUniqueKey(Object, Object)
       */
      public Object getUniqueKey(Object objTarget, Object objParentUniqueKey) {
          IFileSystemTreeNode objNode = (IFileSystemTreeNode) objTarget;
          return objNode.getAbsolutePath();
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#isAncestorOf(Object, Object)
       */
      public boolean isAncestorOf(Object objChildUniqueKey,
                                  Object objParentUniqueKey) {
          String strChildAbsolutePath = (String)objChildUniqueKey;
          String strParentAbsolutePath = (String)objParentUniqueKey;
  
          if("".equals(strParentAbsolutePath)) {
              return true;
          }
  
          return strChildAbsolutePath.lastIndexOf(strParentAbsolutePath) > -1;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getParentUniqueKey(Object)
       */
      public Object getParentUniqueKey(Object objChildUniqueKey) {
          IFileSystemTreeNode objNode =
              (IFileSystemTreeNode) getObject(objChildUniqueKey);
          return objNode.getParent();
      }
  
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/FileObject.java
  
  Index: FileObject.java
  ===================================================================
  /* Generated by Together */
  
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.File;
  import java.util.ArrayList;
  import java.util.Collection;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  
  public class FileObject extends SFObject {
      private long m_lSize;
  
      public FileObject(ITreeNode objParent, File objFile) {
          super(objParent, objFile);
          init();
      }
  
      protected void init() {
          super.init();
          m_lSize = m_objFile.length();
      }
  
      public long getSize() {
          return m_lSize;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#containsChild(ITreeNode)
       */
      public boolean containsChild(ITreeNode node) {
          return false;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getAllowsChildren()
       */
      public boolean getAllowsChildren() {
          return false;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildCount()
       */
      public int getChildCount() {
          return 0;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildren()
       */
      public Collection getChildren() {
          return new ArrayList();
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#isLeaf()
       */
      public boolean isLeaf() {
          return true;
      }
  
      /**
       * @see org.apache.tapestry.workbench.tree.examples.fsmodel.IFileSystemTreeNode#getAssets()
       */
      public AssetsHolder getAssets() {
          if (m_objAssetsHolder == null) {
              final String a = "/org/apache/tapestry/workbench/tree/examples/fsmodel/file.gif";
              m_objAssetsHolder = new AssetsHolder(a, a);
          }
          return m_objAssetsHolder;
      }
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/FileSystem.java
  
  Index: FileSystem.java
  ===================================================================
  /* Generated by Together */
  
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.File;
  import java.util.Collection;
  import java.util.Date;
  import java.util.Vector;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  
  public class FileSystem implements IFileSystemTreeNode
  {
  
    private transient AssetsHolder m_objAssetsHolder = null;
      /** @associates <{Drive}>
       * @supplierCardinality 0..*
       * @link aggregation*/
      
    private Vector m_vDrives;
  
    public FileSystem()
    {
      //initDrives();
    }
  
    private void initDrives()
    {
      m_vDrives = new Vector();
      File[] arrFile = File.listRoots();
  
      if (arrFile != null)
        for(int i=0; i<arrFile.length; i++)
        {
          m_vDrives.addElement(new Drive(this, arrFile[i]));
        }
    }
  
    public Vector getDrives()
    {
    	if(m_vDrives == null){
    		initDrives();
    	}
      return m_vDrives;
    }
    public int getChildNumber(Object objChild)
    {
      for(int i=0;i<m_vDrives.size();i++)
      {
        Object objChildDrive = m_vDrives.elementAt(i);
        if(objChildDrive.equals(objChild))
        {
          return i;
        }
      }
      return -1;
    }
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeNode#containsChild(ITreeNode)
  	 */
  	public boolean containsChild(ITreeNode node) {
  		return true;
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getAllowsChildren()
  	 */
  	public boolean getAllowsChildren() {
  		return true;
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildCount()
  	 */
  	public int getChildCount() {
  		return getDrives().size();
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildren()
  	 */
  	public Collection getChildren() {
  		return getDrives();
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getParent()
  	 */
  	public ITreeNode getParent() {
  		return null;
  	}
  
  	/**
  	 * @see org.apache.tapestry.contrib.tree.model.ITreeNode#isLeaf()
  	 */
  	public boolean isLeaf() {
  		return false;
  	}
  
  	/**
  	 * @see java.lang.Object#toString()
  	 */
  	public String toString() {
  		return getName();
  	}
  	public String getName(){
  		return "FileSystem";
  	}
  	
  	/**
  	 * @see java.lang.Object#equals(Object)
  	 */
  	public boolean equals(Object arg0) {
  		if(!(arg0 instanceof FileSystem))
  			return false;
  		FileSystem objFileSystem = (FileSystem)arg0;
  		if(getName().equals(objFileSystem.getName()))
  			return true;
  		return false;
  	}
  
  	/**
  	 * @see java.lang.Object#hashCode()
  	 */
  	public int hashCode() {
  		return getName().hashCode();
  	}
  
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.fsmodel.IFileSystemTreeNode#getAbsolutePath()
  	 */
  	public String getAbsolutePath() {
  		return "";
  	}
  
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.fsmodel.IFileSystemTreeNode#getAssets()
  	 */
  	public AssetsHolder getAssets() {
  		if(m_objAssetsHolder == null){
  			m_objAssetsHolder = new AssetsHolder("/org/apache/tapestry/workbench/tree/examples/fsmodel/computer.gif", "/org/apache/tapestry/workbench/tree/examples/fsmodel/computer.gif");
  		}
  		return m_objAssetsHolder;
  	}
  
  	/**
  	 * @see org.apache.tapestry.workbench.tree.examples.fsmodel.IFileSystemTreeNode#getObjectDate()
  	 */
  	public Date getDate() {
  		return null;
  	}
  
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/Drive.java
  
  Index: Drive.java
  ===================================================================
  /* Generated by Together */
  
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.File;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  
  public class Drive extends FolderObject {
  	private String m_strType;
  	private String m_strLabel;
  	private long m_lSize;
  
  	public Drive(ITreeNode objParent, File objFile) {
  		super(objParent, objFile, false);
  	}
  	public long getSize() {
  		return m_lSize;
  	}
  	public String getType() {
  		return m_strType;
  	}
  	public String getLabel() {
  		return m_strLabel;
  	}
  
  	public AssetsHolder getAssets() {
  		if (m_objAssetsHolder == null) {
  			m_objAssetsHolder =
  				new AssetsHolder(
  					"/org/apache/tapestry/workbench/tree/examples/fsmodel/harddrive.gif",
  					"/org/apache/tapestry/workbench/tree/examples/fsmodel/harddrive.gif");
  		}
  		return m_objAssetsHolder;
  	}
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/SFObject.java
  
  Index: SFObject.java
  ===================================================================
  package org.apache.tapestry.workbench.tree.examples.fsmodel;
  
  import java.io.File;
  import java.util.Collection;
  import java.util.Date;
  
  import org.apache.tapestry.contrib.tree.model.ITreeNode;
  
  public abstract class SFObject implements IFileSystemTreeNode{
      protected File m_objFile;
      protected ITreeNode m_objParent;
      private Date m_objDate;
      protected transient AssetsHolder m_objAssetsHolder = null;
  
      public SFObject(ITreeNode objParent, File objFile) {
          m_objParent = objParent;
          m_objFile = objFile;
  //        init();
      }
  
      protected void init() {
  		if(m_objFile.isFile() || m_objFile.isDirectory())
          	m_objDate = new Date(m_objFile.lastModified());
      }
  
      public String getName() {
          if (m_objFile.getName().equals("")) {
              return m_objFile.toString();
          }
          return m_objFile.getName();
      }
  
      public Date getDate() {
          return m_objDate;
      }
  
      public Object getAttributes() {
          return null;
      }
  
      protected File getFile() {
          return m_objFile;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getParent()
       */
      public ITreeNode getParent() {
          return m_objParent;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#containsChild(ITreeNode)
       */
      public boolean containsChild(ITreeNode node) {
          return false;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getAllowsChildren()
       */
      public boolean getAllowsChildren() {
          return false;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildCount()
       */
      public int getChildCount() {
          return 0;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildren()
       */
      public Collection getChildren() {
          return null;
      }
  
      /**
       * @see org.apache.tapestry.contrib.tree.model.ITreeNode#isLeaf()
       */
      public boolean isLeaf() {
          return false;
      }
  
      /**
       * @see java.lang.Object#equals(Object)
       */
      public boolean equals(Object arg0) {
          if (!(arg0 instanceof SFObject)) {
              return false;
          }
          SFObject objSF = (SFObject)arg0;
          if (getFile().equals(objSF.getFile())) {
              return true;
          }
          return false;
      }
  
      /**
       * @see java.lang.Object#hashCode()
       */
      public int hashCode() {
          return m_objFile.hashCode();
      }
  
      /**
       * @see java.lang.Object#toString()
       */
      public String toString() {
          return getName();
      }
  
      /**
       * @see org.apache.tapestry.workbench.tree.examples.fsmodel.IFileSystemTreeNode#getAbsolutePath()
       */
      public String getAbsolutePath() {
          return getFile().getAbsolutePath();
      }
  }
  
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/computer.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/file.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeOpen.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-tapestry/examples/Workbench/src/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeClosed.gif
  
  	<<Binary file>>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org