[richfaces-svn-commits] JBoss Rich Faces SVN: r11796 - in trunk/ui/extendedDataTable/src/main/java/org/richfaces: renderkit and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Dec 16 05:57:02 EST 2008


Author: pgolawski
Date: 2008-12-16 05:57:02 -0500 (Tue, 16 Dec 2008)
New Revision: 11796

Modified:
   trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java
   trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
   trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
   trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java
   trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/html/RichTableMenuRenderer.java
Log:
https://jira.jboss.org/jira/browse/RF-5041
https://jira.jboss.org/jira/browse/RF-5279
https://jira.jboss.org/jira/browse/RF-5171

Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java	2008-12-16 10:43:14 UTC (rev 11795)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java	2008-12-16 10:57:02 UTC (rev 11796)
@@ -260,31 +260,25 @@
 
 	private static final String DEFAULT_WIDTH = "100";
 	
-	private JSONMap value;
+	private JSONObject value;
 
 	private ColumnsSizeState() {
 		super();
 	}
 	
-	static ColumnsSizeState getColumnsSize(UIExtendedDataTable extendedDataTable, JSONMap map){
+	static ColumnsSizeState getColumnsSize(UIExtendedDataTable extendedDataTable, JSONMap state){
 		ColumnsSizeState columnsSize = new ColumnsSizeState();
-		columnsSize.init(extendedDataTable, map);
+		columnsSize.init(extendedDataTable, state);
 		return columnsSize;
 	}
 	
 	/**
 	 * Converts its state from String representation or create default state if it is not set.
 	 */
-	private void init(UIExtendedDataTable extendedDataTable, JSONMap map){
+	private void init(UIExtendedDataTable extendedDataTable, JSONMap state){
 		value = null;
-		if ((map != null) && (map.size()>0)){
-//			//try to restore state from string
-			value = map;
-//			try {
-//				value = new JSONMap(val);
-//			} catch (JSONException e) {
-//				e.printStackTrace();
-//			}
+		if ((state != null) && (state.size()>0)){
+			value = new JSONObject(state);
 		}
 		
 		if (value == null){
@@ -307,7 +301,7 @@
 	 * @return JSON object contains state
 	 */
 	public JSONMap toJSON(){
-		return value;
+		return new JSONMap(value);
 	}
 	
 	/**
@@ -320,7 +314,7 @@
 				UIColumn col = iter.next();
 				writer.key(col.getId()).value(getDefaultColumnSize(col));
 			}
-			value = new JSONMap(writer.endObject().toString());
+			value = new JSONObject(writer.endObject().toString());
 		} catch (JSONException e) {
 			e.printStackTrace();
 		}
@@ -334,7 +328,7 @@
 	public String getColumnSize(UIComponent column){
 		if (value == null)
 			return getDefaultColumnSize(column);
-		String res = (String)value.get(column.getId());
+		String res = (String)value.opt(column.getId());
 		if (res == null){
 			res = getDefaultColumnSize(column);
 		}
@@ -348,15 +342,19 @@
 	public void changeColumnSize(UIExtendedDataTable extendedDataTable, String newValue){
 		if (value == null)
 			return;
-		String[] newWidths = newValue.split(";");
-		int index = 0;
-		for (Iterator<UIColumn> iter = extendedDataTable.getSortedColumns(); iter.hasNext();) {
-			UIComponent col = (UIComponent) iter.next();
-			if (col.isRendered()){
-				String colId = col.getId();
-				value.put(colId, newWidths[index++]);
-			}//if
-		}//for
+		try {
+			String[] newWidths = newValue.split(";");
+			int index = 0;
+			for (Iterator<UIColumn> iter = extendedDataTable.getSortedColumns(); iter.hasNext();) {
+				UIComponent col = (UIComponent) iter.next();
+				if (col.isRendered()){
+					String colId = col.getId();
+					value.put(colId, newWidths[index++]);
+				}//if
+			}//for
+		} catch (JSONException e) {
+			e.printStackTrace();
+		}
 	}//changeColumnSize
 	
 }//ColumnsSizeState
@@ -389,13 +387,8 @@
 	private void init(UIExtendedDataTable extendedDataTable, JSONCollection collection){
 		value = null;
 		if ((collection != null) && (collection.size()>0)){
-			//try to restore state from string 
+			//try to restore state from collection 
 			value = new JSONArray(collection);
-//			try {
-//				value = new JSONArray(val);
-//			} catch (JSONException e) {
-//				e.printStackTrace();
-//			}
 		}
 		
 		if (value == null){
@@ -511,12 +504,10 @@
 	
 	private static final long serialVersionUID = -3923409650272094713L;
 
-	//private static final String SEP = ";";
-	
 	private static final String TRUE = "1";
 	private static final String FALSE = "0";
 
-	private JSONMap value;
+	private JSONObject value;
 
 	private ColumnsVisibility() {
 		super();
@@ -528,32 +519,24 @@
 		return columnsVisibility;
 	}
 	
-	static ColumnsVisibility getColumnsVisibility(UIExtendedDataTable extendedDataTable, JSONMap map){
+	static ColumnsVisibility getColumnsVisibility(UIExtendedDataTable extendedDataTable, JSONMap state){
 		ColumnsVisibility columnsVisibility = new ColumnsVisibility();
-		columnsVisibility.init(extendedDataTable, map);
+		columnsVisibility.init(extendedDataTable, state);
 		return columnsVisibility;
 	}
 	
 	/**
 	 * Converts its state from String representation or create default state if it is not set.
 	 */
-	private void init(UIExtendedDataTable extendedDataTable, JSONMap map){
+	private void init(UIExtendedDataTable extendedDataTable, JSONMap state){
 		value = null;
-		if ((map != null) && (map.size()>0)){
-			value = map;
+		if ((state != null) && (state.size()>0)){
+			value = new JSONObject(state);
 		}
 		
 		if (value == null){
 			createDefaultColumnsVisibility(extendedDataTable);
 		}
-		//set visibility flag for all columns
-		for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
-			UIColumn child = iter.next();
-			if (child instanceof UIColumn) {
-				UIColumn dataColumn = (UIColumn) child;
-				dataColumn.setVisible(isVisible(dataColumn.getId()));
-			}//if
-		}//for
 	}//init
 	
 	/**
@@ -571,7 +554,7 @@
 	 * @return JSON object contains state
 	 */
 	public JSONMap toJSON(){
-		return value;
+		return new JSONMap(value);
 	}
 	
 	/**
@@ -582,9 +565,9 @@
 			JSONWriter writer = new JSONStringer().object();
 			for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
 				UIColumn col = iter.next();
-				writer.key(col.getId()).value(TRUE);
+				writer.key(col.getId()).value(col.isVisible() ? TRUE : FALSE);
 			}
-			value = new JSONMap(writer.endObject().toString());
+			value = new JSONObject(writer.endObject().toString());
 		} catch (JSONException e) {
 			e.printStackTrace();
 		}
@@ -598,7 +581,7 @@
 	boolean isVisible(String columnId){
 		if (value == null)
 			return true;
-		return TRUE.equals(value.get(columnId));
+		return !FALSE.equals(value.opt(columnId));
 	}//isVisible
 	
 	/**
@@ -614,9 +597,7 @@
 		for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
 			UIColumn col = iter.next();
 			if (col.getId().equalsIgnoreCase(columnId)){
-				if (col instanceof UIColumn){
-					column = (UIColumn) col;
-				}
+				column = (UIColumn) col;
 				break;
 			}//if
 		}//for
@@ -625,9 +606,13 @@
 		boolean visible = column.isVisible();
 		//toggle visibility
 		visible = !visible;
-		//set visibility flag for column
-		column.setVisible(visible);
-		value.put(columnId, (visible ? TRUE : FALSE));
+		try {
+			value.put(columnId, (visible ? TRUE : FALSE));
+			//set visibility flag for column
+			column.setVisible(visible);
+		} catch (JSONException e) {
+			e.printStackTrace();
+		}
 	}//changeVisibility
 
 }//ColumnsVisibility

Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java	2008-12-16 10:43:14 UTC (rev 11795)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java	2008-12-16 10:57:02 UTC (rev 11796)
@@ -331,8 +331,8 @@
 		for (Iterator<UIComponent> iterator = list.iterator(); iterator
 				.hasNext();) {
 			UIComponent component = iterator.next();
-			if (component instanceof org.richfaces.component.UIColumn) {
-				org.richfaces.component.UIColumn column = (org.richfaces.component.UIColumn) component;
+			if (component instanceof UIColumn) {
+				UIColumn column = (UIColumn) component;
 				FilterField filterField = column.getFilterField();
 				if (filterField != null) {
 					filterFields.add(filterField);
@@ -417,4 +417,25 @@
 		return chain;
 	}
 
+	@Override
+	public void beforeRenderResponse(FacesContext context) {
+		super.beforeRenderResponse(context);
+		
+		for (Iterator<UIColumn> columns = getChildColumns(); columns
+				.hasNext();) {
+			UIColumn column = columns.next();
+			column.setId(column.getId());
+			column.setVisible(isColumnVisible(column));
+		}
+		
+		UIColumn groupingColumn = getGroupByColumn();
+		if (groupingColumn != null) {// grouping is on
+			if (groupingColumn.getSortOrder().equals(Ordering.UNSORTED)) {
+				groupingColumn.setSortOrder(Ordering.ASCENDING);
+			}
+		}
+	}
+	
+	
+
 }

Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java	2008-12-16 10:43:14 UTC (rev 11795)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java	2008-12-16 10:57:02 UTC (rev 11796)
@@ -265,15 +265,12 @@
         boolean enabled = false;
         while (columns.hasNext()) {
             UIColumn col = columns.next();
-            if (col instanceof UIColumn) {
-                UIColumn dataColumn = (UIColumn) col;
-                if ((internalFilterEnabledColumn(dataColumn) || (dataColumn.getFacet("filter") != null)) && 
-                	dataColumn.isRendered()
-					) {
-					enabled = true;
-					break;
-				}
-            }
+            if ((internalFilterEnabledColumn(col) || (col.getFacet("filter") != null)) && 
+            		col.isRendered()
+				) {
+				enabled = true;
+				break;
+			}
         }
         return enabled;
     }
@@ -1078,35 +1075,6 @@
                 + ".preSendAjaxRequest");
     }
 
-    protected void preDecode(FacesContext context, UIComponent component) {
-        if (component instanceof UIExtendedDataTable) {
-            UIExtendedDataTable table = (UIExtendedDataTable) component;
-            table.ensureTableStateInitialized();
-        }
-        super.preDecode(context, component);
-    }
-
-    protected void preEncodeBegin(FacesContext context, UIComponent component)
-            throws IOException {
-        if (component instanceof UIExtendedDataTable) {
-            UIExtendedDataTable table = (UIExtendedDataTable) component;
-
-            for (Iterator<UIColumn> columns = table.getChildColumns(); columns
-                    .hasNext();) {
-                UIColumn column = columns.next();
-                column.setId(column.getId());
-            }
-
-            if (table.isGroupingOn()) {// grouping is on
-    			UIColumn column = table.getGroupByColumn();
-    			if (column.getSortOrder().equals(Ordering.UNSORTED)){
-    				column.setSortOrder(Ordering.ASCENDING);
-    			}
-            }
-        }
-        super.preEncodeBegin(context, component);
-    }
-
     protected void doDecode(FacesContext context, UIComponent component) {
         super.doDecode(context, component);
         composite.decode(context, component);
@@ -1788,13 +1756,10 @@
         for (Iterator<UIColumn> colums = table.getSortedColumns(); colums
                 .hasNext();) {
             UIColumn col = colums.next();
-            if (col instanceof UIColumn) {
-                UIColumn column = (UIColumn) col;
-                // if (column.isRendered()){
-                String menuId = menuRenderer.renderMenu(context, table, column);
-                ajaxContext.addRenderedArea(menuId);
-                // }
-            }
+            if (col.isRendered()) {
+				String menuId = menuRenderer.renderMenu(context, table, col);
+				ajaxContext.addRenderedArea(menuId);
+			}
         }// for
         table.setRowKey(key);
     }

Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java	2008-12-16 10:43:14 UTC (rev 11795)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java	2008-12-16 10:57:02 UTC (rev 11796)
@@ -56,7 +56,7 @@
 		groupingColumnLabel = "";
 		if (groupingOn){
 			groupingColumn = table.getGroupByColumn();
-			if ((groupingColumn != null) && (groupingColumn instanceof UIColumn)){
+			if (groupingColumn != null){
 				groupingColumnLabel = (String)groupingColumn.getAttributes().get("label");;
 			}
 		}

Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/html/RichTableMenuRenderer.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/html/RichTableMenuRenderer.java	2008-12-16 10:43:14 UTC (rev 11795)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/html/RichTableMenuRenderer.java	2008-12-16 10:57:02 UTC (rev 11796)
@@ -300,14 +300,13 @@
      */
     protected void buildMenuItem(UIComponent parent, UIColumn col)
             throws IOException {
-        if (((Boolean)col.getAttributes().get("rendered")) && (col instanceof UIColumn)) {
-            UIColumn dataColumn = (UIColumn) col;
+    	
+        if (col.isRendered(false)) {
             UIMenuItem menuItem = (UIMenuItem) context.getApplication()
                     .createComponent(UIMenuItem.COMPONENT_TYPE);
 
             menuItem.setSubmitMode("none");
-            Boolean v = dataColumn.isVisible();
-            boolean columnVisible = (v == null ? Boolean.TRUE : v);
+            boolean columnVisible = col.isVisible();
             String actionScript = null;
             StringBuilder actionScriptBuilder = new StringBuilder();
 
@@ -324,10 +323,10 @@
                     actionScript = actionScriptBuilder.toString();
                     if (actionScript.contains("{columnId}"))
                         actionScript = actionScript.replace("{columnId}",
-                                dataColumn.getId());
+                        		col.getId());
                 }
             }// if
-            String label = (String)dataColumn.getAttributes().get("label");
+            String label = (String)col.getAttributes().get("label");
             menuItem.setValue(label == null ? "" : label);
             menuItem.setIcon(columnVisible ? iconCheckedURI : iconUncheckedURI);
             if (menuItem instanceof HtmlMenuItem) {




More information about the richfaces-svn-commits mailing list