[richfaces-svn-commits] JBoss Rich Faces SVN: r2152 - in trunk/ui/tree/src/main: resources/org/richfaces/renderkit/html/css and 2 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Aug 8 12:16:41 EDT 2007


Author: pyaschenko
Date: 2007-08-08 12:16:41 -0400 (Wed, 08 Aug 2007)
New Revision: 2152

Modified:
   trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
   trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java
   trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
   trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss
   trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item.js
   trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js
   trunk/ui/tree/src/main/templates/htmlTree.jspx
   trunk/ui/tree/src/main/templates/htmlTreeNode.jspx
Log:
Change nesting tables markup to div-based one

Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java	2007-08-08 16:16:41 UTC (rev 2152)
@@ -70,11 +70,12 @@
 	}
 
 	protected String getToggleScript(FacesContext context, UITreeNode treeNode, String to) {
-		if ("handle".equals(to) && treeNode.getUITree().isToggleOnClick() ||
-				"mainRow".equals(to) && !treeNode.getUITree().isToggleOnClick())
+		UITree tree = treeNode.getUITree();
+		if ("handle".equals(to) && tree.isToggleOnClick() ||
+				"mainRow".equals(to) && !tree.isToggleOnClick())
 			return "";
 
-		UITree tree = treeNode.getUITree();
+		boolean showLines = tree.isShowConnectingLines();
 		String id = treeNode.getClientId(context);
 
 		if (UITree.SWITCH_AJAX.equals(tree.getSwitchType())) {
@@ -87,10 +88,13 @@
 
 			parameters.put(id + NODE_EXPANDED_INPUT_SUFFIX, String.valueOf(!tree
 					.isExpanded()));
+			
+			boolean isLast = false;
 			if (((Boolean) (treeNode.getAttributes().get("isLastElement")))
 					.booleanValue()) {
 				parameters.put(tree.getBaseClientId(context)
 						+ UITree.LAST_ELEMENT_FLAG, Boolean.TRUE);
+				isLast=true;
 			}
 			function.addParameter(eventOptions);
 
@@ -98,6 +102,7 @@
 			function.appendScript(buffer);
 			buffer.append(";");
 			return buffer.toString();
+			
 		} else if (UITree.SWITCH_SERVER.equals(tree.getSwitchType())) {
 			String paramName = id + NODE_EXPANDED_INPUT_SUFFIX;
 			

Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeDataModelEventNavigator.java	2007-08-08 16:16:41 UTC (rev 2152)
@@ -62,7 +62,7 @@
 			int level = this.rowKey != null ? this.rowKey.depth() : 0;
 
 			int delta = level - newRowKey.depth();
-
+			
 			//System.out.println("TreeDataModelEventNavigator.followRowKey() " + delta);
 			
 			if (delta > 0) {
@@ -74,11 +74,11 @@
 					throw new IllegalArgumentException("One or more nodes skipped in falldown - maybe illegal RowKey, incorrect model or model handler!");
 				}
 			}
+			
+			stackedLast = new Boolean(actualLast);
 
-			stackedLast = new Boolean(actualLast);
+			this.tree.setRowKey(context, newRowKey);
 			
-			this.tree.setRowKey(context, newRowKey);
-
 			if (delta > 0) {
 				afterUp(delta);
 			} else if (delta == -1) {

Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java	2007-08-08 16:16:41 UTC (rev 2152)
@@ -63,6 +63,7 @@
 		private String clientId;
 		private boolean expanded;
 		private boolean showLines;
+		private boolean isLastElement;
 		
 		private RendererDataModelEventNavigator(UITree tree,
 				TreeRowKey floatingKey, FacesContext context, Flag droppedDownToLevelFlag) {
@@ -97,46 +98,48 @@
 			return id;
 		}
 
-		public void afterDown() throws IOException {
-			openLevelDownTable(context, tree, writer);
-		}
-
 		public void afterUp(int levels) throws IOException {
+			//writer.write("** afterUp **");
 			for (int i = 0; i < levels; i++) {
-				closeLevelDownTable(context, tree, writer);
-				writer.endElement("td");
-				writer.endElement("tr");
+				closeDiv();
 			}
+			//if (!isLastElement) closeDiv();
 		}
 
+		public void afterDown() throws IOException {
+		}		
+		
 		public void beforeDown() throws IOException {
+			//writer.write("** beforeDown **");
 			droppedDownToLevelFlag.setFlag();
+			
+			if (this.getRowKey()==null ) openDiv();
 
-			writer.startElement("tr", tree);
+		}
+
+		public void beforeUp(int levels) throws IOException {
+		}
+		
+		public void openDiv() throws IOException {
+			writer.startElement("div", tree);
 			getUtils().writeAttribute(writer, "id", clientId + "childs");
 
 			if (!expanded) {
 				getUtils().writeAttribute(writer, "style", "display: none;");
 			}
-
+			
+			String styleClasses = "";
 			if (this.getRowKey() != null) {
-				writer.startElement("td", tree);
-				if (!isStackedLastElement()) {
-					if (showLines)
-						getUtils().writeAttribute(writer, "class",
-						"dr-tree-h-ic-line");
-				}
-				writer.endElement("td");
+				styleClasses = "dr-tree-h-ic-div";
+				if (!isStackedLastElement() && showLines) styleClasses += " dr-tree-h-ic-line";
 			}
-
-			writer.startElement("td", tree);
-			getUtils().writeAttribute(writer, "colspan", "2");
-			getUtils().writeAttribute(writer, "id", clientId + "childs:td");
-			getUtils().writeAttribute(writer, "valign", "top");
+			if (styleClasses!="") getUtils().writeAttribute(writer, "class", styleClasses);
 		}
-
-		public void beforeUp(int levels) {
+		
+		public void closeDiv() throws IOException {
+			writer.endElement("div");
 		}
+		
 	}
 
 	private class DataVisitorWithLastElement implements DataVisitor,
@@ -150,13 +153,13 @@
 
 		private final UITree tree;
 
-		private final TreeDataModelEventNavigator navigator;
+		private final RendererDataModelEventNavigator navigator;
 		
 		private TreeStateAdvisor methodBindingAdvisor = null;
 
 		private DataVisitorWithLastElement(ResponseWriter writer,
 				Flag flag, UITree tree,
-				TreeDataModelEventNavigator navigator) {
+				RendererDataModelEventNavigator navigator) {
 			this.writer = writer;
 			this.flag = flag;
 			this.tree = tree;
@@ -170,8 +173,7 @@
 			navigator.followRowKey(context, (TreeRowKey) rowKey);
 
 			if (!flag.isFlagSet()) {
-				closeLevelDownTable(context, tree, writer);
-				openLevelDownTable(context, tree, writer);
+				navigator.closeDiv();
 			} else {
 				flag.resetFlag();
 			}
@@ -182,6 +184,8 @@
 				nodeFacet.getAttributes().put("isLastElement", new Boolean(isLastElement));
 
 				renderChild(context, nodeFacet);
+				//writer.write("** after renderChild **");
+				navigator.openDiv();
 			} finally {
 				if (oldAttrValue != null) {
 					nodeFacet.getAttributes().put("isLastElement", oldAttrValue);
@@ -305,6 +309,8 @@
 								encodeScripts = true;
 								renderedAreas.add(id);
 								encodedAreaIds.add(id);
+								renderedAreas.add(id+":childs");
+								encodedAreaIds.add(id+":childs");
 							}
 						}
 						
@@ -464,13 +470,13 @@
 			
 			if (key != null) {
 				droppedDownToLevelFlag.setFlag();
-				openLevelDownTable(context, input, writer);
+				//openLevelDownTable(context, input, writer);
 				input.setRowKey(context, key);
 			} else {
 				input.setRowKey(context, null);
 			}
 
-			TreeDataModelEventNavigator levelNavigator = new RendererDataModelEventNavigator(input, rowKey, context,
+			RendererDataModelEventNavigator levelNavigator = new RendererDataModelEventNavigator(input, rowKey, context,
 					droppedDownToLevelFlag);
 
 			final TreeRange stateRange = (TreeRange) input.getComponentState().getRange();
@@ -502,9 +508,9 @@
 					droppedDownToLevelFlag, input,
 					levelNavigator), treeRange, key, null);
 
-			if (key != null) {
+			/*if (key != null) {
 				closeLevelDownTable(context, input, writer);
-			}
+			}*/
 
 			levelNavigator.followRowKey(context, null);
 		} finally {
@@ -512,28 +518,6 @@
 			input.restoreOrigValue();
 		}
 	}
