JBoss Rich Faces SVN: r11110 - trunk/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans.
by richfaces-svn-commits@lists.jboss.org
Author: pgolawski
Date: 2008-11-12 06:53:44 -0500 (Wed, 12 Nov 2008)
New Revision: 11110
Modified:
trunk/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java
Log:
stop using Base64 to encode and decode cookie
Modified: trunk/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java
===================================================================
--- trunk/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java 2008-11-12 11:53:00 UTC (rev 11109)
+++ trunk/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java 2008-11-12 11:53:44 UTC (rev 11110)
@@ -1,6 +1,5 @@
package org.richfaces.samples.extdt.beans;
-import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
@@ -11,7 +10,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.ajax4jsf.util.base64.Base64;
import org.richfaces.model.ExtendedTableDataModel;
import org.richfaces.model.selection.SimpleSelection;
import org.richfaces.samples.extdt.model.impl.DemoPatient;
@@ -87,11 +85,7 @@
if (cookies != null){
for (Cookie c : cookies){
if (c.getName().equals("extdtSampleTabelState")){
- try {
- tableState = new String(Base64.decodeBase64(c.getValue().getBytes("UTF-8")),"UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
+ tableState = c.getValue();
break;
}
}
@@ -101,17 +95,11 @@
}
public void setTableState(String tableState) {
- try {
- this.tableState = tableState;
- //save state in cookies
- Cookie stateCookie = new Cookie("extdtSampleTabelState", new String(Base64.encodeBase64(this.tableState.getBytes("UTF-8")),"UTF-8"));
- stateCookie.setMaxAge(30 * 24 * 60 * 60);
- ((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).addCookie(stateCookie);
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
-
-
+ this.tableState = tableState;
+ //save state in cookies
+ Cookie stateCookie = new Cookie("extdtSampleTabelState", this.tableState);
+ stateCookie.setMaxAge(30 * 24 * 60 * 60);
+ ((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).addCookie(stateCookie);
}
public Comparator<DemoPatient> getDateComparator(){
16 years, 10 months
JBoss Rich Faces SVN: r11109 - trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: pgolawski
Date: 2008-11-12 06:53:00 -0500 (Wed, 12 Nov 2008)
New Revision: 11109
Modified:
trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java
Log:
adapt testEncodeHeader method to changes in renderer
Modified: trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java
===================================================================
--- trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java 2008-11-12 11:52:17 UTC (rev 11108)
+++ trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java 2008-11-12 11:53:00 UTC (rev 11109)
@@ -140,29 +140,15 @@
element = node;
assertNotNull(element);
- String className = element.getAttributeValue("id");
- assertNotNull(className);
- assertEquals("extDT:header", className);
- } else if (node.getNodeName().equalsIgnoreCase("tr")) {
- element = node;
- assertNotNull(element);
-
- String className = element.getAttributeValue("id");
- assertNotNull(className);
- //FIXME need to check for fakeIeRow OR headerRow
-// if ( className.length()>0)
-// assertEquals("extDT:fakeIeRow", className);
- } else if (node.getNodeName().equalsIgnoreCase("thead")) {
- element = node;
- assertNotNull(element);
-
- String className = element.getAttributeValue("th");
- assertNotNull(className);
-
- assertEquals(
- "extdt-headercell extdt-fakeierow rich-extdt-headercell ",
- className);
- }
+ String id = element.getAttributeValue("id");
+ assertNotNull(id);
+ assertEquals("extDT:header", id);
+
+ assertEquals(element.getHtmlElementsByTagName("tr").size(), 3);
+ assertNotNull(element.getHtmlElementById("extDT:fakeIeRow"));
+ assertNotNull(element.getHtmlElementById("extDT:headerRow"));
+
+ }
}
} catch (Exception e) {
16 years, 10 months
JBoss Rich Faces SVN: r11108 - trunk/ui/extendedDataTable/src/test/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: pgolawski
Date: 2008-11-12 06:52:17 -0500 (Wed, 12 Nov 2008)
New Revision: 11108
Modified:
trunk/ui/extendedDataTable/src/test/java/org/richfaces/component/DefaultExtendedDataTable.java
Log:
implement already added methods
Modified: trunk/ui/extendedDataTable/src/test/java/org/richfaces/component/DefaultExtendedDataTable.java
===================================================================
--- trunk/ui/extendedDataTable/src/test/java/org/richfaces/component/DefaultExtendedDataTable.java 2008-11-12 11:51:33 UTC (rev 11107)
+++ trunk/ui/extendedDataTable/src/test/java/org/richfaces/component/DefaultExtendedDataTable.java 2008-11-12 11:52:17 UTC (rev 11108)
@@ -55,4 +55,13 @@
public void setFilterFields(List<FilterField> filterFields) {
}
+ @Override
+ public String getGroupingColumn() {
+ return "";
+ }
+
+ @Override
+ public void setGroupingColumn(String groupingColumn) {
+ }
+
}
16 years, 10 months
JBoss Rich Faces SVN: r11107 - trunk/ui/extendedDataTable/src/main/config/component.
by richfaces-svn-commits@lists.jboss.org
Author: pgolawski
Date: 2008-11-12 06:51:33 -0500 (Wed, 12 Nov 2008)
New Revision: 11107
Modified:
trunk/ui/extendedDataTable/src/main/config/component/ExtendedDataTable.xml
Log:
[RF-4814]: groupingColumn vs groupByColumn attribute
Modified: trunk/ui/extendedDataTable/src/main/config/component/ExtendedDataTable.xml
===================================================================
--- trunk/ui/extendedDataTable/src/main/config/component/ExtendedDataTable.xml 2008-11-12 11:50:19 UTC (rev 11106)
+++ trunk/ui/extendedDataTable/src/main/config/component/ExtendedDataTable.xml 2008-11-12 11:51:33 UTC (rev 11107)
@@ -38,10 +38,8 @@
</property>
<property>
<name>groupingColumn</name>
-
- <description>The information in the table wiil be grouped by the
- information in the column, which id is provided with this
- attribute.</description>
+ <classname>java.lang.String</classname>
+ <description>Defines an id of column which the data is grouped by.</description>
</property>
<property>
<name>onselectionchange</name>
@@ -234,5 +232,9 @@
<classname>org.richfaces.model.selection.Selection</classname>
<description>Value binding representing selected rows</description>
</property>
+ <property hidden="true" existintag="false" exist="false">
+ <name>groupByColumn</name>
+ </property>
+
</component>
</components>
16 years, 10 months
JBoss Rich Faces SVN: r11106 - trunk/ui/extendedDataTable/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: pgolawski
Date: 2008-11-12 06:50:19 -0500 (Wed, 12 Nov 2008)
New Revision: 11106
Modified:
trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java
Log:
use JSON format to save and restore state
Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java 2008-11-12 11:49:44 UTC (rev 11105)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/ExtendedDataTableState.java 2008-11-12 11:50:19 UTC (rev 11106)
@@ -5,7 +5,6 @@
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
@@ -17,11 +16,17 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import org.ajax4jsf.util.HtmlDimensions;
+import org.richfaces.json.JSONArray;
+import org.richfaces.json.JSONCollection;
+import org.richfaces.json.JSONException;
+import org.richfaces.json.JSONMap;
+import org.richfaces.json.JSONObject;
+import org.richfaces.json.JSONStringer;
+import org.richfaces.json.JSONWriter;
import org.richfaces.model.Ordering;
/**
- * @author pawelgo
+ * @author pgolawski
*
*/
public class ExtendedDataTableState implements Serializable {
@@ -30,8 +35,10 @@
public static final String TABLE_STATE_ATTR_NAME = "tableState";
- protected static final String SEP = ":";
+ public static final String NONE_COLUMN_ID = "none";
+ //protected static final String SEP = ":";
+
protected ColumnsOrder columnsOrder;
protected ColumnsVisibility columnsVisibility;
protected ColumnsSizeState columnsSizeState;
@@ -47,22 +54,24 @@
* Converts its state based on table attribute value or create default state if it is not set.
*/
protected void init(UIExtendedDataTable extendedDataTable){
- //get state value from components attributes
+ //get state value from components attribute
String value = (String)extendedDataTable.getAttributes().get(TABLE_STATE_ATTR_NAME);
- //split state value into parts
- String[] values = fromString(value);
+ JSONMap stateMap = null;
+ if ((value != null) && (value.length() > 0)){
+ try {
+ stateMap = new JSONMap(value);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
//initialize columns order part
- String val = (values != null && values.length>0) ? values[0] : null;
- columnsOrder = ColumnsOrder.getColumnsOrder(extendedDataTable, val);
+ columnsOrder = ColumnsOrder.getColumnsOrder(extendedDataTable, (stateMap == null ? null : (JSONCollection)stateMap.get("columnsOrder")));
//initialize columns visibility part
- val = (values != null && values.length>1) ? values[1] : null;
- columnsVisibility = ColumnsVisibility.getColumnsVisibility(extendedDataTable, val);
+ columnsVisibility = ColumnsVisibility.getColumnsVisibility(extendedDataTable, (stateMap == null ? null : (JSONCollection)stateMap.get("columnsVisibility")));
//initialize columns size part
- val = (values != null && values.length>2) ? values[2] : null;
- columnsSizeState = ColumnsSizeState.getColumnsSize(extendedDataTable, val);
+ columnsSizeState = ColumnsSizeState.getColumnsSize(extendedDataTable, (stateMap == null ? null : (JSONMap)stateMap.get("columnsSizeState")));
//initialize column grouping part
- val = (values != null && values.length>3) ? values[3] : null;
- columnGroupingState = ColumnGroupingState.getColumnGropingState(extendedDataTable, val);
+ columnGroupingState = ColumnGroupingState.getColumnGropingState(extendedDataTable, (stateMap == null ? null : (JSONMap)stateMap.get("columnGroupingState")));
}//init
/**
@@ -76,24 +85,24 @@
}//publishChanges
/**
- * Converts its state to String representation.
+ * Converts its state to String representation in JSON format.
*/
public String toString(){
- String[] values = new String[4];
- values[0] = columnsOrder.toString();
- values[1] = columnsVisibility.toString();
- values[2] = columnsSizeState.toString();
- values[3] = columnGroupingState.toString();
- StringBuilder builder = new StringBuilder();
- for (String str : values){
- builder.append(str).append(SEP);
- }//for
- return builder.toString();
+ return toJSON().toString();
}//toString
- public String[] fromString(String value){
- return (value == null) ? null : value.split(SEP);
- }//fromString
+ public JSONObject toJSON(){
+ JSONObject result = new JSONObject();
+ try {
+ result.put("columnsOrder", columnsOrder.toJSON());
+ result.put("columnsVisibility", columnsVisibility.toJSON());
+ result.put("columnsSizeState", columnsSizeState.toJSON());
+ result.put("columnGroupingState", columnGroupingState.toJSON());
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
/*
* (non-Javadoc)
@@ -151,19 +160,10 @@
public String getColumnSize(UIComponent column) {
return columnsSizeState.getColumnSize(column);
}
-
+
/*
* (non-Javadoc)
*
- * @see ColumnGroupingState#isGroupingOn()
- */
- public boolean isGroupingOn(){
- return columnGroupingState.isGroupingOn();
- }
-
- /*
- * (non-Javadoc)
- *
* @see ColumnGroupingState#getGroupingColumnId()
*/
public String getGroupingColumnId(){
@@ -222,35 +222,55 @@
private static final long serialVersionUID = 8724163192351491340L;
- private static final String SEP = ";";
-
private static final String DEFAULT_WIDTH = "100";
- private String value;
+ private JSONMap value;
private ColumnsSizeState() {
super();
}
- static ColumnsSizeState getColumnsSize(UIExtendedDataTable extendedDataTable, String val){
+ static ColumnsSizeState getColumnsSize(UIExtendedDataTable extendedDataTable, JSONMap map){
ColumnsSizeState columnsSize = new ColumnsSizeState();
- columnsSize.init(extendedDataTable, val);
+ columnsSize.init(extendedDataTable, map);
return columnsSize;
}
/**
* Converts its state from String representation or create default state if it is not set.
*/
- private void init(UIExtendedDataTable extendedDataTable, String val){
- value = val;
- if ((value == null) || (value.length() == 0))
+ private void init(UIExtendedDataTable extendedDataTable, JSONMap map){
+ 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 (value == null){
createDefaultColumnsSizeState(extendedDataTable);
+ }
}
/**
- * Converts its state to String representation.
+ * Converts its state to String representation in JSON format.
*/
public String toString(){
+ if (value == null){
+ return "";
+ }
+ return value.toString();
+ }
+
+ /**
+ * Get state in JSON format.
+ * @return JSON object contains state
+ */
+ public JSONMap toJSON(){
return value;
}
@@ -258,13 +278,16 @@
* Create default column order based on component children.
*/
private void createDefaultColumnsSizeState(UIExtendedDataTable extendedDataTable){
- StringBuilder builder = new StringBuilder();
-
- for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
- UIColumn col = iter.next();
- builder.append(col.getId().toUpperCase()).append("-").append(getDefaultColumnSize(col)).append(SEP);
+ try {
+ JSONWriter writer = new JSONStringer().object();
+ for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
+ UIColumn col = iter.next();
+ writer.key(col.getId()).value(getDefaultColumnSize(col));
+ }
+ value = new JSONMap(writer.endObject().toString());
+ } catch (JSONException e) {
+ e.printStackTrace();
}
- value = builder.toString();
}
private String getDefaultColumnSize(UIComponent column){
@@ -275,52 +298,29 @@
public String getColumnSize(UIComponent column){
if (value == null)
return getDefaultColumnSize(column);
- String[] widths = value.split(SEP);
- if (widths != null){
- String colId = column.getId().toUpperCase();
- for (String val : widths){
- if (val.toUpperCase().startsWith(colId+"-")){
- return val.split("-")[1];
- }
- }//for
+ String res = value.get(column.getId()).toString();
+ if (res == null){
+ res = getDefaultColumnSize(column);
}
- return getDefaultColumnSize(column);
+ return res;
}
- private String formatWidth(String value){
- return String.valueOf(HtmlDimensions.decode(value).intValue());
- }
+// private String formatWidth(String value){
+// return String.valueOf(HtmlDimensions.decode(value).intValue());
+// }
public void changeColumnSize(UIExtendedDataTable extendedDataTable, String newValue){
if (value == null)
return;
- Set<String> widths = new HashSet<String>(Arrays.asList(value.toUpperCase().split(SEP)));
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().toUpperCase();
- //remove existing item
- Set<String> toDel = new HashSet<String>();
- for (String val : widths){
- if (val.toUpperCase().startsWith(colId+"-")){
- toDel.add(val);
- }
- }//for
- widths.removeAll(toDel);
- //create new item
- String newWidth = newWidths[index++];
- String item = colId + "-" + newWidth;;
- widths.add(item);
+ String colId = col.getId();
+ value.put(colId, newWidths[index++]);
}//if
}//for
- //build new value
- StringBuilder builder = new StringBuilder();
- for (String val : widths){
- builder.append(val).append(SEP);
- }
- value = builder.toString();
}//changeColumnSize
}//ColumnsSizeState
@@ -329,33 +329,61 @@
private static final long serialVersionUID = 907700564445889954L;
- private static final String SEP = ";";
+ private JSONArray value;
- private String value;
-
private ColumnsOrder() {
super();
}
- static ColumnsOrder getColumnsOrder(UIExtendedDataTable extendedDataTable, String val){
+ static ColumnsOrder getColumnsOrder(UIExtendedDataTable extendedDataTable, JSONCollection collection){
ColumnsOrder columnsOrder = new ColumnsOrder();
- columnsOrder.init(extendedDataTable, val);
+ columnsOrder.init(extendedDataTable, collection);
return columnsOrder;
}
+ static ColumnsOrder getColumnsOrder(UIExtendedDataTable extendedDataTable, String val) throws JSONException{
+ ColumnsOrder columnsOrder = new ColumnsOrder();
+ columnsOrder.init(extendedDataTable, new JSONCollection(val));
+ return columnsOrder;
+ }
+
/**
* Converts its state from String representation or create default state if it is not set.
*/
- private void init(UIExtendedDataTable extendedDataTable, String val){
- value = val;
- if ((value == null) || (value.length() == 0))
+ private void init(UIExtendedDataTable extendedDataTable, JSONCollection collection){
+ value = null;
+ if ((collection != null) && (collection.size()>0)){
+ //try to restore state from string
+ value = new JSONArray(collection);
+// try {
+// value = new JSONArray(val);
+// } catch (JSONException e) {
+// e.printStackTrace();
+// }
+ }
+
+ if (value == null){
createDefaultColumnsOrder(extendedDataTable);
+ }
}
+
+
/**
- * Converts its state to String representation.
+ * Converts its state to String representation in JSON format.
*/
public String toString(){
+ if (value == null){
+ return "";
+ }
+ return value.toString();
+ }
+
+ /**
+ * Get state in JSON format.
+ * @return JSON object contains state
+ */
+ public JSONArray toJSON(){
return value;
}
@@ -363,12 +391,11 @@
* Create default column order based on component children.
*/
private void createDefaultColumnsOrder(UIExtendedDataTable extendedDataTable){
- StringBuilder builder = new StringBuilder();
+ value = new JSONArray();
for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
- UIColumn child = iter.next();
- builder.append(child.getId().toUpperCase()).append(SEP);
+ UIColumn col = iter.next();
+ value.put(col.getId());
}
- value = builder.toString();
}
/**
@@ -376,13 +403,16 @@
* @param columnId column id to be found
* @return column index or null if not found
*/
- private Integer getColumnIndex(String columnId){
+ private int getColumnIndex(String columnId){
if (value == null)
- return null;
- List<String> list = Arrays.asList(value.toUpperCase().split(SEP));
- if (list.contains(columnId.toUpperCase()))
- return list.indexOf(columnId.toUpperCase());
- return null;
+ return -1;
+ for (int i=0;i<value.length(); i++){
+ Object val = value.opt(i);
+ if (columnId.equals(val)){
+ return i;
+ }
+ }
+ return -1;
}//getColumnIndex
/**
@@ -396,26 +426,26 @@
return;
if (sourceColumnId.equals(targetColumnId))
return;
- List<String> list = new ArrayList<String>(Arrays.asList(value.toUpperCase().split(SEP)));
+ List<String> list = new ArrayList<String>(value.length());
+ for (int i=0;i<value.length(); i++){
+ list.add(value.optString(i));
+ }
//get index of source column
- int sourceIndex = list.indexOf(sourceColumnId.toUpperCase());
+ int sourceIndex = list.indexOf(sourceColumnId);
//remove from order if exist
if (sourceIndex != -1)
list.remove(sourceIndex);
//get index of target column
- int targetIndex = list.indexOf(targetColumnId.toUpperCase());
+ int targetIndex = list.indexOf(targetColumnId);
//add source column after or before target column
if (targetIndex == -1)//add to end
- list.add(sourceColumnId.toUpperCase());
+ list.add(sourceColumnId);
else{
//add at proper position
- list.add((targetIndex + (dropBefore ? 0 : 1)), sourceColumnId.toUpperCase());
+ list.add((targetIndex + (dropBefore ? 0 : 1)), sourceColumnId);
}
- //convert from List to String
- StringBuilder builder = new StringBuilder();
- for (String str : list)
- builder.append(str).append(SEP);
- value = builder.toString();
+ //convert from list to JSON
+ value = new JSONArray(list);
}
/**
@@ -430,10 +460,10 @@
public int compare(UIComponent o1, UIComponent o2) {
Integer index1 = getColumnIndex(o1.getId());
Integer index2 = getColumnIndex(o2.getId());
- if (index1 == null) {
- return ((index2 == null) ? 0 : 1);
+ if (index1 == -1) {
+ return ((index2 == -1) ? 0 : 1);
}
- return ((index2 == null) ? -1 : index1.compareTo(index2));
+ return ((index2 == -1) ? -1 : index1.compareTo(index2));
}
});
return childs;
@@ -445,27 +475,44 @@
private static final long serialVersionUID = -3923409650272094713L;
- private static final String SEP = ";";
+ //private static final String SEP = ";";
- private String value;
+ private JSONArray value;
private ColumnsVisibility() {
super();
}
- static ColumnsVisibility getColumnsVisibility(UIExtendedDataTable extendedDataTable, String val){
+ static ColumnsVisibility getColumnsVisibility(UIExtendedDataTable extendedDataTable, String val) throws JSONException{
ColumnsVisibility columnsVisibility = new ColumnsVisibility();
- columnsVisibility.init(extendedDataTable, val);
+ columnsVisibility.init(extendedDataTable, new JSONCollection(val));
return columnsVisibility;
}
+ static ColumnsVisibility getColumnsVisibility(UIExtendedDataTable extendedDataTable, JSONCollection collection){
+ ColumnsVisibility columnsVisibility = new ColumnsVisibility();
+ columnsVisibility.init(extendedDataTable, collection);
+ return columnsVisibility;
+ }
+
/**
* Converts its state from String representation or create default state if it is not set.
*/
- private void init(UIExtendedDataTable extendedDataTable, String val){
- value = val;
- if ((value == null) || (value.length() == 0))
+ private void init(UIExtendedDataTable extendedDataTable, JSONCollection collection){
+ value = null;
+ if ((collection != null) && (collection.size()>0)){
+ //try to restore state from string
+ value = new JSONArray(collection);
+// try {
+// value = new JSONArray(val);
+// } catch (JSONException e) {
+// e.printStackTrace();
+// }
+ }
+
+ if (value == null){
createDefaultColumnsVisibility(extendedDataTable);
+ }
//set visibility flag for all columns
for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
UIColumn child = iter.next();
@@ -477,9 +524,20 @@
}//init
/**
- * Converts its state to String representation.
+ * Converts its state to String representation in JSON format.
*/
public String toString(){
+ if (value == null){
+ return "";
+ }
+ return value.toString();
+ }
+
+ /**
+ * Get state in JSON format.
+ * @return JSON object contains state
+ */
+ public JSONArray toJSON(){
return value;
}
@@ -487,15 +545,31 @@
* Create default column visibility based on component children.
*/
private void createDefaultColumnsVisibility(UIExtendedDataTable extendedDataTable){
- StringBuilder builder = new StringBuilder();
+ value = new JSONArray();
for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
- UIColumn kid = iter.next();
- builder.append(kid.getId().toUpperCase()).append(SEP);
+ UIColumn col = iter.next();
+ value.put(col.getId());
}
- value = builder.toString();
}//createDefaultColumnsVisibility
/**
+ * Get column position.
+ * @param columnId column id to be found
+ * @return column position or -1 if not found
+ */
+ private int getColumnPosition(String columnId){
+ if (value == null)
+ return -1;
+ for (int i=0;i<value.length(); i++){
+ Object val = value.opt(i);
+ if (columnId.equals(val)){
+ return i;
+ }
+ }
+ return -1;
+ }//getColumnIndex
+
+ /**
* Get column visibility.
* @param columnId column id to be found
* @return true if column is visible, otherwise false
@@ -503,8 +577,7 @@
boolean isVisible(String columnId){
if (value == null)
return true;
- Set<String> visibleIds = new HashSet<String>(Arrays.asList(value.toUpperCase().split(SEP)));
- return visibleIds.contains(columnId.toUpperCase());
+ return (value.opt(getColumnPosition(columnId)) != null);
}//isVisible
/**
@@ -517,36 +590,36 @@
return;
UIColumn column = null;
//find column by id
- for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
- UIColumn col = iter.next();
- if (col.getId().equalsIgnoreCase(columnId)){
- if (col instanceof UIColumn){
- column = (UIColumn) col;
- }
- break;
- }//if
- }//for
- if (column == null)
- return;
+// for (Iterator<UIColumn> iter = extendedDataTable.getChildColumns(); iter.hasNext();) {
+// UIColumn col = iter.next();
+// if (col.getId().equalsIgnoreCase(columnId)){
+// if (col instanceof UIColumn){
+// column = (UIColumn) col;
+// }
+// break;
+// }//if
+// }//for
+// if (column == null)
+// return;
boolean visible = column.isVisible();
//toggle visibility
visible = !visible;
//set visibility flag for column
column.setVisible(visible);
- Set<String> visibleIds = new HashSet<String>(Arrays.asList(value.toUpperCase().split(SEP)));
+ Set<String> visibleIds = new HashSet<String>(value.length());
+ for (int i=0;i<value.length(); i++){
+ visibleIds.add(value.optString(i));
+ }
if (visible){
//add id to set
- visibleIds.add(columnId.toUpperCase());
+ visibleIds.add(columnId);
}
else{
//remove id from list
- visibleIds.remove(columnId.toUpperCase());
+ visibleIds.remove(columnId);
}
- //convert from Set to String
- StringBuilder builder = new StringBuilder();
- for (String str : visibleIds)
- builder.append(str).append(SEP);
- value = builder.toString();
+ //convert from set to JSON
+ value = new JSONArray(visibleIds);
}//changeVisibility
}//ColumnsVisibility
@@ -555,7 +628,6 @@
private static final long serialVersionUID = -3923409650272094713L;
- private static final String SEP = ";";
//private static final String TRUE = "1";
//private static final String FALSE = "0";
private static final Boolean DEF = Boolean.TRUE;//expanded
@@ -563,64 +635,71 @@
private String columnId;
private List<Boolean> groupExpanded;
private Ordering ordering;
- //private String value;
private ColumnGroupingState() {
super();
}
- static ColumnGroupingState getColumnGropingState(UIExtendedDataTable extendedDataTable, String val){
+ static ColumnGroupingState getColumnGropingState(UIExtendedDataTable extendedDataTable, JSONMap map){
ColumnGroupingState groupingState = new ColumnGroupingState();
- groupingState.init(extendedDataTable, val);
+ groupingState.init(extendedDataTable, map);
return groupingState;
}
/**
* Converts its state from String representation or create default state if it is not set.
*/
- private void init(UIExtendedDataTable extendedDataTable, String val){
+ private void init(UIExtendedDataTable extendedDataTable, JSONMap map){
columnId = null;
ordering = Ordering.UNSORTED;
groupExpanded = new ArrayList<Boolean>();
- if ((val == null) || (val.length() == 0))
- return;
- List<String> tmp = Arrays.asList(val.split(SEP));
- if (!tmp.isEmpty()){
- columnId = tmp.get(0); //column id
- ordering = Ordering.valueOf(tmp.get(1)); //sort order
- if (ordering == null)
- ordering = Ordering.UNSORTED;
-// tmp = tmp.subList(2, tmp.size());//remove fist and second item
-// for (String s : tmp){
-// groupExpanded.add(Boolean.valueOf(s.equals(TRUE)));
-// }//for
+ if ((map != null) && (map.size() > 0)){
+ //try to restore state from string
+// try {
+ columnId = (String)map.get("columnId");
+ ordering = Ordering.valueOf((String)map.get("order"));
+// } catch (JSONException e) {
+// e.printStackTrace();
+// }
}
- //get column by id and set sort order
- for (Iterator<UIColumn> columns = extendedDataTable.getChildColumns(); columns.hasNext(); ){
- UIColumn child = columns.next();
- if (columnId.equalsIgnoreCase(child.getId())) {
- child.setSortOrder(ordering);
- break;
+
+ if (columnId != null){
+ //get column by id and set sort order
+ for (Iterator<UIColumn> columns = extendedDataTable.getChildColumns(); columns.hasNext(); ){
+ UIColumn child = columns.next();
+ if (columnId.equalsIgnoreCase(child.getId())) {
+ child.setSortOrder(ordering);
+ break;
+ }
}
}
}//init
/**
- * Converts its state to String representation.
+ * Converts its state to String representation in JSON format.
*/
public String toString(){
- if (columnId == null)
- return "";
- StringBuilder builder = new StringBuilder();
- builder.append(columnId).append(SEP); //add column id
- builder.append(ordering).append(SEP); //add sort order
-// for (Boolean b : groupExpanded){
-// builder.append(b ? TRUE : FALSE).append(SEP);
-// }
- return builder.toString();
+ return toJSON().toString();
}
/**
+ * Get state in JSON format.
+ * @return JSON object contains state
+ */
+ public JSONObject toJSON(){
+ JSONObject result = new JSONObject();
+ if (columnId != null){
+ try {
+ result.put("columnId", columnId);
+ result.put("order", ordering);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ return result;
+ }
+
+ /**
* Gets grouped column id.
* @return grouped column id if grouping is on, otherwise false
*/
@@ -629,14 +708,6 @@
}
/**
- * Checks if grouping is on.
- * @return true if grouping is on, otherwise false
- */
- boolean isGroupingOn(){
- return (columnId != null);
- }
-
- /**
* Turn on grouping for column.
* @param colId id of column to be grouped
* @param ordering sort order
@@ -659,7 +730,7 @@
* Turn off grouping.
*/
void disableGrouping(){
- columnId = null;
+ columnId = ExtendedDataTableState.NONE_COLUMN_ID;
ordering = Ordering.UNSORTED;
resetGroupVisibilityState();
}
@@ -696,4 +767,4 @@
return groupExpanded.get(index).booleanValue();
}
-}//ColumnGroupingState
\ No newline at end of file
+}//ColumnGroupingState
16 years, 10 months
JBoss Rich Faces SVN: r11105 - in trunk/ui/extendedDataTable/src/main/java/org/richfaces: renderkit and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: pgolawski
Date: 2008-11-12 06:49:44 -0500 (Wed, 12 Nov 2008)
New Revision: 11105
Modified:
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:
[RF-4814]: getGroupingColumn vs getGroupByColumn and getGroupByColumnId
Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2008-11-12 10:40:21 UTC (rev 11104)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2008-11-12 11:49:44 UTC (rev 11105)
@@ -32,6 +32,7 @@
import org.richfaces.model.FilterField;
import org.richfaces.model.Modifiable;
import org.richfaces.model.ModifiableModel;
+import org.richfaces.model.Ordering;
import org.richfaces.model.SortField2;
/**
@@ -56,6 +57,10 @@
public abstract Object getActiveRowKey();
public abstract void setActiveRowKey(Object activeRowKey);
+
+ public abstract String getGroupingColumn();
+
+ public abstract void setGroupingColumn(String groupingColumn);
public void broadcast(FacesEvent event) throws AbortProcessingException {
super.broadcast(event);
@@ -135,7 +140,7 @@
state.publishChanges(getFacesContext(), this);
getFacesContext().renderResponse();
- }// processChangeColumnVisibility
+ }
public void processSortingChange(ExtTableSortEvent event) {
DataModel dataModel = getDataModel();
@@ -163,7 +168,7 @@
public boolean isColumnVisible(UIComponent column) {
ensureTableStateInitialized();
return state.isColumnVisible(column.getId());
- }// isColumnVisible
+ }
public void processColumnResize(ColumnResizeEvent event) {
ensureTableStateInitialized();
@@ -171,7 +176,7 @@
state.publishChanges(getFacesContext(), this);
getFacesContext().renderResponse();
- }// processChangeColumnVisibility
+ }
public String getColumnSize(UIComponent column) {
ensureTableStateInitialized();
@@ -179,19 +184,40 @@
}
public boolean isGroupingOn() {
- ensureTableStateInitialized();
- return state.isGroupingOn();
+ //first get it from state
+ String groupingColumnId = getGroupByColumnId();
+ return ((groupingColumnId!=null) && (!"".equals(groupingColumnId)) && (!ExtendedDataTableState.NONE_COLUMN_ID.equals(groupingColumnId)));
}
- public String getGroupingColumnId() {
+ /**
+ * Get id of column which the data is grouped by. First tries to get it
+ * from the table state. If the table state doesn't provide such
+ * information, get from component attribute.
+ *
+ * @return id of column which the data is grouped by
+ */
+ public String getGroupByColumnId() {
ensureTableStateInitialized();
- return state.getGroupingColumnId();
+ String id = state.getGroupingColumnId();
+ if (id == null){//grouping is not saved in state
+ //get column id from attribute
+ id = getGroupingColumn();
+ }
+ return id;
}
- public UIColumn getGroupingColumn() {
- String groupingColumnId = getGroupingColumnId();
- if (groupingColumnId == null)
+ /**
+ * Get column component which the data is grouped by. First tries to get it
+ * from the table state. If the table state doesn't provide such
+ * information, get from component attribute.
+ *
+ * @return column which the data is grouped by
+ */
+ public UIColumn getGroupByColumn() {
+ if (!isGroupingOn()){
return null;
+ }
+ String groupingColumnId = getGroupByColumnId();
for (Iterator<UIColumn> columns = getChildColumns(); columns.hasNext();) {
UIColumn child = columns.next();
if (groupingColumnId.equalsIgnoreCase(child.getId())) {
@@ -199,9 +225,9 @@
}
}
return null;
- }// getGroupingColumn
+ }
- public void setGroupingColumn(org.richfaces.component.UIColumn column) {
+ public void setGroupByColumn(org.richfaces.component.UIColumn column) {
ensureTableStateInitialized();
if (column == null) {
state.disableGrouping();
@@ -232,14 +258,16 @@
state.toggleGroup(index);
state.publishChanges(getFacesContext(), this);
}
-
- public Collection<Object> getSortPriority() {
- Collection<Object> priority = super.getSortPriority();
+
+ protected Collection<Object> getGroupPriority(){
+ Collection<Object> priority = getSortPriority();
if (isGroupingOn()) {// grouping is on
- String groupColId = getGroupingColumnId();
+ UIColumn column = getGroupByColumn();
+ if ((column.getSortOrder() == null) || (column.getSortOrder().equals(Ordering.UNSORTED))){
+ column.setSortOrder(Ordering.ASCENDING);
+ }
+ String groupColId = column.getId();
// try to add group column id as first
-
- //TODO nick - is it ok to change user's priorities collection here?
if (priority.contains(groupColId)) {
priority.remove(groupColId);
}
@@ -280,6 +308,7 @@
protected ExtendedDataModel createDataModel() {
List<FilterField> filterFields = new LinkedList<FilterField>();
Map<String, SortField2> sortFieldsMap = new LinkedHashMap<String, SortField2>();
+ Collection<Object> sortPriority = getGroupPriority();
List<UIComponent> list = getChildren();
for (Iterator<UIComponent> iterator = list.iterator(); iterator
.hasNext();) {
@@ -298,7 +327,7 @@
}
List<SortField2> sortFields = new LinkedList<SortField2>();
- Collection<Object> sortPriority = getSortPriority();
+
if (sortPriority != null) {
for (Object object : sortPriority) {
if (object instanceof String) {
Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java 2008-11-12 10:40:21 UTC (rev 11104)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java 2008-11-12 11:49:44 UTC (rev 11105)
@@ -1071,7 +1071,7 @@
// String groupingColumnId = null;
UIColumn groupingColumn = null;
if (isGroupingOn) {
- groupingColumn = table.getGroupingColumn();
+ groupingColumn = table.getGroupByColumn();
sortByGroupingColumn = (groupingColumn == null ? false
: groupingColumn.getClientId(context).equals(
sortColumnId));
@@ -1115,7 +1115,7 @@
if (isGroupingColumn) {
// set as grouping column to mark that grouping
// order has changed
- table.setGroupingColumn(column);
+ table.setGroupByColumn(column);
}
} else if (isSingleSortMode) { // in case of single
// sort mode
@@ -1188,7 +1188,7 @@
column.setSortOrder(Ordering.ASCENDING);
}
// set as grouping column
- table.setGroupingColumn(column);
+ table.setGroupByColumn(column);
} else { // grouping is not by this column
// turn off sorting by this column
column.setSortOrder(Ordering.UNSORTED);
Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java 2008-11-12 10:40:21 UTC (rev 11104)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/ExtendedTableHolder.java 2008-11-12 11:49:44 UTC (rev 11105)
@@ -36,7 +36,7 @@
groupingOn = table.isGroupingOn();
groupingColumnLabel = "";
if (groupingOn){
- groupingColumn = table.getGroupingColumn();
+ groupingColumn = table.getGroupByColumn();
if ((groupingColumn != null) && (groupingColumn instanceof UIColumn)){
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-11-12 10:40:21 UTC (rev 11104)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/html/RichTableMenuRenderer.java 2008-11-12 11:49:44 UTC (rev 11105)
@@ -232,7 +232,7 @@
String actionScript = null;
StringBuilder actionScriptBuilder = new StringBuilder();
boolean isGroupingColumn = column.getId().equalsIgnoreCase(
- table.getGroupingColumnId());
+ table.getGroupByColumnId());
if ((Boolean) column.getAttributes().get("sortable")) {
if (sortFunction != null) {
if (prepareFunction != null) {
16 years, 10 months
JBoss Rich Faces SVN: r11104 - trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: piotr.buda
Date: 2008-11-12 05:40:21 -0500 (Wed, 12 Nov 2008)
New Revision: 11104
Modified:
trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java
Log:
Test update
Modified: trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java
===================================================================
--- trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java 2008-11-12 09:34:20 UTC (rev 11103)
+++ trunk/ui/extendedDataTable/src/test/java/org/richfaces/renderkit/AbstractExtendedTableRendererTest.java 2008-11-12 10:40:21 UTC (rev 11104)
@@ -149,8 +149,9 @@
String className = element.getAttributeValue("id");
assertNotNull(className);
- if ( className.length()>0)
- assertEquals("extDT:fakeIeRow", className);
+ //FIXME need to check for fakeIeRow OR headerRow
+// if ( className.length()>0)
+// assertEquals("extDT:fakeIeRow", className);
} else if (node.getNodeName().equalsIgnoreCase("thead")) {
element = node;
assertNotNull(element);
16 years, 10 months
JBoss Rich Faces SVN: r11103 - trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree.
by richfaces-svn-commits@lists.jboss.org
Author: dsvyatobatsko
Date: 2008-11-12 04:34:20 -0500 (Wed, 12 Nov 2008)
New Revision: 11103
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java
Log:
fixed compilation failure
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java 2008-11-12 09:11:15 UTC (rev 11102)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java 2008-11-12 09:34:20 UTC (rev 11103)
@@ -110,12 +110,12 @@
public TreeNode<Object> getRichTreeNode() {
if (null == richRootNode) {
- URL rulesUrl = TreeBuilder.class.getResource("/digester-rules.xml");
+ URL rulesUrl = getClass().getResource("/digester-rules.xml");
Digester digester = DigesterLoader.createDigester(rulesUrl);
AudioLibrary library = new AudioLibrary();
digester.push(library);
try {
- digester.parse(TreeBuilder.class.getResourceAsStream("/audio-library.xml"));
+ digester.parse(getClass().getResourceAsStream("/audio-library.xml"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
16 years, 10 months
JBoss Rich Faces SVN: r11102 - in trunk/framework/jsf-test: src/main/java/org/richfaces/test and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2008-11-12 04:11:15 -0500 (Wed, 12 Nov 2008)
New Revision: 11102
Modified:
trunk/framework/jsf-test/pom.xml
trunk/framework/jsf-test/src/main/java/org/richfaces/test/AbstractFacesTest.java
trunk/framework/jsf-test/src/main/java/org/richfaces/test/LocalWebClient.java
trunk/framework/jsf-test/src/main/java/org/richfaces/test/StagingConnection.java
trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/FilterContainer.java
trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/ServletContainer.java
trunk/framework/jsf-test/src/test/java/org/richfaces/test/FacesServerTest.java
Log:
Start progress in AJAX tests
Modified: trunk/framework/jsf-test/pom.xml
===================================================================
--- trunk/framework/jsf-test/pom.xml 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/pom.xml 2008-11-12 09:11:15 UTC (rev 11102)
@@ -23,12 +23,8 @@
</dependency>
<dependency>
<groupId>javax.faces</groupId>
-
<artifactId>jsf-impl</artifactId>
-
<version>1.2_10</version>
-
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>el-impl</groupId>
@@ -70,5 +66,40 @@
<artifactId>nekohtml</artifactId>
<version>1.9.9</version>
</dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>jstl</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.2_10</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>jsr250-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.7.0</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: trunk/framework/jsf-test/src/main/java/org/richfaces/test/AbstractFacesTest.java
===================================================================
--- trunk/framework/jsf-test/src/main/java/org/richfaces/test/AbstractFacesTest.java 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/src/main/java/org/richfaces/test/AbstractFacesTest.java 2008-11-12 09:11:15 UTC (rev 11102)
@@ -71,30 +71,16 @@
}
}
facesServer = new StagingServer();
- ServletContainer facesServletContainer = new ServletContainer("*.jsf", new FacesServlet());
- facesServletContainer.setName("Faces Servlet");
- try {
- // Check for an ajax4jsf filter.
- Class<? extends Filter> ajaxFilterClass = contextClassLoader
- .loadClass("org.ajax4jsf.Filter")
- .asSubclass(Filter.class);
- Filter ajaxFilter = ajaxFilterClass.newInstance();
- FilterContainer filterContainer = new FilterContainer(ajaxFilter,facesServletContainer);
- filterContainer.setName("ajax4jsf");
- facesServer.addResource("/WEB-INF/web.xml",
- "org/richfaces/test/ajax-web.xml");
- facesServer.addServlet(filterContainer);
- } catch (ClassNotFoundException e) {
- // No Richfaces filter, uses servlet directly.
- facesServer.addResource("/WEB-INF/web.xml",
- "org/richfaces/test/web.xml");
- facesServer.addServlet(facesServletContainer);
- }
- facesServer.addInitParameter(
- StateManager.STATE_SAVING_METHOD_PARAM_NAME,
- StateManager.STATE_SAVING_METHOD_SERVER);
- facesServer.addInitParameter(ViewHandler.DEFAULT_SUFFIX_PARAM_NAME,
- ".xhtml");
+ setupFacesServlet();
+ setupFacesListener();
+ setupWebContent();
+ facesServer.init();
+ }
+
+ /**
+ *
+ */
+ protected void setupFacesListener() {
EventListener listener = null;
try {
Class<? extends EventListener> listenerClass = contextClassLoader
@@ -121,10 +107,41 @@
throw new TestException("Error instantiate JSF RI listener", e);
}
facesServer.addWebListener(listener);
- setupWebContent(facesServer);
- facesServer.init();
}
+ /**
+ * @throws InstantiationException
+ * @throws IllegalAccessException
+ */
+ protected void setupFacesServlet() {
+ ServletContainer facesServletContainer = new ServletContainer("*.jsf", new FacesServlet());
+ facesServletContainer.setName("Faces Servlet");
+ try {
+ // Check for an ajax4jsf filter.
+ Class<? extends Filter> ajaxFilterClass = contextClassLoader
+ .loadClass("org.ajax4jsf.Filter")
+ .asSubclass(Filter.class);
+ Filter ajaxFilter = ajaxFilterClass.newInstance();
+ FilterContainer filterContainer = new FilterContainer(ajaxFilter,facesServletContainer);
+ filterContainer.setName("ajax4jsf");
+ facesServer.addResource("/WEB-INF/web.xml",
+ "org/richfaces/test/ajax-web.xml");
+ facesServer.addServlet(filterContainer);
+ } catch (ClassNotFoundException e) {
+ // No Richfaces filter, uses servlet directly.
+ facesServer.addResource("/WEB-INF/web.xml",
+ "org/richfaces/test/web.xml");
+ facesServer.addServlet(facesServletContainer);
+ } catch (Exception e) {
+ throw new TestException(e);
+ }
+ facesServer.addInitParameter(
+ StateManager.STATE_SAVING_METHOD_PARAM_NAME,
+ StateManager.STATE_SAVING_METHOD_SERVER);
+ facesServer.addInitParameter(ViewHandler.DEFAULT_SUFFIX_PARAM_NAME,
+ ".xhtml");
+ }
+
protected void setupMyFaces() {
// Do nothing by default.
}
@@ -134,7 +151,7 @@
facesServer.addInitParameter("com.sun.faces.verifyObjects", "true");
}
- protected void setupWebContent(StagingServer facesServer){
+ protected void setupWebContent(){
}
Modified: trunk/framework/jsf-test/src/main/java/org/richfaces/test/LocalWebClient.java
===================================================================
--- trunk/framework/jsf-test/src/main/java/org/richfaces/test/LocalWebClient.java 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/src/main/java/org/richfaces/test/LocalWebClient.java 2008-11-12 09:11:15 UTC (rev 11102)
@@ -4,6 +4,7 @@
package org.richfaces.test;
import com.gargoylesoftware.htmlunit.BrowserVersion;
+import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebConnection;
@@ -24,6 +25,7 @@
public LocalWebClient(StagingServer server) {
super();
this.server = server;
+ setAjaxController(new NicelyResynchronizingAjaxController());
}
/**
@@ -32,6 +34,7 @@
public LocalWebClient(StagingServer server,BrowserVersion browserVersion) {
super(browserVersion);
this.server = server;
+ setAjaxController(new NicelyResynchronizingAjaxController());
}
/**
Modified: trunk/framework/jsf-test/src/main/java/org/richfaces/test/StagingConnection.java
===================================================================
--- trunk/framework/jsf-test/src/main/java/org/richfaces/test/StagingConnection.java 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/src/main/java/org/richfaces/test/StagingConnection.java 2008-11-12 09:11:15 UTC (rev 11102)
@@ -13,6 +13,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
@@ -40,6 +41,8 @@
*/
public class StagingConnection {
+ private static final Logger log = ServerLogger.SERVER.getLogger();
+
private final StagingServer server;
final URL url;
@@ -137,6 +140,8 @@
}
public void start() {
+ log.fine("start "+getMethod()+" request processing for file "+url.getFile());
+ log.fine("request parameters: "+requestParameters);
server.requestStarted(request);
started = true;
}
Modified: trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/FilterContainer.java
===================================================================
--- trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/FilterContainer.java 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/FilterContainer.java 2008-11-12 09:11:15 UTC (rev 11102)
@@ -15,15 +15,17 @@
import javax.servlet.ServletResponse;
public class FilterContainer implements RequestChain {
-
+
private final Filter filter;
-
+
private final RequestChain next;
-
- private String name = "Default";
+ private String name = "Default";
+
private final Map<String, String> initParameters;
+ private boolean initialized = false;
+
/**
* @param filter
* @param next
@@ -44,21 +46,21 @@
public void execute(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
- FilterChain chain = new FilterChain(){
+ FilterChain chain = new FilterChain() {
public void doFilter(ServletRequest request,
ServletResponse response) throws IOException,
ServletException {
next.execute(request, response);
-
+
}
-
+
};
filter.doFilter(request, response, chain);
-
+
}
-
- public void addInitParameter(String name, String value){
+
+ public void addInitParameter(String name, String value) {
initParameters.put(name, value);
}
@@ -67,32 +69,39 @@
}
public void destroy() {
- next.destroy();
- filter.destroy();
+ if (initialized) {
+ next.destroy();
+ filter.destroy();
+ initialized = false;
+ }
}
- public void init(final StagingServletContext context) throws ServletException {
- filter.init(new FilterConfig(){
+ public void init(final StagingServletContext context)
+ throws ServletException {
+ if (!initialized) {
+ filter.init(new FilterConfig() {
- public String getFilterName() {
- return name;
- }
+ public String getFilterName() {
+ return name;
+ }
- public String getInitParameter(String name) {
- return initParameters.get(name);
- }
+ public String getInitParameter(String name) {
+ return initParameters.get(name);
+ }
- @SuppressWarnings("unchecked")
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(initParameters.keySet());
- }
+ @SuppressWarnings("unchecked")
+ public Enumeration getInitParameterNames() {
+ return Collections.enumeration(initParameters.keySet());
+ }
- public ServletContext getServletContext() {
- return context;
- }
-
- });
- next.init(context);
+ public ServletContext getServletContext() {
+ return context;
+ }
+
+ });
+ next.init(context);
+ initialized = true;
+ }
}
public String getPathInfo(String path) {
Modified: trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/ServletContainer.java
===================================================================
--- trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/ServletContainer.java 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/src/main/java/org/richfaces/test/staging/ServletContainer.java 2008-11-12 09:11:15 UTC (rev 11102)
@@ -19,31 +19,32 @@
import org.richfaces.test.ServerLogger;
-
/**
* @author asmirnov
- *
+ *
*/
public class ServletContainer implements RequestChain {
-
+
private static final Logger log = ServerLogger.SERVER.getLogger();
-
+
private final Servlet servlet;
-
+
private final boolean prefixMapped;
-
+
private final String mapping;
-
+
private final Map<String, String> initParameters;
-
+
private String name = "Default";
+ private boolean initialized = false;
+
/**
* @param mapping
* @param servlet
*/
public ServletContainer(String mapping, Servlet servlet) {
- if(null == mapping){
+ if (null == mapping) {
this.prefixMapped = true;
this.mapping = "";
} else if (mapping.startsWith("*")) {
@@ -51,18 +52,18 @@
this.mapping = mapping.substring(1);
} else if (mapping.endsWith("*")) {
this.prefixMapped = true;
- this.mapping = mapping.substring(0,mapping.length()-1);
+ this.mapping = mapping.substring(0, mapping.length() - 1);
} else {
- throw new IllegalArgumentException("Invalid mapping "+mapping);
+ throw new IllegalArgumentException("Invalid mapping " + mapping);
}
this.servlet = servlet;
this.initParameters = new HashMap<String, String>();
}
-
-
- public void addInitParameter(String name, String value){
+
+ public void addInitParameter(String name, String value) {
initParameters.put(name, value);
}
+
/**
* @return the name
*/
@@ -71,80 +72,96 @@
}
/**
- * @param name the name to set
+ * @param name
+ * the name to set
*/
public void setName(String name) {
this.name = name;
}
- /* (non-Javadoc)
- * @see org.richfaces.test.staging.RequestChain#isApplicable(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.richfaces.test.staging.RequestChain#isApplicable(java.lang.String)
*/
public boolean isApplicable(String path) {
- if(prefixMapped && path.startsWith(mapping)){
+ if (prefixMapped && path.startsWith(mapping)) {
return true;
- } else if(!prefixMapped && path.endsWith(mapping)){
+ } else if (!prefixMapped && path.endsWith(mapping)) {
return true;
} else {
return false;
}
}
- public String getServletPath(String path){
+ public String getServletPath(String path) {
if (!isApplicable(path)) {
return null;
}
- if(prefixMapped){
+ if (prefixMapped) {
return mapping;
} else {
return path;
}
}
-
+
public String getPathInfo(String path) {
if (!isApplicable(path)) {
return null;
}
- if(prefixMapped){
+ if (prefixMapped) {
return path.substring(mapping.length());
} else {
return null;
}
-
+
}
-
- public void init(final StagingServletContext context) throws ServletException {
- servlet.init(new ServletConfig(){
- public String getInitParameter(String name) {
- return initParameters.get(name);
- }
+ public void init(final StagingServletContext context)
+ throws ServletException {
+ if (!initialized) {
+ servlet.init(new ServletConfig() {
- @SuppressWarnings("unchecked")
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(initParameters.keySet());
- }
+ public String getInitParameter(String name) {
+ return initParameters.get(name);
+ }
- public ServletContext getServletContext() {
- return context;
- }
+ @SuppressWarnings("unchecked")
+ public Enumeration getInitParameterNames() {
+ return Collections.enumeration(initParameters.keySet());
+ }
- public String getServletName() {
- return name;
- }
-
- });
+ public ServletContext getServletContext() {
+ return context;
+ }
+
+ public String getServletName() {
+ return name;
+ }
+
+ });
+ initialized = true;
+ }
}
- /* (non-Javadoc)
- * @see org.richfaces.test.staging.RequestChain#execute(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.richfaces.test.staging.RequestChain#execute(javax.servlet.ServletRequest
+ * , javax.servlet.ServletResponse)
*/
- public void execute(ServletRequest request, ServletResponse response) throws ServletException, IOException {
+ public void execute(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException {
this.servlet.service(request, response);
-
+
}
public void destroy() {
- this.servlet.destroy();
+ if (initialized) {
+ this.servlet.destroy();
+ initialized = false;
+ }
}
}
Modified: trunk/framework/jsf-test/src/test/java/org/richfaces/test/FacesServerTest.java
===================================================================
--- trunk/framework/jsf-test/src/test/java/org/richfaces/test/FacesServerTest.java 2008-11-12 09:10:00 UTC (rev 11101)
+++ trunk/framework/jsf-test/src/test/java/org/richfaces/test/FacesServerTest.java 2008-11-12 09:11:15 UTC (rev 11102)
@@ -48,7 +48,7 @@
}
@Override
- protected void setupWebContent(StagingServer facesServer) {
+ protected void setupWebContent() {
facesServer.addResource("/WEB-INF/faces-config.xml",
"org/richfaces/test/faces-config.xml");
facesServer.addResource("/hello.xhtml", "org/richfaces/test/hello.xhtml");
16 years, 10 months
JBoss Rich Faces SVN: r11101 - trunk/sandbox/ui/editor/src/main/antlr.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2008-11-12 04:10:00 -0500 (Wed, 12 Nov 2008)
New Revision: 11101
Modified:
trunk/sandbox/ui/editor/src/main/antlr/html-seamtext.g
Log:
Modified: trunk/sandbox/ui/editor/src/main/antlr/html-seamtext.g
===================================================================
--- trunk/sandbox/ui/editor/src/main/antlr/html-seamtext.g 2008-11-12 08:51:36 UTC (rev 11100)
+++ trunk/sandbox/ui/editor/src/main/antlr/html-seamtext.g 2008-11-12 09:10:00 UTC (rev 11101)
@@ -1,6 +1,6 @@
header
{
- package org.richfaces;
+ package org.richfaces.antlr;
}
{
16 years, 10 months