Author: pgolawski
Date: 2008-11-07 08:02:28 -0500 (Fri, 07 Nov 2008)
New Revision: 11057
Modified:
trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
Log:
fixing table to work without facet='header' for columns/table
set focus to filter input after table rerender
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-07
13:00:48 UTC (rev 11056)
+++
trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java 2008-11-07
13:02:28 UTC (rev 11057)
@@ -37,6 +37,7 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import org.ajax4jsf.component.AjaxActionComponent;
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
@@ -134,89 +135,74 @@
ResponseWriter writer = context.getResponseWriter();
UIComponent header = table.getHeader();
- boolean columnFacetPresent = isColumnFacetPresent(table, "header");
+ boolean columnFacetHeaderPresent = isColumnFacetPresent(table,
"header");
Iterator<UIColumn> colums = table.getSortedColumns();
// int numberOfColumns = getColumnsCount(table);
int numberOfColumns = table.getVisibleColumnsCount() + 1;
String headerClass = (String)
table.getAttributes().get("headerClass");
- if (header != null || columnFacetPresent) {
- writer.startElement("thead", table);
- writer.writeAttribute(HTML.id_ATTRIBUTE, table
- .getBaseClientId(context)
- + ":header", null);
- writer.writeAttribute(HTML.class_ATTRIBUTE, "extdt-thead", null);
-
- // String menuId = (String) table.getAttributes().get(MENU_ID);
-
- writer.startElement("tr", header);
+ writer.startElement("thead", table);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, table.getBaseClientId(context) +
":header", null);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, "extdt-thead", null);
+ //add special fake IE row
+ writer.startElement("tr", header);
+ encodeStyleClass(writer, null,
+ "extdt-header rich-extdt-header", headerClass, null);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, table
+ .getBaseClientId(context)
+ + ":fakeIeRow", null);
+ for (int i = 0; i < numberOfColumns; i++) {
+ writer.startElement("th", header);
encodeStyleClass(writer, null,
- "extdt-header rich-extdt-header", headerClass, null);
- writer.writeAttribute(HTML.id_ATTRIBUTE, table
- .getBaseClientId(context)
- + ":fakeIeRow", null);
- for (int i = 0; i < numberOfColumns; i++) {
+ "extdt-headercell extdt-fakeierow rich-extdt-headercell",
+ headerClass, null);
+ writer.endElement("th");
+ }
+ writer.endElement("tr");
+ if (header != null) {
+
+ encodeTableHeaderFacet(context, numberOfColumns, writer,
+ header, "extdt-header rich-extdt-header",
+ "extdt-header-continue rich-extdt-header-continue",
+ "extdt-headercell rich-extdt-headercell",
+ headerClass, "th", "header");
+ }
+
+ writer.startElement("tr", table);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, table
+ .getBaseClientId(context)
+ + ":headerRow", null);
+ encodeStyleClass(writer, null,
+ "extdt-subheader rich-extdt-subheader", null,
+ headerClass);
+ if (columnFacetHeaderPresent) {
+ encodeHeaderFacets(
+ context,
+ writer,
+ table,
+ colums,
+ "extdt-menucell extdt-subheadercell rich-extdt-subheadercell",
+ headerClass, "header", "th", numberOfColumns);
+ /* encoding additional empty column used in resizing columns */
+ writer.startElement("th", table);
+ encodeStyleClass(writer, null,
+ "extdt-empty-cell rich-extdt-subheadercell", null,
+ null);
+ writer.endElement("th");
+ }
+ else{
+ writer.writeAttribute(HTML.style_ATTRIBUTE, "height: 0px", null);
+ for (int i = 0; i < numberOfColumns; i++) {
writer.startElement("th", header);
- encodeStyleClass(writer, null,
- "extdt-headercell extdt-fakeierow
rich-extdt-headercell",
- headerClass, null);
writer.endElement("th");
}
- writer.endElement("tr");
- if (header != null) {
- writer.endElement("tr");
-
- encodeTableHeaderFacet(context, numberOfColumns, writer,
- header, "extdt-header rich-extdt-header",
- "extdt-header-continue rich-extdt-header-continue",
- "extdt-headercell rich-extdt-headercell",
- headerClass, "th", "header");
- }
-
- if (columnFacetPresent) {
- writer.startElement("tr", table);
- writer.writeAttribute(HTML.id_ATTRIBUTE, table
- .getBaseClientId(context)
- + ":headerRow", null);
- encodeStyleClass(writer, null,
- "extdt-subheader rich-extdt-subheader", null,
- headerClass);
- encodeHeaderFacets(
- context,
- writer,
- table,
- colums,
- "extdt-menucell extdt-subheadercell
rich-extdt-subheadercell",
- headerClass, "header", "th",
numberOfColumns);
- /* encoding additional empty column used in resizing columns */
- writer.startElement("th", table);
- encodeStyleClass(writer, null,
- "extdt-empty-cell rich-extdt-subheadercell", null,
- null);
- writer.endElement("th");
- writer.endElement("tr");
-
- encodeFilterRow(context, writer, table, table
- .getSortedColumns(),
- "extdt-subheadercell rich-extdt-subheadercell",
- headerClass, "header", HTML.th_ELEM);
-
- }
- else if (isColumnFacetPresent(table, "filter")){
- encodeFilterRow(context, writer, table, table
- .getSortedColumns(),
- "extdt-subheadercell rich-extdt-subheadercell",
- headerClass, "filter", HTML.th_ELEM);
- }
- writer.endElement("thead");
}
- else if (isColumnFacetPresent(table, "filter")){
- writer.startElement("thead", table);
- encodeFilterRow(context, writer, table, table
- .getSortedColumns(),
- "extdt-subheadercell rich-extdt-subheadercell",
- headerClass, "filter", HTML.th_ELEM);
- writer.endElement("thead");
- }
+ writer.endElement("tr");
+
+ encodeFilterRow(context, writer, table, table
+ .getSortedColumns(),
+ "extdt-subheadercell rich-extdt-subheadercell",
+ headerClass, "filter", HTML.th_ELEM);
+ writer.endElement("thead");
}
private void encodeFilterRow(FacesContext context, ResponseWriter writer,
@@ -1163,9 +1149,10 @@
}
boolean filterChanged = (newFilterValue == null ? (oldFilterValue
!= null)
: !newFilterValue.equals(oldFilterValue));
- //if (filterChanged) {
- // table.resetGroupVisibilityState();
- //}
+ if (filterChanged) {
+ //set focus on changed field
+
AjaxContext.getCurrentInstance().getResponseDataMap().put(AjaxActionComponent.FOCUS_DATA_ID,
filterValueInput.getClientId(context));
+ }
filtering = (filtering || filterChanged);
}
}