[richfaces-svn-commits] JBoss Rich Faces SVN: r414 - in trunk/richfaces/tree/src: main/java/org/richfaces/renderkit and 3 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Apr 13 13:29:02 EDT 2007


Author: nbelaevski
Date: 2007-04-13 13:29:02 -0400 (Fri, 13 Apr 2007)
New Revision: 414

Modified:
   trunk/richfaces/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java
   trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java
   trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
   trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
   trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/html/images/TreePlusImage.java
   trunk/richfaces/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java
   trunk/richfaces/tree/src/test/java/org/richfaces/component/TreeNodeTest.java
   trunk/richfaces/tree/src/test/java/org/richfaces/component/xml/TreeDataBuilderTest.java
Log:
Tree not expanding in "ajax" mode reopened fixed

Modified: trunk/richfaces/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -46,9 +46,10 @@
 
 		public void process(FacesContext context, Object rowKey, Object argument)
 				throws IOException {
-			treeDataModel.setRowKey(rowKey);
-			locateTreeNode((TreeRowKey) rowKey, true).setData(
-					treeDataModel.getRowData());
+			TreeRowKey treeRowKey = (TreeRowKey) rowKey;
+			treeDataModel.setRowKey(treeRowKey);
+			locateTreeNode(treeRowKey, true).setData(treeDataModel.getRowData());
+
 			if (visitor != null) {
 				visitor.process(context, rowKey, argument);
 			}
@@ -115,7 +116,7 @@
 		TreeNode treeNode = treeDataModel.locateTreeNode(rowKey);
 		
 		if (treeNode != null) {
-			if (cachedTreeNode == null || (!treeNode.isLeaf() && cachedTreeNode.isLeaf())) {
+			if (cachedTreeNode == null || (cachedTreeNode.isLeaf() && !treeNode.isLeaf())) {
 				//fill cache
 				treeDataModel.walk(context, new Visitor(dataVisitor), range,
 						rowKey, argument, last);

Modified: trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/component/UITree.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -25,6 +25,7 @@
 import java.util.Iterator;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Set;
 
 import javax.faces.application.Application;
 import javax.faces.component.NamingContainer;
@@ -129,7 +130,7 @@
 			Application application = facesContext.getApplication();
 			defaultFacet = (UITreeNode) application
 			.createComponent(UITreeNode.COMPONENT_TYPE);
-			defaultFacet.setId(facesContext.getViewRoot().createUniqueId());
+			defaultFacet.setId("_defaultNodeFace");
 			defaultFacet.setParent(this);
 			defaultFacet.getAttributes().put(
 					UITreeNode.DEFAULT_NODE_FACE_ATTRIBUTE_NAME, Boolean.TRUE);
@@ -248,9 +249,19 @@
 		if (cacheableModel != null) {
 			if (cacheableModel.isTransient()) {
 				state.setTreeDataModel(null);
+				setExtendedDataModel(createDataModel(false));
+			} else {
+				Set ajaxKeys = getAjaxKeys();
+				for (Iterator iterator = ajaxKeys.iterator(); iterator
+						.hasNext();) {
+					TreeRowKey treeRowKey = (TreeRowKey) iterator.next();
+					
+					cacheableModel.resetSub(treeRowKey);
+				}
 			}
 		}
 		
+
 		// transfer nodes delayed to open to rendering queue
 		state.transferQueuedNodes();
 		// re-set stopInCollapsed to handle AJAX switch type change
@@ -478,8 +489,7 @@
 		return isAjaxSubmitSelection();
 	}
 
-
-	protected ExtendedDataModel createDataModel() {
+	private ExtendedDataModel createDataModel(boolean allowTransientModel) {
 		TreeState state = ((TreeState) getComponentState());
 		CacheableTreeDataModel stateModel = state.getTreeDataModel();
 
@@ -488,7 +498,7 @@
 		
 		if (stateModel == null) {
 			String preserveModel = getPreserveModel();
-			if (PRESERVE_MODEL_REQUEST.equals(preserveModel)) {
+			if (allowTransientModel && PRESERVE_MODEL_REQUEST.equals(preserveModel)) {
 				stateModel = new CacheableTreeRequestDataModel(treeDataModel);
 				state.setTreeDataModel(stateModel);
 			} else if (PRESERVE_MODEL_STATE.equals(preserveModel)) {
@@ -504,6 +514,11 @@
 
 		return stateModel;
 	}
+	
+	
+	protected ExtendedDataModel createDataModel() {
+		return createDataModel(true);
+	}
 
 	/**
 	 * Queues expansion command for node whose row key is equal to rowKey
@@ -691,8 +706,8 @@
 				String id = super.getId();
 
 				if (id == null) {
-					id = FacesContext.getCurrentInstance().getViewRoot()
-					.createUniqueId();
+					id = "_defaultNodeFaceOutput";//FacesContext.getCurrentInstance().getViewRoot()
+					//.createUniqueId();
 
 					setId(id);
 				}

Modified: trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -30,7 +30,6 @@
 import org.richfaces.component.state.events.CollapseNodeCommandEvent;
 import org.richfaces.component.state.events.ExpandNodeCommandEvent;
 import org.richfaces.component.util.ViewUtil;
-import org.richfaces.renderkit.DnDParametersEncoder;
 
 /**
  * @author Nick - mailto:nbelaevski at exadel.com created 23.11.2006

Modified: trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -41,13 +41,11 @@
 import org.ajax4jsf.framework.util.javascript.JSFunction;
 import org.ajax4jsf.framework.util.javascript.JSReference;
 import org.ajax4jsf.framework.util.javascript.ScriptUtils;
-import org.richfaces.component.CacheableTreeDataModel;
 import org.richfaces.component.LastElementAware;
 import org.richfaces.component.TreeRowKey;
 import org.richfaces.component.UITree;
 import org.richfaces.component.UITreeNode;
 import org.richfaces.component.nsutils.NSUtils;
-import org.richfaces.component.state.TreeState;
 
 public abstract class TreeRendererBase extends CompositeRenderer {
 
@@ -159,7 +157,7 @@
 						while (ajaxKeysItr.hasNext()) {
 							TreeRowKey key = (TreeRowKey) ajaxKeysItr.next();
 							tree.setRowKey(key);
-
+							
 							String id = tree.getNodeFacet().getClientId(context);
 							if (ids.isEmpty() || ids.contains(id) || ids.contains(tree.getClientId(context))/* handle tree updates requests */) {
 								writeContent(context, tree, key);
@@ -301,12 +299,6 @@
 
 		TreeRowKey rowKey = (TreeRowKey) key;
 		
-		TreeState state = (TreeState) input.getComponentState();
-		CacheableTreeDataModel cacheableModel = state.getTreeDataModel();
-		if (cacheableModel != null) {
-			cacheableModel.resetSub(rowKey);
-		}
-		
 		final TreeDataModelEventNavigator levelNavigator = new TreeDataModelEventNavigator(
 				input, rowKey) {
 

Modified: trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/html/images/TreePlusImage.java
===================================================================
--- trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/html/images/TreePlusImage.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/main/java/org/richfaces/renderkit/html/images/TreePlusImage.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -31,7 +31,6 @@
 import javax.faces.context.FacesContext;
 
 import org.ajax4jsf.framework.resource.ResourceContext;
-import org.richfaces.renderkit.html.images.TreeImageBase.TreeImageData;
 
 public class TreePlusImage extends TreeImageBase {
 	private static final Dimension dimensions = new Dimension(16, 16);

Modified: trunk/richfaces/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java
===================================================================
--- trunk/richfaces/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -21,9 +21,7 @@
 
 package org.richfaces.component;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;

Modified: trunk/richfaces/tree/src/test/java/org/richfaces/component/TreeNodeTest.java
===================================================================
--- trunk/richfaces/tree/src/test/java/org/richfaces/component/TreeNodeTest.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/test/java/org/richfaces/component/TreeNodeTest.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -23,10 +23,6 @@
 
 import java.util.Iterator;
 
-import javax.faces.component.UIViewRoot;
-
-import org.richfaces.component.html.HtmlTree;
-
 import junit.framework.TestCase;
 
 /**

Modified: trunk/richfaces/tree/src/test/java/org/richfaces/component/xml/TreeDataBuilderTest.java
===================================================================
--- trunk/richfaces/tree/src/test/java/org/richfaces/component/xml/TreeDataBuilderTest.java	2007-04-13 17:12:45 UTC (rev 413)
+++ trunk/richfaces/tree/src/test/java/org/richfaces/component/xml/TreeDataBuilderTest.java	2007-04-13 17:29:02 UTC (rev 414)
@@ -24,11 +24,11 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import junit.framework.TestCase;
+
 import org.richfaces.component.TreeNode;
 import org.xml.sax.InputSource;
 
-import junit.framework.TestCase;
-
 /**
  * @author Nick Belaevski - nbelaevski at exadel.com
  * created 30.03.2007




More information about the richfaces-svn-commits mailing list