-
-	private void openLevelDownTable(FacesContext context, UITree tree,
-			ResponseWriter writer) throws IOException {
-		writer.startElement("table", tree);
-
-		UITreeNode node = tree.getNodeFacet();
-
-		RendererUtils utils = getUtils();
-		utils.writeAttribute(writer, "border", "0");
-		utils.writeAttribute(writer, "cellpadding", "0");
-		utils.writeAttribute(writer, "cellspacing", "0");
-		utils.writeAttribute(writer, "id", node.getClientId(context));
-		utils.writeAttribute(writer, "style", "width: 100%;");
-		utils.writeAttribute(writer, "rich:nodeId", node.getId());
-		writer.startElement("tbody", tree);
-	}
-
-	private void closeLevelDownTable(FacesContext context, UITree tree,
-			ResponseWriter writer) throws IOException {
-		writer.endElement("tbody");
-		writer.endElement("table");
-	}
 }
 
 class Flag {

Modified: trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss
===================================================================
--- trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss	2007-08-08 16:16:41 UTC (rev 2152)
@@ -11,9 +11,14 @@
 	display: none;
 }
 
+.dr-tree-h-ic-div {
+	margin-left : 8px;
+	padding-left : 10px;
+}
+
 .dr-tree-h-ic {
 	width: 16px;
-	padding : 1px
+	padding: 1px;
 }
 
 .dr-tree-h-ic-img-md{
@@ -31,7 +36,7 @@
 }
 
 .dr-tree-h-ic-line {
-	background-position: center;
+	background-position: left;
 	background-repeat: repeat-y;
 }
 

