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:16:38 UTC
cvs commit: jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple NullSessionStateManager.java SimpleTreeModel.java FullTreeSessionStateManager.java SimpleNodeRenderFactory.java TreeNode.java SimpleSessionStateManager.java SimpleTreeDataModel.java TreePath.java SimpleTreeStateModel.java
tsvetelin 2003/10/31 00:16:38
Added: contrib/src/org/apache/tapestry/contrib/tree/simple
NullSessionStateManager.java SimpleTreeModel.java
FullTreeSessionStateManager.java
SimpleNodeRenderFactory.java TreeNode.java
SimpleSessionStateManager.java
SimpleTreeDataModel.java TreePath.java
SimpleTreeStateModel.java
Log:
Revision Changes Path
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/NullSessionStateManager.java
Index: NullSessionStateManager.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import org.apache.tapestry.contrib.tree.model.ITreeModel;
import org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager;
/**
* All right reserved.
* Copyright (c) by Rushmore Digital Ltd.
* Created on Sep 27, 2002
*
* @author ceco
*
*/
public class NullSessionStateManager implements ITreeSessionStateManager {
/**
* Constructor for NullSessionStateManager.
*/
public NullSessionStateManager() {
super();
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager#getSessionState(ITreeModel)
*/
public Object getSessionState(ITreeModel objModel) {
return null;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager#getModel(Object)
*/
public ITreeModel getModel(Object objSessionState) {
return null;
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/SimpleTreeModel.java
Index: SimpleTreeModel.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import java.io.Serializable;
import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
import org.apache.tapestry.contrib.tree.model.ITreeModel;
import org.apache.tapestry.contrib.tree.model.ITreeStateModel;
/**
* All right reserved.
* Copyright (c) by Rushmore Digital Ltd.
* Created on Sep 25, 2002
*
* @author ceco
*
*/
public class SimpleTreeModel implements ITreeModel, Serializable{
private ITreeDataModel m_objDataModel;
private ITreeStateModel m_objTreeStateModel;
/**
* Constructor for SimpleTreeModel.
*/
public SimpleTreeModel(ITreeDataModel objDataModel) {
this(objDataModel, new SimpleTreeStateModel());
}
public SimpleTreeModel(ITreeDataModel objDataModel, ITreeStateModel objTreeStateModel) {
super();
m_objDataModel = objDataModel;
m_objTreeStateModel = objTreeStateModel;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeModel#getTreeDataModel()
*/
public ITreeDataModel getTreeDataModel() {
return m_objDataModel;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeModel#getTreeStateModel()
*/
public ITreeStateModel getTreeStateModel() {
return m_objTreeStateModel;
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/FullTreeSessionStateManager.java
Index: FullTreeSessionStateManager.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import org.apache.tapestry.contrib.tree.model.ITreeModel;
import org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager;
/**
* All right reserved.
* Copyright (c) by Rushmore Digital Ltd.
* Created on Sep 25, 2002
*
* @author ceco
*
*/
public class FullTreeSessionStateManager implements ITreeSessionStateManager {
/**
* Constructor for FullTreeSessionStateManager.
*/
public FullTreeSessionStateManager() {
super();
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager#getSessionState(ITreeModel)
*/
public Object getSessionState(ITreeModel objModel) {
return objModel;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeSessionStateManager#getModel(Object)
*/
public ITreeModel getModel(Object objSessionState) {
return (ITreeModel)objSessionState;
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/SimpleNodeRenderFactory.java
Index: SimpleNodeRenderFactory.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.contrib.tree.components.INodeRenderFactory;
import org.apache.tapestry.contrib.tree.model.ITreeModelSource;
import org.apache.tapestry.valid.RenderString;
/**
* @author ceco
*/
public class SimpleNodeRenderFactory implements INodeRenderFactory {
/**
* Constructor for SimpleNodeRenderFactory.
*/
public SimpleNodeRenderFactory() {
super();
}
/**
* @see org.apache.tapestry.contrib.tree.model.INodeRenderFactory#getRender(ITreeNode, ITreeModel, IRequestCycle)
*/
public IRender getRenderByID(
Object objUniqueKey,
ITreeModelSource objTreeModelSource,
IRequestCycle cycle)
{
Object objValue = objTreeModelSource.getTreeModel().getTreeDataModel().getObject(objUniqueKey);
return getRender(objValue, objTreeModelSource, cycle);
}
/**
* @see org.apache.tapestry.contrib.tree.model.INodeRenderFactory#getRender(Object, IRequestCycle)
*/
public IRender getRender(Object objValue, ITreeModelSource objTreeModelSource, IRequestCycle objCycle) {
return new RenderString(objValue.toString());
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/TreeNode.java
Index: TreeNode.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.tapestry.contrib.tree.model.IMutableTreeNode;
import org.apache.tapestry.contrib.tree.model.ITreeNode;
/**
* @author ceco
*/
public class TreeNode implements IMutableTreeNode {
protected Set m_setChildren;
protected IMutableTreeNode m_objParentNode;
/**
* Constructor for TreeNode.
*/
public TreeNode() {
this(null);
}
public TreeNode(IMutableTreeNode parentNode) {
super();
m_objParentNode = parentNode;
m_setChildren = new HashSet();
}
/**
* @see com.rushmore.components.tree.ITreeNode#getChildCount()
*/
public int getChildCount() {
return m_setChildren.size();
}
/**
* @see com.rushmore.components.tree.ITreeNode#getParent()
*/
public ITreeNode getParent() {
return m_objParentNode;
}
/**
* @see com.rushmore.components.tree.ITreeNode#getAllowsChildren()
*/
public boolean getAllowsChildren() {
return true;
}
/**
* @see com.rushmore.components.tree.ITreeNode#isLeaf()
*/
public boolean isLeaf() {
return m_setChildren.size() == 0 ? true:false;
}
/**
* @see com.rushmore.components.tree.ITreeNode#children()
*/
public Collection children() {
return m_setChildren;
}
/**
* @see com.rushmore.components.tree.IMutableTreeNode#insert(IMutableTreeNode, int)
*/
public void insert(IMutableTreeNode child) {
child.setParent(this);
m_setChildren.add(child);
}
/**
* @see com.rushmore.components.tree.IMutableTreeNode#remove(IMutableTreeNode)
*/
public void remove(IMutableTreeNode node) {
m_setChildren.remove(node);
}
/**
* @see com.rushmore.components.tree.IMutableTreeNode#removeFromParent()
*/
public void removeFromParent() {
m_objParentNode.remove(this);
m_objParentNode = null;
}
/**
* @see com.rushmore.components.tree.IMutableTreeNode#setParent(IMutableTreeNode)
*/
public void setParent(IMutableTreeNode newParent) {
m_objParentNode = newParent;
}
/**
* @see com.rushmore.components.tree.IMutableTreeNode#insert(Collection)
*/
public void insert(Collection colChildren){
for (Iterator iter = colChildren.iterator(); iter.hasNext();) {
IMutableTreeNode element = (IMutableTreeNode) iter.next();
element.setParent(this);
m_setChildren.add(element);
}
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeNode#containsChild(ITreeNode)
*/
public boolean containsChild(ITreeNode node) {
return m_setChildren.contains(node);
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeNode#getChildren()
*/
public Collection getChildren() {
return m_setChildren;
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/SimpleSessionStateManager.java
Index: SimpleSessionStateManager.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import org.apache.tapestry.contrib.tree.model.*;
/**
* All right reserved.
* Copyright (c) by Rushmore Digital Ltd.
* Created on Sep 24, 2002
*
* @author ceco
*
*/
public class SimpleSessionStateManager implements ITreeSessionStateManager {
/**
* Constructor for SimpleSessionStateManager.
*/
public SimpleSessionStateManager() {
super();
}
/**
* @see com.rushmore.components.tree.ITreeSessionStateManager#getSessionState(ITreeModel)
*/
public Object getSessionState(ITreeModel objModel) {
return objModel;
}
/**
* @see com.rushmore.components.tree.ITreeSessionStateManager#getModel(Object)
*/
public ITreeModel getModel(Object objSessionState) {
return (ITreeModel)objSessionState;
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/SimpleTreeDataModel.java
Index: SimpleTreeDataModel.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import java.io.Serializable;
import java.util.Iterator;
import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
import org.apache.tapestry.contrib.tree.model.ITreeNode;
/**
* All right reserved.
* Copyright (c) by Rushmore Digital Ltd.
* Created on Sep 25, 2002
*
* @author ceco
*
*/
public class SimpleTreeDataModel implements ITreeDataModel, Serializable {
protected ITreeNode m_objRootNode;
/**
* Constructor for SimpleTreeDataModel.
*/
public SimpleTreeDataModel(ITreeNode objRootNode) {
super();
m_objRootNode = objRootNode;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getRoot()
*/
public Object getRoot() {
return m_objRootNode;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getChildCount(Object)
*/
public int getChildCount(Object objParent) {
ITreeNode objParentNode = (ITreeNode)objParent;
return objParentNode.getChildCount();
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getChildren(Object)
*/
public Iterator getChildren(Object objParent) {
ITreeNode objParentNode = (ITreeNode)objParent;
return objParentNode.getChildren().iterator();
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getObject(Object)
*/
public Object getObject(Object objUniqueKey) {
if(objUniqueKey != null) {
TreePath objPath = (TreePath)objUniqueKey;
return objPath.getLastPathComponent();
}
return null;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getUniqueKey(Object, Object)
*/
public Object getUniqueKey(Object objTarget, Object objParentUniqueKey) {
TreePath objPath = (TreePath)objParentUniqueKey;
Object objTargetUID = null;
if(objPath != null){
objTargetUID = objPath.pathByAddingChild(objTarget);
}else{
objTargetUID = new TreePath(objTarget);
}
return objTargetUID;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#isAncestorOf(Object, Object)
*/
public boolean isAncestorOf(Object objTargetUniqueKey, Object objParentUniqueKey) {
TreePath objParentPath = (TreePath)objParentUniqueKey;
TreePath objTargetPath = (TreePath)objTargetUniqueKey;
boolean bResult = objParentPath.isDescendant(objTargetPath);
return bResult;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeDataModel#getParentID(Object)
*/
public Object getParentUniqueKey(Object objChildUniqueKey) {
TreePath objChildPath = (TreePath)objChildUniqueKey;
TreePath objParentPath = objChildPath.getParentPath();
if(objParentPath == null)
return null;
return objParentPath.getLastPathComponent();
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/TreePath.java
Index: TreePath.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import java.io.*;
import java.util.Vector;
/*
* @version 1.00 30/07/03
* @author ceco
*/
public class TreePath extends Object implements Serializable {
private TreePath parentPath;
transient private Object lastPathComponent;
public TreePath(Object[] path) {
if (path == null || path.length == 0)
throw new IllegalArgumentException("path in TreePath must be non null and not empty.");
lastPathComponent = path[path.length - 1];
if (path.length > 1)
parentPath = new TreePath(path, path.length - 1);
}
public TreePath(Object singlePath) {
if (singlePath == null)
throw new IllegalArgumentException("path in TreePath must be non null.");
lastPathComponent = singlePath;
parentPath = null;
}
protected TreePath(TreePath parent, Object lastElement) {
if (lastElement == null)
throw new IllegalArgumentException("path in TreePath must be non null.");
parentPath = parent;
lastPathComponent = lastElement;
}
protected TreePath(Object[] path, int length) {
lastPathComponent = path[length - 1];
if (length > 1)
parentPath = new TreePath(path, length - 1);
}
protected TreePath() {
}
public Object[] getPath() {
int i = getPathCount();
Object[] result = new Object[i--];
for (TreePath path = this; path != null; path = path.parentPath) {
result[i--] = path.lastPathComponent;
}
return result;
}
public Object getLastPathComponent() {
return lastPathComponent;
}
/**
* Returns the number of elements in the path.
*
* @return an int giving a count of items the path
*/
public int getPathCount() {
int result = 0;
for (TreePath path = this; path != null; path = path.parentPath) {
result++;
}
return result;
}
public Object getPathComponent(int element) {
int pathLength = getPathCount();
if (element < 0 || element >= pathLength)
throw new IllegalArgumentException(
"Index " + element + " is out of the specified range");
TreePath path = this;
for (int i = pathLength - 1; i != element; i--) {
path = path.parentPath;
}
return path.lastPathComponent;
}
public boolean equals(Object o) {
if (o == this)
return true;
if (o instanceof TreePath) {
TreePath oTreePath = (TreePath) o;
if (getPathCount() != oTreePath.getPathCount())
return false;
for (TreePath path = this; path != null; path = path.parentPath) {
if (!(path.lastPathComponent.equals(oTreePath.lastPathComponent))) {
return false;
}
oTreePath = oTreePath.parentPath;
}
return true;
}
return false;
}
public int hashCode() {
return lastPathComponent.hashCode();
}
public boolean isDescendant(TreePath aTreePath) {
if (aTreePath == this)
return true;
if (aTreePath != null) {
int pathLength = getPathCount();
int oPathLength = aTreePath.getPathCount();
if (oPathLength < pathLength)
// Can't be a descendant, has fewer components in the path.
return false;
while (oPathLength-- > pathLength)
aTreePath = aTreePath.getParentPath();
return equals(aTreePath);
}
return false;
}
public TreePath pathByAddingChild(Object child) {
if (child == null)
throw new NullPointerException("Null child not allowed");
return new TreePath(this, child);
}
public TreePath getParentPath() {
return parentPath;
}
public String toString() {
StringBuffer tempSpot = new StringBuffer("[");
for (int counter = 0, maxCounter = getPathCount(); counter < maxCounter; counter++) {
if (counter > 0)
tempSpot.append(", ");
tempSpot.append(getPathComponent(counter));
}
tempSpot.append("]");
return tempSpot.toString();
}
// Serialization support.
private void writeObject(ObjectOutputStream s) throws IOException {
s.defaultWriteObject();
Vector values = new Vector();
//boolean writePath = true;
if (lastPathComponent != null && (lastPathComponent instanceof Serializable)) {
values.addElement("lastPathComponent");
values.addElement(lastPathComponent);
}
s.writeObject(values);
}
private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
s.defaultReadObject();
Vector values = (Vector) s.readObject();
int indexCounter = 0;
int maxCounter = values.size();
if (indexCounter < maxCounter
&& values.elementAt(indexCounter).equals("lastPathComponent")) {
lastPathComponent = values.elementAt(++indexCounter);
indexCounter++;
}
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/simple/SimpleTreeStateModel.java
Index: SimpleTreeStateModel.java
===================================================================
package org.apache.tapestry.contrib.tree.simple;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import org.apache.tapestry.contrib.tree.model.ITreeStateModel;
/**
* All right reserved.
* Copyright (c) by Rushmore Digital Ltd.
* Created on Sep 25, 2002
*
* @author ceco
*
*/
public class SimpleTreeStateModel implements ITreeStateModel, Serializable{
private Set m_setExpanded;
private Object m_objSelectedNodeUID = null;
/**
* Constructor for SimpleTreeStateModel.
*/
public SimpleTreeStateModel() {
super();
initialize();
}
private void initialize(){
m_setExpanded = new HashSet();
m_objSelectedNodeUID = null;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#getExpandSelection()
*/
public Set getExpandSelection() {
return m_setExpanded;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#expand(Object)
*/
public void expand(Object objUniqueKey) {
m_setExpanded.add(objUniqueKey);
setSelectedNode(objUniqueKey);
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#expandPath(Object)
*/
public void expandPath(Object objUniqueKey) {
m_setExpanded.add(objUniqueKey);
setSelectedNode(objUniqueKey);
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#collapse(Object)
*/
public void collapse(Object objUniqueKey) {
m_setExpanded.remove(objUniqueKey);
setSelectedNode(objUniqueKey);
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#collapsePath(Object)
*/
public void collapsePath(Object objUniqueKey) {
m_setExpanded.remove(objUniqueKey);
setSelectedNode(objUniqueKey);
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#isUniqueKeyExpanded(Object)
*/
public boolean isUniqueKeyExpanded(Object objUniqueKey) {
return m_setExpanded.contains(objUniqueKey);
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#getSelectedNode()
*/
public Object getSelectedNode() {
return m_objSelectedNodeUID;
}
private void setSelectedNode(Object objUniqueKey){
if(m_objSelectedNodeUID == null || !m_objSelectedNodeUID.equals(objUniqueKey))
m_objSelectedNodeUID = objUniqueKey;
}
/**
* @see org.apache.tapestry.contrib.tree.model.ITreeStateModel#resetState()
*/
public void resetState() {
initialize();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org