[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