You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/01/24 04:05:17 UTC
svn commit: r371786 [4/4] - in /jakarta/tapestry/trunk: ./ eclipse/
examples/AjaxWorkbench/ examples/AjaxWorkbench/src/
examples/AjaxWorkbench/src/config/ examples/AjaxWorkbench/src/context/
examples/AjaxWorkbench/src/context/WEB-INF/ examples/AjaxWork...
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/AssetsHolder.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/AssetsHolder.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/AssetsHolder.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/AssetsHolder.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,74 @@
+// 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.
+
+package org.apache.tapestry.ajaxworkbench.tree.examples.fsmodel;
+
+import org.apache.hivemind.impl.DefaultClassResolver;
+import org.apache.hivemind.util.ClasspathResource;
+import org.apache.hivemind.util.Defense;
+import org.apache.tapestry.asset.PrivateAsset;
+import org.apache.tapestry.engine.IEngineService;
+
+/**
+ * @author ceco
+ */
+public class AssetsHolder
+{
+ private final IEngineService _assetService;
+
+ private final String m_strOpenAssetsURL;
+
+ private final String m_strCloseAssetsURL;
+
+ private PrivateAsset m_objOpenAsset = null;
+
+ private PrivateAsset m_objCloseAsset = null;
+
+ /**
+ * Constructor for AssetsHolder.
+ */
+ public AssetsHolder(IEngineService assetService, String strOpenAssetsURL,
+ String strCloseAssetsURL)
+ {
+ Defense.notNull(assetService, "assetService");
+
+ _assetService = assetService;
+
+ m_strOpenAssetsURL = strOpenAssetsURL;
+ m_strCloseAssetsURL = strCloseAssetsURL;
+ }
+
+ public PrivateAsset getAssetForOpenNode()
+ {
+ if (m_objOpenAsset == null)
+ {
+ // m_objOpenAsset = new PrivateAsset(m_strOpenAssetsURL);
+ m_objOpenAsset = new PrivateAsset(new ClasspathResource(new DefaultClassResolver(),
+ m_strOpenAssetsURL), _assetService, null);
+ }
+ return m_objOpenAsset;
+ }
+
+ public PrivateAsset getAssetForCloseNode()
+ {
+ if (m_objCloseAsset == null)
+ {
+ // m_objCloseAsset = new PrivateAsset(m_strCloseAssetsURL);
+ m_objCloseAsset = new PrivateAsset(new ClasspathResource(new DefaultClassResolver(),
+ m_strCloseAssetsURL), _assetService, null);
+ }
+ return m_objCloseAsset;
+ }
+
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/Drive.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/Drive.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/Drive.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/Drive.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,67 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.tree.examples.fsmodel;
+
+import java.io.File;
+
+import org.apache.tapestry.contrib.tree.model.ITreeNode;
+import org.apache.tapestry.engine.IEngineService;
+
+/** @author tsv? * */
+public class Drive extends FolderObject
+{
+ private static final long serialVersionUID = -4098885307563692077L;
+
+ private String m_strType;
+
+ private String m_strLabel;
+
+ private long m_lSize;
+
+ private final IEngineService _assetService;
+
+ public Drive(ITreeNode objParent, File objFile, IEngineService assetService)
+ {
+ super(objParent, objFile, false, assetService);
+
+ _assetService = assetService;
+ }
+
+ 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(_assetService,
+ "/org/apache/tapestry/workbench/tree/examples/fsmodel/harddrive.gif",
+ "/org/apache/tapestry/workbench/tree/examples/fsmodel/harddrive.gif");
+ }
+ return m_objAssetsHolder;
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileObject.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileObject.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileObject.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileObject.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,104 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.tree.examples.fsmodel;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.tapestry.contrib.tree.model.ITreeNode;
+import org.apache.tapestry.engine.IEngineService;
+
+/** @author tsv? * */
+public class FileObject extends SFObject
+{
+
+ private static final long serialVersionUID = -4552981105079058185L;
+
+ private long m_lSize;
+
+ private final IEngineService _assetService;
+
+ public FileObject(ITreeNode objParent, File objFile, IEngineService assetService)
+ {
+ super(objParent, objFile);
+ _assetService = assetService;
+ 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.ajaxworkbench.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(_assetService, a, a);
+ }
+ return m_objAssetsHolder;
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystem.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystem.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystem.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystem.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,189 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.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;
+import org.apache.tapestry.engine.IEngineService;
+
+/** @author tsv? */
+public class FileSystem implements IFileSystemTreeNode
+{
+
+ private static final long serialVersionUID = -3895257178984217762L;
+
+ private transient AssetsHolder m_objAssetsHolder = null;
+
+ /**
+ * @associates <{Drive}>
+ * @supplierCardinality 0..*
+ * @link aggregation
+ */
+ private Vector m_vDrives;
+
+ private final IEngineService _assetService;
+
+ public FileSystem(IEngineService assetService)
+ {
+ _assetService = assetService;
+ }
+
+ private void initDrives()
+ {
+ m_vDrives = new Vector();
+ File[] arrFile = File.listRoots();
+
+ if (arrFile != null) for(int i = 0; i < arrFile.length; i++)
+ {
+ File objFile = arrFile[i];
+ boolean bFloppy = objFile.getAbsolutePath().startsWith("A:") || objFile.getAbsolutePath().startsWith("B:");
+ if (!bFloppy) m_vDrives.addElement(new Drive(this, objFile, _assetService));
+ }
+ }
+
+ 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.ajaxworkbench.tree.examples.fsmodel.IFileSystemTreeNode#getAbsolutePath()
+ */
+ public String getAbsolutePath()
+ {
+ return "";
+ }
+
+ /**
+ * @see org.apache.tapestry.ajaxworkbench.tree.examples.fsmodel.IFileSystemTreeNode#getAssets()
+ */
+ public AssetsHolder getAssets()
+ {
+ if (m_objAssetsHolder == null)
+ {
+ m_objAssetsHolder = new AssetsHolder(_assetService,
+ "/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.ajaxworkbench.tree.examples.fsmodel.IFileSystemTreeNode#getObjectDate()
+ */
+ public Date getDate()
+ {
+ return null;
+ }
+
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemDataModel.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemDataModel.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemDataModel.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemDataModel.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,107 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.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
+{
+
+ private static final long serialVersionUID = 2384273235598992452L;
+
+ /**
+ * 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();
+ }
+
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemStateManager.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemStateManager.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemStateManager.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FileSystemStateManager.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,79 @@
+// 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.
+
+package org.apache.tapestry.ajaxworkbench.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;
+import org.apache.tapestry.engine.IEngineService;
+
+/**
+ * @author ceco
+ */
+public class FileSystemStateManager implements ITreeSessionStateManager
+{
+ private String m_strRootDir;
+
+ private final IEngineService _assetService;
+
+ /**
+ * Constructor for FileSystemStateManager.
+ */
+ public FileSystemStateManager(String strRootDir, IEngineService assetService)
+ {
+ super();
+ m_strRootDir = strRootDir;
+ _assetService = assetService;
+ }
+
+ /**
+ * @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(_assetService);
+ }
+ else
+ {
+ FolderObject objFolder = new FolderObject(null, new File(m_strRootDir), true, _assetService);
+ objFolder.reload();
+ objParent = objFolder;
+ }
+
+ ITreeDataModel objDataModel = new FileSystemDataModel(objParent);
+ ITreeModel objModel = new SimpleTreeModel(objDataModel, objStateModel);
+
+ return objModel;
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FolderObject.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FolderObject.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FolderObject.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/FolderObject.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,168 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.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;
+import org.apache.tapestry.engine.IEngineService;
+
+/** @author tsv? */
+public class FolderObject extends SFObject
+{
+
+ private static final long serialVersionUID = 1889745019885512018L;
+
+ /**
+ * @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;
+
+ private final IEngineService _assetService;
+
+ public FolderObject(ITreeNode objParent, File objFile, boolean bInvokeInit, IEngineService assetService)
+ {
+ super(objParent, objFile);
+
+ _assetService = assetService;
+
+ 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, _assetService));
+ }
+ else
+ {
+ m_vFiles.addElement(new FileObject(this, arrFiles[i], _assetService));
+ }
+ }
+ }
+
+ 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(_assetService, openImage, closedImage);
+ }
+ return m_objAssetsHolder;
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/IFileSystemTreeNode.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/IFileSystemTreeNode.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/IFileSystemTreeNode.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/IFileSystemTreeNode.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,28 @@
+// 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.
+
+package org.apache.tapestry.ajaxworkbench.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();
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/NodeRenderFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/NodeRenderFactory.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/NodeRenderFactory.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/NodeRenderFactory.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,120 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.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();
+ }
+
+ public IRender getRenderByID(Object objUniqueKey, ITreeModelSource objTreeModelSource, IRequestCycle objCycle)
+ {
+ Object objValue = objTreeModelSource.getTreeModel().getTreeDataModel().getObject(objUniqueKey);
+ return getRender(objValue, objTreeModelSource, objCycle);
+ }
+
+ public IRender getRender(Object objValue, ITreeModelSource objTreeModelSource, IRequestCycle objCycle)
+ {
+ return new CFileSystemRender(objValue, objTreeModelSource);
+ }
+
+ /** Renders a file system? */
+
+ 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());
+ objWriter.attribute("valign", "middle");
+ 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;
+ }
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/SFObject.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/SFObject.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/SFObject.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/SFObject.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,149 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.tree.examples.fsmodel;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.Date;
+
+import org.apache.tapestry.contrib.tree.model.ITreeNode;
+
+/**
+ * @author tsv?
+ */
+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.ajaxworkbench.tree.examples.fsmodel.IFileSystemTreeNode#getAbsolutePath()
+ */
+ public String getAbsolutePath()
+ {
+ return getFile().getAbsolutePath();
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/TreeClosed.gif
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/TreeClosed.gif?rev=371786&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/TreeClosed.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/TreeOpen.gif
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/TreeOpen.gif?rev=371786&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/TreeOpen.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/computer.gif
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/computer.gif?rev=371786&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/computer.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/file.gif
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/file.gif?rev=371786&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/file.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/harddrive.gif
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/harddrive.gif?rev=371786&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/tree/examples/fsmodel/harddrive.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/Upload.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/Upload.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/Upload.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/Upload.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,63 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.upload;
+
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.form.IPropertySelectionModel;
+import org.apache.tapestry.form.StringPropertySelectionModel;
+import org.apache.tapestry.html.BasePage;
+import org.apache.tapestry.request.IUploadFile;
+import org.apache.tapestry.valid.IValidationDelegate;
+
+/**
+ * Contains a form, including an {@link org.apache.tapestry.form.Upload}component.
+ *
+ * @author Howard Lewis Ship
+ */
+
+public abstract class Upload extends BasePage
+{
+
+ private static final String[] BPL_OPTIONS = new String[] { "8", "16", "24", "32", "40", "48" };
+
+ private IPropertySelectionModel bplModel;
+
+ public abstract IUploadFile getFile();
+
+ public abstract boolean isShowAscii();
+
+ public abstract String getBytesPerLine();
+
+ public abstract IValidationDelegate getDelegate();
+
+ @InjectPage("UploadResults")
+ public abstract UploadResults getUploadResults();
+
+ public void doSubmit()
+ {
+ IUploadFile file = getFile();
+
+ UploadResults results = getUploadResults();
+
+ results.activate(file, isShowAscii(), Integer.parseInt(getBytesPerLine()));
+ }
+
+ public IPropertySelectionModel getBytesPerLineModel()
+ {
+ if (bplModel == null) bplModel = new StringPropertySelectionModel(BPL_OPTIONS);
+
+ return bplModel;
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/UploadResults.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/UploadResults.java?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/UploadResults.java (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/java/org/apache/tapestry/ajaxworkbench/upload/UploadResults.java Mon Jan 23 19:04:45 2006
@@ -0,0 +1,136 @@
+// Copyright 2004, 2005, 2006 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.
+
+package org.apache.tapestry.ajaxworkbench.upload;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.tapestry.html.BasePage;
+import org.apache.tapestry.request.IUploadFile;
+import org.apache.tapestry.util.io.BinaryDumpOutputStream;
+
+/**
+ * Displays the uploaded file as a hexadecimal dump.
+ *
+ * @author Howard Lewis Ship
+ */
+
+public abstract class UploadResults extends BasePage
+{
+
+ public abstract void setFile(IUploadFile file);
+
+ public abstract void setFileDump(String fileDump);
+
+ public void activate(IUploadFile file, boolean showAscii, int bytesPerLine)
+ {
+ setFile(file);
+
+ StringWriter writer = null;
+ BinaryDumpOutputStream out = null;
+ InputStream in = null;
+
+ try
+ {
+ in = file.getStream();
+
+ writer = new StringWriter();
+ out = new BinaryDumpOutputStream(writer);
+
+ out.setShowAscii(showAscii);
+ out.setBytesPerLine(bytesPerLine);
+
+ byte[] buffer = new byte[1000];
+
+ while(true)
+ {
+ int length = in.read(buffer);
+
+ if (length < 0) break;
+
+ out.write(buffer, 0, length);
+ }
+
+ in.close();
+ in = null;
+
+ out.close();
+ out = null;
+
+ setFileDump(writer.getBuffer().toString());
+
+ writer.close();
+ writer = null;
+ }
+ catch (IOException ex)
+ {
+ throw new ApplicationRuntimeException("Unable to display file.", this, null, ex);
+ }
+ finally
+ {
+ close(in);
+ close(out);
+ close(writer);
+ }
+
+ getRequestCycle().activate(this);
+ }
+
+ private void close(InputStream stream)
+ {
+ if (stream != null)
+ {
+ try
+ {
+ stream.close();
+ }
+ catch (IOException ex)
+ {
+ }
+ }
+ }
+
+ private void close(OutputStream stream)
+ {
+ if (stream != null)
+ {
+ try
+ {
+ stream.close();
+ }
+ catch (IOException ex)
+ {
+ }
+ }
+ }
+
+ private void close(Writer writer)
+ {
+ if (writer != null)
+ {
+ try
+ {
+ writer.close();
+ }
+ catch (IOException ex)
+ {
+ }
+ }
+ }
+}
Added: jakarta/tapestry/trunk/examples/AjaxWorkbench/src/test/README.txt
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/AjaxWorkbench/src/test/README.txt?rev=371786&view=auto
==============================================================================
--- jakarta/tapestry/trunk/examples/AjaxWorkbench/src/test/README.txt (added)
+++ jakarta/tapestry/trunk/examples/AjaxWorkbench/src/test/README.txt Mon Jan 23 19:04:45 2006
@@ -0,0 +1 @@
+A placeholder. The HiveBuild macros currently expect there to be a src/test even if the module contains no tests.
\ No newline at end of file
Modified: jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java?rev=371786&r1=371785&r2=371786&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java (original)
+++ jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java Mon Jan 23 19:04:45 2006
@@ -28,6 +28,10 @@
private static final long serialVersionUID = 1889745019885512018L;
+ private static final String OPEN_IMAGE = "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeOpen.gif";
+
+ private static final String CLOSED_IMAGE = "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeClosed.gif";
+
/**
* @associates <{File}>
* @supplierCardinality 0..*
@@ -153,15 +157,11 @@
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(_assetService, openImage, closedImage);
+ m_objAssetsHolder = new AssetsHolder(_assetService, OPEN_IMAGE, CLOSED_IMAGE);
}
return m_objAssetsHolder;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org