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