Author: nbelaevski
Date: 2009-03-24 20:10:17 -0400 (Tue, 24 Mar 2009)
New Revision: 13166
Modified:
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
Log:
https://jira.jboss.org/jira/browse/RF-6547
Modified:
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
---
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2009-03-25
00:09:34 UTC (rev 13165)
+++
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2009-03-25
00:10:17 UTC (rev 13166)
@@ -50,6 +50,7 @@
import org.richfaces.component.UIDataTable;
import org.richfaces.component.util.FormUtil;
import org.richfaces.component.util.ViewUtil;
+import org.richfaces.context.RequestContext;
import org.richfaces.model.Ordering;
import org.richfaces.renderkit.html.iconimages.DataTableIconSortAsc;
import org.richfaces.renderkit.html.iconimages.DataTableIconSortDesc;
@@ -61,6 +62,8 @@
*/
public abstract class AbstractTableRenderer extends AbstractRowsRenderer {
+ private static final String SORT_DIV = ":sortDiv";
+
private static final String SORT_FILTER_PARAMETER = "fsp";
private static final String FILTER_INPUT_FACET_NAME = "filterValueInput";
@@ -538,7 +541,8 @@
org.richfaces.component.UIColumn column = (org.richfaces.component.UIColumn) child;
child.setId(child.getId());
if (sortColumnId != null) {
- if (sortColumnId.equals(child.getClientId(context))) {
+ String columnClientId = child.getClientId(context);
+ if (sortColumnId.equals(columnClientId)) {
String id = child.getId();
Collection<Object> sortPriority = table.getSortPriority();
if (isSingleSortMode) {
@@ -551,6 +555,9 @@
} else if(isSingleSortMode){
column.setSortOrder(Ordering.UNSORTED);
}
+
+ RequestContext requestContext = RequestContext.getInstance(context);
+ requestContext.setAttribute(columnClientId + SORT_DIV, Boolean.TRUE);
}
UIInput filterValueInput = (UIInput)child.getFacet(FILTER_INPUT_FACET_NAME);
if (null != filterValueInput) {
@@ -718,7 +725,8 @@
throws IOException {
org.richfaces.component.UIColumn col =
(org.richfaces.component.UIColumn) column;
- String clientId = col.getClientId(context) + facetName;
+ String columnClientId = col.getClientId(context);
+ String clientId = columnClientId + facetName;
writer.writeAttribute("id", clientId, null);
if (sortableColumn && col.isSelfSorted()) {
@@ -729,9 +737,13 @@
}
writer.startElement(HTML.DIV_ELEM, column);
- writer.writeAttribute(HTML.id_ATTRIBUTE, clientId + ":sortDiv", null);
- AjaxContext.getCurrentInstance().addRenderedArea(clientId + ":sortDiv");
+ writer.writeAttribute(HTML.id_ATTRIBUTE, clientId + SORT_DIV, null);
+ RequestContext requestContext = RequestContext.getInstance(context);
+ if (Boolean.TRUE.equals(requestContext.getAttribute(columnClientId + SORT_DIV))) {
+ AjaxContext.getCurrentInstance().addRenderedArea(clientId + SORT_DIV);
+ }
+
if (sortableColumn) {
writer.startElement(HTML.SPAN_ELEM, column);
writer.writeAttribute(HTML.class_ATTRIBUTE, "dr-table-sortable-header",
null);