Author: akushunin
Date: 2007-06-29 05:05:53 -0400 (Fri, 29 Jun 2007)
New Revision: 1406
Modified:
trunk/richfaces/dataTable/skin/dataTable/dataTable.html
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/Row.java
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java
trunk/richfaces/dataTable/src/test/java/org/richfaces/component/DataTableComponentTest.java
Log:
DataTable Refactoring RF-39, RF-250
Modified: trunk/richfaces/dataTable/skin/dataTable/dataTable.html
===================================================================
--- trunk/richfaces/dataTable/skin/dataTable/dataTable.html 2007-06-28 23:51:05 UTC (rev
1405)
+++ trunk/richfaces/dataTable/skin/dataTable/dataTable.html 2007-06-29 09:05:53 UTC (rev
1406)
@@ -92,8 +92,7 @@
<table border="0" cellpadding="0" cellspacing="0"
class="dttbl_table">
-<thead>
-
+<thead>
<colgroup>
<col class="dttbl_col_odd dttbl_col_1">
Modified: trunk/richfaces/dataTable/src/main/java/org/richfaces/component/Row.java
===================================================================
--- trunk/richfaces/dataTable/src/main/java/org/richfaces/component/Row.java 2007-06-28
23:51:05 UTC (rev 1405)
+++ trunk/richfaces/dataTable/src/main/java/org/richfaces/component/Row.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -34,6 +34,6 @@
* Get iterator for all columns contained in this row.
* @return
*/
- public Iterator columns();
+ public Iterator renderedColumns();
}
Modified:
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java
===================================================================
---
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java 2007-06-28
23:51:05 UTC (rev 1405)
+++
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -37,7 +37,7 @@
private static final String COMPONENT_FAMILY = "org.richfaces.Colgroup";
- public Iterator columns(){
+ public Iterator renderedColumns(){
return new FilterIterator(getChildren().iterator(),UIDataTable.isColumn);
}
Modified:
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
===================================================================
---
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2007-06-28
23:51:05 UTC (rev 1405)
+++
trunk/richfaces/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -55,6 +55,14 @@
*/
private static final class ColumnPredicate implements Predicate {
public boolean evaluate(Object input) {
+ if (input instanceof UIComponent) {
+ UIComponent component = (UIComponent) input;
+
+ if (!component.isRendered()) {
+ return false;
+ }
+ }
+
return (input instanceof UIColumn || input instanceof Column);
}
}
@@ -84,8 +92,15 @@
IteratorChain dataChildren = new IteratorChain();
dataChildren.addIterator(new FilterIterator(getFacets().values()
.iterator(), isAjaxSupport));
+
+ dataChildren.addIterator(renderedColumns());
+
+
// Append all columns children.
- for (Iterator iter = columns(); iter.hasNext();) {
+ //dataChildren.addIterator(columns());
+
+
+/* for (Iterator iter = columns(); iter.hasNext();) {
UIComponent column = (UIComponent) iter.next();
if (column.isRendered()) {
dataChildren.addIterator(column.getChildren()
@@ -93,7 +108,7 @@
}
}
-
+*/
//commons-collections 2.x bug workaround
dataChildren.hasNext();
@@ -111,7 +126,7 @@
fixedChildren.addIterator(new FilterIterator(getChildren().iterator(),
isNotColumn));
// Append all columns facets.
- for (Iterator iter = columns(); iter.hasNext();) {
+ for (Iterator iter = renderedColumns(); iter.hasNext();) {
UIComponent column = (UIComponent) iter.next();
if (column.isRendered()) {
fixedChildren.addIterator(column.getFacets().values()
@@ -126,7 +141,7 @@
return fixedChildren;
}
- public Iterator columns() {
+ public Iterator renderedColumns() {
return new FilterIterator(getChildren().iterator(), isColumn);
}
Modified:
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
---
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2007-06-28
23:51:05 UTC (rev 1405)
+++
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -185,7 +185,7 @@
throws IOException {
UIDataTable table = (UIDataTable) holder.getTable();
ResponseWriter writer = context.getResponseWriter();
- Iterator iter = table.columns();
+ Iterator iter = table.renderedColumns();
boolean first = true;
int currentColumn = 0;
UIComponent column = null;
@@ -287,7 +287,7 @@
* Changed by Alexej Kushunin
*/
protected Iterator columnFacets(UIDataTable table,final String name){
- return new FilterIterator(table.columns(), new Predicate() {
+ return new FilterIterator(table.renderedColumns(), new Predicate() {
public boolean evaluate(Object input) {
UIComponent component = (UIComponent) input;
@@ -316,7 +316,7 @@
count = span.intValue();
} else {
// calculate max html columns count for all columns/rows children.
- Iterator col = table.columns();
+ Iterator col = table.renderedColumns();
count = calculateRowColumns(col);
}
return count;
@@ -343,7 +343,7 @@
}
// Calculate number of columns in row.
currentLength = calculateRowColumns(((Row) column)
- .columns());
+ .renderedColumns());
// Store max calculated value
if (currentLength > count) {
count = currentLength;
Modified:
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java
===================================================================
---
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java 2007-06-28
23:51:05 UTC (rev 1405)
+++
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -71,7 +71,7 @@
if (null != columnClasses) {
classes = columnClasses.split(",");
}
- Iterator iter = colgroup.columns();
+ Iterator iter = colgroup.renderedColumns();
boolean first = true;
int currentColumn = 0;
int currentRow = 0;
Modified:
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java
===================================================================
---
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java 2007-06-28
23:51:05 UTC (rev 1405)
+++
trunk/richfaces/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -62,7 +62,7 @@
Iterator headers = columnFacets(dataTable,facetName);
String headerClass = (String) component.getAttributes().get(
facetName+"Class");
- if (headers.hasNext()&&findFacet(dataTable,facetName)) {
+ if (headers.hasNext()) {
encodeRowStart(context,"dr-subtable-"+facetName+"
rich-subtable-"+facetName ,headerClass, dataTable, writer);
encodeHeaderFacets(context, writer, headers,
"dr-subtable-"+facetName+"cell
rich-subtable-"+facetName+"cell", headerClass,
facetName, "td");
Modified:
trunk/richfaces/dataTable/src/test/java/org/richfaces/component/DataTableComponentTest.java
===================================================================
---
trunk/richfaces/dataTable/src/test/java/org/richfaces/component/DataTableComponentTest.java 2007-06-28
23:51:05 UTC (rev 1405)
+++
trunk/richfaces/dataTable/src/test/java/org/richfaces/component/DataTableComponentTest.java 2007-06-29
09:05:53 UTC (rev 1406)
@@ -23,11 +23,14 @@
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIForm;
import javax.faces.component.UIOutput;
+import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlOutputLink;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
@@ -36,12 +39,14 @@
import javax.faces.el.ValueBinding;
import javax.faces.model.ListDataModel;
+import org.ajax4jsf.ajax.UIAjaxCommandLink;
import org.ajax4jsf.ajax.UIAjaxSupport;
-import org.ajax4jsf.framework.ajax.AjaxSupport;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
import org.apache.commons.collections.Predicate;
+import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlInlineQuotation;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
/**
@@ -55,6 +60,8 @@
private UIColumn column2;
+ private UIForm form = null;
+
private UIColumnGroup columnGroup;
/**
@@ -74,7 +81,12 @@
*/
public void setUp() throws Exception {
super.setUp();
-
+
+ form = new HtmlForm();
+ form.setId("form");
+ facesContext.getViewRoot().getChildren().add(form);
+ UIAjaxCommandLink gf =
(UIAjaxCommandLink)application.createComponent("org.ajax4jsf.ajax.CommandLink");
+ form.getChildren().add(gf);
dataTable = (UIDataTable) application
.createComponent("org.richfaces.DataTable");
dataTable.setId("dataTable");
@@ -143,10 +155,11 @@
}
});
column2.getChildren().add(cellElement2);
- columnGroup.getChildren().add(column2);
+ columnGroup.getChildren().add(column2);
+
+
+ form.getChildren().add(dataTable);
- facesContext.getViewRoot().getChildren().add(dataTable);
-
}
/*
@@ -324,7 +337,7 @@
tr = (HtmlElement) trs.get(0);
assertNotNull(tr);
classAttr = tr.getAttributeValue("class");
- System.out.println(classAttr);
+ //System.out.println(classAttr);
assertTrue(classAttr.contains("dr-table-footer rich-table-footer "));
tds = tr.getHtmlElementsByTagName("td");
@@ -332,7 +345,7 @@
td = (HtmlElement) tds.get(0);
assertNotNull(td);
classAttr = td.getAttributeValue("class");
- System.out.println(classAttr);
+ //System.out.println(classAttr);
assertTrue(classAttr.contains("dr-table-footercell rich-table-footercell
"));
Iterator fixedChildren = dataTable.fixedChildren();
@@ -406,13 +419,17 @@
UISubTable subTable = (UISubTable) application
.createComponent("org.richfaces.SubTable");
subTable.setId("subTable");
- dataTable.getChildren().add(subTable);
-
+
UIColumnGroup subTableColumnGroup = (UIColumnGroup) application
.createComponent("org.richfaces.ColumnGroup");
UIColumn column3 = (UIColumn) application
.createComponent("org.richfaces.Column");
+
+ UIAjaxCommandLink a4jLink =
(UIAjaxCommandLink)application.createComponent("org.ajax4jsf.ajax.CommandLink");
+ a4jLink.setId("a4jLink");
+ column3.getChildren().add(a4jLink);
+
subTableColumnGroup.getChildren().add(column3);
UIOutput text = (UIOutput) createComponent(
HtmlOutputText.COMPONENT_TYPE, HtmlOutputText.class.getName(),
@@ -448,7 +465,8 @@
HtmlOutputText.class.getName(), null, null, null));
subTable.getAttributes().put("columnClasses", "sub1,sub2");
-
+ dataTable.getChildren().add(subTable);
+
assertTrue(subTable.isBreakBefore());
try {
@@ -460,6 +478,10 @@
HtmlPage page = renderView();
assertNotNull(page);
+ System.out.println(page.asXml());
+ HtmlElement a4jCL = page.getHtmlElementById(
a4jLink.getClientId(facesContext));
+ assertNotNull(a4jCL);
+
// System.out.println(page.asXml());
}