[richfaces-svn-commits] JBoss Rich Faces SVN: r5050 - in branches/3.1.x: samples/treeModelDemo/src/main/java/org/richfaces/model and 2 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Dec 27 15:48:39 EST 2007


Author: nbelaevski
Date: 2007-12-27 15:48:39 -0500 (Thu, 27 Dec 2007)
New Revision: 5050

Added:
   branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/model/SimpleRecursiveNode.java
Modified:
   branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/TreeModelBean.java
   branches/3.1.x/samples/treeModelDemo/src/main/webapp/pages/index.jsp
   branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
   branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
Log:
http://jira.jboss.com/jira/browse/RF-980

Modified: branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/TreeModelBean.java
===================================================================
--- branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/TreeModelBean.java	2007-12-27 19:45:44 UTC (rev 5049)
+++ branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/TreeModelBean.java	2007-12-27 20:48:39 UTC (rev 5050)
@@ -3,7 +3,10 @@
  */
 package org.richfaces;
 
+import java.util.List;
+
 import org.richfaces.component.UITree;
+import org.richfaces.model.SimpleRecursiveNode;
 
 /**
  * @author Nick Belaevski
@@ -15,4 +18,25 @@
 	public Boolean adviseNodeOpened(UITree tree) {
 		return Boolean.TRUE;
 	}
+
+	private SimpleRecursiveNode simpleRecursiveNode;
+	
+	public TreeModelBean() {
+		simpleRecursiveNode = new SimpleRecursiveNode(null, null);
+		for (int i = 0; i < 5; i++) {
+			SimpleRecursiveNode node2 = new SimpleRecursiveNode(simpleRecursiveNode, "Node " + i);
+		
+			for (int j = 0; j < 6; j++) {
+				SimpleRecursiveNode node3 = new SimpleRecursiveNode(node2, "Node " + i + " " + j);
+			
+				for (int k = 0; k < 4; k++) {
+					SimpleRecursiveNode node4 = new SimpleRecursiveNode(node3, "Node " + i + " " + j + " " + k);
+				}
+			}
+		}
+	}
+	
+	public List getSimpleResursiveNodes() {
+		return simpleRecursiveNode.getChildren();
+	}
 }

Copied: branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/model/SimpleRecursiveNode.java (from rev 4967, trunk/samples/treeModelDemo/src/main/java/org/richfaces/model/SimpleRecursiveNode.java)
===================================================================
--- branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/model/SimpleRecursiveNode.java	                        (rev 0)
+++ branches/3.1.x/samples/treeModelDemo/src/main/java/org/richfaces/model/SimpleRecursiveNode.java	2007-12-27 20:48:39 UTC (rev 5050)
@@ -0,0 +1,79 @@
+/**
+ * License Agreement.
+ *
+ *  JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007  Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 
+ * <br /><br />
+ * 
+ * Created 22.12.2007
+ * @author Nick Belaevski
+ * @since 3.2
+ */
+
+public class SimpleRecursiveNode {
+
+	private SimpleRecursiveNode parent;
+	
+	private List children = new ArrayList();
+
+	private String text;
+
+	public SimpleRecursiveNode(SimpleRecursiveNode parent,
+			String text) {
+		super();
+		this.parent = parent;
+		if (parent != null) {
+			parent.addChild(this);
+		}
+		this.text = text;
+	}
+	
+	public void addChild(SimpleRecursiveNode node) {
+		children.add(node);
+	}
+
+	public void removeChild(SimpleRecursiveNode node) {
+		children.remove(node);
+	}
+
+	public void remove() {
+		if (parent != null) {
+			parent.removeChild(this);
+		}
+	}
+	
+	public SimpleRecursiveNode getParent() {
+		return parent;
+	}
+	
+	public List getChildren() {
+		return children;
+	}
+	
+	public String getText() {
+		return text;
+	}
+}

Modified: branches/3.1.x/samples/treeModelDemo/src/main/webapp/pages/index.jsp
===================================================================
--- branches/3.1.x/samples/treeModelDemo/src/main/webapp/pages/index.jsp	2007-12-27 19:45:44 UTC (rev 5049)
+++ branches/3.1.x/samples/treeModelDemo/src/main/webapp/pages/index.jsp	2007-12-27 20:48:39 UTC (rev 5050)
@@ -85,6 +85,14 @@
 						</model:treeNodes--%>
 					</model:treeNodesAdaptor>
 				</tree:tree>
+
+				<tree:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
+					<model:recursiveTreeNodesAdaptor roots="#{treeModelBean.simpleResursiveNodes}" var="node" nodes="#{node.children}">
+						<tree:treeNode>
+							<h:commandLink value="#{node.text}" action="#{node.remove}" />
+						</tree:treeNode>
+					</model:recursiveTreeNodesAdaptor>
+				</tree:tree>
 			</h:form>
 		</f:view>
 	</body>	

Modified: branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
===================================================================
--- branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java	2007-12-27 19:45:44 UTC (rev 5049)
+++ branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java	2007-12-27 20:48:39 UTC (rev 5050)
@@ -66,10 +66,11 @@
 		String id = treeNode.getClientId(context);
 
 		if (UITree.SWITCH_AJAX.equals(tree.getSwitchType())) {
-			JSFunction function = AjaxRendererUtils.buildAjaxFunction(tree.getNodeFacet(),
+			UITreeNode nodeFacet = tree.getNodeFacet();
+			JSFunction function = AjaxRendererUtils.buildAjaxFunction(nodeFacet,
 					context);
 			Map eventOptions = AjaxRendererUtils.buildEventOptions(context,
-					tree.getNodeFacet());
+					nodeFacet);
 			Map parameters = (Map) eventOptions.get("parameters");
 			parameters.remove(id);
 

Modified: branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
===================================================================
--- branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java	2007-12-27 19:45:44 UTC (rev 5049)
+++ branches/3.1.x/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java	2007-12-27 20:48:39 UTC (rev 5050)
@@ -492,7 +492,9 @@
 			Object rowKey = tree.getRowKey();
 			try {
 				tree.setRowKey(selectedNodeKey);
-				result = tree.getNodeFacet().getClientId(context);
+				if (tree.isRowAvailable()) {
+					result = tree.getNodeFacet().getClientId(context);
+				}
 			} finally {
 				try {
 					tree.setRowKey(rowKey);




More information about the richfaces-svn-commits mailing list