[richfaces-svn-commits] JBoss Rich Faces SVN: r1326 - in trunk/sandbox/scrollable-grid/src/main: javascript/ClientUI/controls/grid and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Jun 26 12:13:22 EDT 2007


Author: konstantin.mishin
Date: 2007-06-26 12:13:22 -0400 (Tue, 26 Jun 2007)
New Revision: 1326

Modified:
   trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/GridRendererState.java
   trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
   trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridHeader.js
   trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js
   trunk/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx
Log:
add column hide JS API, server part

Modified: trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/GridRendererState.java
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/GridRendererState.java	2007-06-26 15:55:43 UTC (rev 1325)
+++ trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/GridRendererState.java	2007-06-26 16:13:22 UTC (rev 1326)
@@ -5,6 +5,7 @@
 
 import java.io.Serializable;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -32,6 +33,8 @@
 	
 	private boolean fake;
 	
+	private HashSet ids = new HashSet();
+	
 	private Object rowClasses[];
 	
 	private int rowClassesSize;
@@ -417,5 +420,13 @@
 			this.rowClasses = rowClasses.toArray();
 			rowClassesSize = this.rowClasses.length;
 		}
+	}
+
+	public HashSet getIds() {
+		return ids;
+	}
+
+	public void addId(String id) {
+		ids.add(id);
 	}	
 }

Modified: trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java	2007-06-26 15:55:43 UTC (rev 1325)
+++ trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java	2007-06-26 16:13:22 UTC (rev 1326)
@@ -98,7 +98,7 @@
 			
 			int cell_index = state.getCellIndex();
 			String client_id = state.getClientId();
-						
+			state.addId(column.getId());			
 			headerCellTemplate = getHeaderCellTemplate();
 			
 			ComponentVariables variables = ComponentsVariableResolver.getVariables(headerCellTemplate, column);
@@ -334,7 +334,7 @@
 		options.addOption("columnsCount", new Integer(columnCount));
 		options.addOption("rowsCount", new Integer(grid.getRows()));
 		options.addEventHandler("onselectionchange");
-		
+		options.addOption("ids", GridRendererState.getRendererState(context).getIds());
 		JSFunction function = new JSFunction("new ClientUI.controls.grid.ScrollableGrid");
 		function.addParameter(options);
 		

Modified: trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridHeader.js
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridHeader.js	2007-06-26 15:55:43 UTC (rev 1325)
+++ trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridHeader.js	2007-06-26 16:13:22 UTC (rev 1326)
@@ -129,8 +129,10 @@
 		var i = 0, h, j=0;
 		var cols = $A(this.headerFrozenRow.getElement().getElementsByTagName("col"));
 		var cells = $A(this.headerFrozenRow.getElement().rows[0].cells);		
+		var ids = this.grid.options.ids;		
 		cells.each(function(cell) {
 			columns[i] = {
+				columnId: ids[i],
 				col: $(cols[j]),
 				width: parseInt(cols[j].width), //Element.getWidth(cell),
 				innerHTML: cell.innerHTML,
@@ -163,9 +165,10 @@
 
 		j=0;		
 		cols = $A(this.headerRow.getElement().getElementsByTagName("col"));
-		cells = $A(this.headerRow.getElement().rows[0].cells);		
+		cells = $A(this.headerRow.getElement().rows[0].cells);
 		cells.each(function(cell) {
 			columns[i] = {
+				columnId: ids[i],
 				col: $(cols[j]),
 				width: parseInt(cols[j].width), //Element.getWidth(cell),
 				innerHTML: cell.innerHTML,
@@ -429,10 +432,12 @@
 	},
 	
 	hideColumn: function(index, frozen) {
-		var colomn = this._columns.splice(index,1)[0];
-		colomn.col.parentNode.removeChild(colomn.col);
-		colomn.bodyCol.parentNode.removeChild(colomn.bodyCol);
-		colomn.footerCol.parentNode.removeChild(colomn.footerCol);
+		var column = this._columns.splice(index,1)[0];
+		var input = $(this.grid.getElement().id + "_hc")
+		input.value = input.value + column.columnId + ",";
+		column.col.parentNode.removeChild(column.col);
+		column.bodyCol.parentNode.removeChild(column.bodyCol);
+		column.footerCol.parentNode.removeChild(column.footerCol);
 		var rows;
 		if(frozen) {
 			rows = this.headerFrozenRow.getElement().rows;

Modified: trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js	2007-06-26 15:55:43 UTC (rev 1325)
+++ trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js	2007-06-26 16:13:22 UTC (rev 1326)
@@ -121,15 +121,15 @@
 	
 	doCollapse: function(index) {
 		var header = this.getHeader();
-		var length = header.headerFrozenRow.getElement().rows[0].cells.length;
-		if(index < length) {
-			this.hideColumn(index, true);
-		} else {
-			index -= fcount;
-			length = header.headerRow.getElement().rows[0].cells.length;
-			if (index < length - 1){
-			this.hideColumn(index, false);			
+		var flength = header.headerFrozenRow.getElement().rows[0].cells.length;
+		var nlength = header.headerRow.getElement().rows[0].cells.length;
+		if(index < flength + nlength - 1) {
+			var frozen = true;
+			if(index >= flength) {
+				index -= fcount;
+				frozen = false;			
 			}
+			this.hideColumn(index, frozen);
 		}
 	},
 	

Modified: trunk/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx	2007-06-26 15:55:43 UTC (rev 1325)
+++ trunk/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx	2007-06-26 16:13:22 UTC (rev 1326)
@@ -162,6 +162,7 @@
 			</div>
 		</div>			
 	
+		<input type="hidden" name="#{clientId}_hc" id="#{clientId}_hc"/>
 		<input type="hidden" name="#{clientId}_state_input" id="#{clientId}_state_input"/>
 		<input type="hidden" name="#{clientId}_options_input" id="#{clientId}_options_input"/>
 		<input type="hidden" name="#{clienId}_rows_input" id="#{clientId}_rows_input" value="#{rows_count}"/>
@@ -170,9 +171,7 @@
 		<f:call name="contributorsEncodeHere"/>
 		
 	</div>	
-		
-	<f:call name="tearDownState"/>
-		
+				
 	<jsp:scriptlet>
 		if(component.getFacets().containsKey("splash")){
 			UIComponent splash = component.getFacet("splash");
@@ -193,6 +192,7 @@
 		
 //		]]>
 	</script>
+	<f:call name="tearDownState"/>
 </f:root>	
 	
 	




More information about the richfaces-svn-commits mailing list