Modified: trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item.js
===================================================================
--- trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item.js	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree-item.js	2007-08-08 16:16:41 UTC (rev 2152)
@@ -66,7 +66,7 @@
 			this.onContextMenu = new Function(contextMenu + "; return true;");
 		}
 
-		var childsTd = $(childsRowId + Tree.ID_DEVIDER + Tree.ID_CHILDS_TD);
+		var childsTd = $(childsRowId/* + Tree.ID_DEVIDER + Tree.ID_CHILDS_TD*/);
 		if (childsTd) {
             for(var child = childsTd.firstChild; child != null; child = child.nextSibling ) {
                 if (child.nodeType == 1 && child.tagName.toLowerCase() == "table") {

Modified: trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js
===================================================================
--- trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js	2007-08-08 16:16:41 UTC (rev 2152)
@@ -112,7 +112,7 @@
 		var contentId = this.id;
 
 		this.elements.contentTd = $(contentId + 
-			Tree.ID_DEVIDER + Tree.ID_CHILDS_ROW + Tree.ID_DEVIDER + Tree.ID_CHILDS_TD);
+			Tree.ID_DEVIDER + Tree.ID_CHILDS_ROW/* + Tree.ID_DEVIDER + Tree.ID_CHILDS_TD*/);
 
 		if (this.elements.contentTd) {
             for(var child = this.elements.contentTd.firstChild; child != null; child = child.nextSibling ) {

Modified: trunk/ui/tree/src/main/templates/htmlTree.jspx
===================================================================
--- trunk/ui/tree/src/main/templates/htmlTree.jspx	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/templates/htmlTree.jspx	2007-08-08 16:16:41 UTC (rev 2152)
@@ -44,11 +44,15 @@
         <f:parameter value="id,style,class"/>
     </f:call>
 
-	<table width="100%" cellpadding="0" cellspacing="0" border="0">
+	<!-- table width="100%" cellpadding="0" cellspacing="0" border="0">
 		<tbody>
 			<vcp:body />
 		</tbody>
-	</table>
+	</table-->
+	<div id="#{clientId}:children">
+			<vcp:body />
+	</div>
+
 	
 	<f:call name="encodeSelectionStateInput" />
 	<f:clientId var="clientId" />

Modified: trunk/ui/tree/src/main/templates/htmlTreeNode.jspx
===================================================================
--- trunk/ui/tree/src/main/templates/htmlTreeNode.jspx	2007-08-08 15:25:04 UTC (rev 2151)
+++ trunk/ui/tree/src/main/templates/htmlTreeNode.jspx	2007-08-08 16:16:41 UTC (rev 2152)
@@ -31,6 +31,9 @@
 	<f:call name="initializeLines" />
 	<f:call name="initializeResources" />
 
+	<table border="0" cellpadding="0" cellspacing="0" id="#{clientId}" style="width:100%">
+	<tbody>
+
 	<tr id="#{clientId}:mainRow" onclick="#{component.attributes['onclick']} #{this:getToggleScript(context, component, 'mainRow')}" >
 		<f:call name="encodeAttributeParameters" />
 		
@@ -204,4 +207,7 @@
             <vcp:body />
 		</td>
 	</tr>
+	</tbody>
+	</table>
+	
 </f:root>
\ No newline at end of file




More information about the richfaces-svn-commits mailing list