You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sc...@apache.org on 2005/08/11 00:33:27 UTC
svn commit: r231342 - in /myfaces: examples/trunk/simple/
examples/trunk/simple/src/java/org/apache/myfaces/examples/tree/
tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/
Author: schof
Date: Wed Aug 10 15:33:20 2005
New Revision: 231342
URL: http://svn.apache.org/viewcvs?rev=231342&view=rev
Log:
tentative fix for expandAll problem
Modified:
myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/tree/TreeBacker.java
myfaces/examples/trunk/simple/tree2ExpandAll.jsp
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModel.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModelBase.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java
Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/tree/TreeBacker.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/tree/TreeBacker.java?rev=231342&r1=231341&r2=231342&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/tree/TreeBacker.java (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/tree/TreeBacker.java Wed Aug 10 15:33:20 2005
@@ -15,6 +15,7 @@
*/
package org.apache.myfaces.examples.tree;
+import org.apache.myfaces.custom.tree2.HtmlTree;
import org.apache.myfaces.custom.tree2.TreeNode;
import org.apache.myfaces.custom.tree2.TreeNodeBase;
import org.apache.myfaces.custom.tree2.TreeModel;
@@ -29,14 +30,10 @@
public class TreeBacker
{
private TreeModelBase _treeModel;
+ private HtmlTree _tree;
public TreeNode getTreeData()
{
-// if (_treeModel != null)
-// {
-// return _treeModel;
-// }
-
TreeNode treeData = new TreeNodeBase("foo-folder", "Inbox", false);
// construct a set of fake data (normally your data would come from a database)
@@ -99,14 +96,34 @@
personNode.getChildren().add(folderNode);
treeData.getChildren().add(personNode);
-
-// _treeModel = new TreeModelBase(treeData);
return treeData;
}
+ /**
+ * NOTE: This is just to show an alternative way of supplying tree data. You can supply either a
+ * TreeModel or TreeNode.
+ *
+ * @return TreeModel
+ */
public TreeModel getExpandedTreeData()
{
return new TreeModelBase(getTreeData());
+ }
+
+ public void setTree(HtmlTree tree)
+ {
+ _tree = tree;
+ }
+
+ public HtmlTree getTree()
+ {
+ return _tree;
+ }
+
+ public String expandAll()
+ {
+ _tree.expandAll();
+ return null;
}
}
Modified: myfaces/examples/trunk/simple/tree2ExpandAll.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/tree2ExpandAll.jsp?rev=231342&r1=231341&r2=231342&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/tree2ExpandAll.jsp (original)
+++ myfaces/examples/trunk/simple/tree2ExpandAll.jsp Wed Aug 10 15:33:20 2005
@@ -31,8 +31,11 @@
<b>Tree2 w/expand all</b><br/>
</span>
<br/>
+
+ <h:commandLink value="Expand All" action="#{treeBacker.expandAll}"/>
+ <br/><br/>
- <t:tree2 id="serverTree" value="#{treeBacker.expandedTreeData}" var="node" varNodeToggler="t" clientSideToggle="false">
+ <t:tree2 id="serverTree" value="#{treeBacker.expandedTreeData}" var="node" varNodeToggler="t" clientSideToggle="false" binding="#{treeBacker.tree}">
<f:facet name="person">
<h:panelGroup>
<h:commandLink immediate="true" action="#{t.toggleExpanded}">
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModel.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModel.java?rev=231342&r1=231341&r2=231342&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModel.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModel.java Wed Aug 10 15:33:20 2005
@@ -15,6 +15,7 @@
*/
package org.apache.myfaces.custom.tree2;
+import javax.faces.component.NamingContainer;
import java.io.Serializable;
@@ -27,6 +28,11 @@
*/
public interface TreeModel extends Serializable
{
+ /**
+ * Separator char to be used in node path generation.
+ */
+ public final static String SEPARATOR = String.valueOf(NamingContainer.SEPARATOR_CHAR);
+
/**
* Gets the current {@link TreeNode} or <code>null</code> if no node ID is selected.
* @return The current node
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModelBase.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModelBase.java?rev=231342&r1=231341&r2=231342&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModelBase.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/TreeModelBase.java Wed Aug 10 15:33:20 2005
@@ -19,7 +19,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.faces.component.NamingContainer;
import java.util.StringTokenizer;
import java.util.ArrayList;
/**
@@ -35,8 +34,6 @@
private static final long serialVersionUID = 3969414475396945742L;
private static final Log log = LogFactory.getLog(TreeModelBase.class);
- private final static String SEPARATOR = String.valueOf(NamingContainer.SEPARATOR_CHAR);
-
private TreeNode root;
private TreeNode currentNode;
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java?rev=231342&r1=231341&r2=231342&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/tree2/UITreeData.java Wed Aug 10 15:33:20 2005
@@ -402,6 +402,45 @@
return _model;
}
+ /**
+ * Epands all nodes by default.
+ * @param expandAll boolean
+ */
+ public void expandAll()
+ {
+ String currentNodeId = _nodeId;
+
+ int kidId = 0;
+ expandEverything(null, kidId++);
+ setNodeId(currentNodeId);
+ }
+
+ /**
+ * Private helper method that recursviely expands all of the nodes.
+ *
+ * @param parentId The id of the parent node (if applicable)
+ * @param childCount The child number of the node to expand (will be incremented as you recurse.)
+ */
+ private void expandEverything(String parentId, int childCount)
+ {
+ String nodeId = (parentId != null) ? parentId + TreeModel.SEPARATOR + childCount : "0";
+ setNodeId(nodeId);
+
+ TreeNode node = getDataModel().getNode();
+
+ if (!node.isLeaf() && !isNodeExpanded())
+ {
+ getDataModel().getTreeState().toggleExpanded(nodeId);
+ }
+
+ List children = getNode().getChildren();
+ for (int kount=0; kount < children.size(); kount++)
+ {
+ expandEverything(nodeId, kount);
+ }
+ }
+
+
private void processNodes(FacesContext context, int processAction, String parentId, int childLevel)
{
UIComponent facet = null;