Author: pgolawski
Date: 2008-10-10 08:49:06 -0400 (Fri, 10 Oct 2008)
New Revision: 10718
Modified:
trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
Log:
adapt component to work with new ExtendedTableDataModel and
ExtendedTableDataModifiableModel classes
Modified:
trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
===================================================================
---
trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2008-10-10
12:46:34 UTC (rev 10717)
+++
trunk/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2008-10-10
12:49:06 UTC (rev 10718)
@@ -16,6 +16,7 @@
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
import javax.faces.event.PhaseId;
+import javax.faces.model.DataModel;
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.event.AjaxEvent;
@@ -26,9 +27,10 @@
import org.richfaces.event.extdt.DragDropEvent;
import org.richfaces.event.extdt.ExtTableFilterEvent;
import org.richfaces.event.extdt.ExtTableSortEvent;
-import org.richfaces.model.ExtendedDataTableModifiableModel;
import org.richfaces.model.ExtendedTableDataModel;
+import org.richfaces.model.ExtendedTableDataModifiableModel;
import org.richfaces.model.FilterField;
+import org.richfaces.model.Modifiable;
import org.richfaces.model.ModifiableModel;
import org.richfaces.model.SortField2;
@@ -136,12 +138,24 @@
}// processChangeColumnVisibility
public void processSortingChange(ExtTableSortEvent event) {
- resetModel();
+ DataModel dataModel = getDataModel();
+ if (dataModel instanceof ExtendedTableDataModifiableModel<?>) {
+ ((ExtendedTableDataModifiableModel<?>)dataModel).resetSort();
+ }
+ else{
+ super.resetDataModel();
+ }
getFacesContext().renderResponse();
}
public void processFilteringChange(ExtTableFilterEvent event) {
- resetModel();
+ DataModel dataModel = getDataModel();
+ if (dataModel instanceof ExtendedTableDataModifiableModel<?>) {
+ ((ExtendedTableDataModifiableModel<?>)dataModel).resetFilter();
+ }
+ else{
+ super.resetDataModel();
+ }
resetGroupVisibilityState();
getFacesContext().renderResponse();
}
@@ -300,18 +314,31 @@
sortFields.addAll(sortFieldsMap.values());
setFilterFields(filterFields);
setSortFields(sortFields);
- ExtendedDataModel dataModel = (ExtendedDataModel) super.getDataModel();
- if (dataModel instanceof ExtendedTableDataModel<?>) {
- ExtendedTableDataModel<?> tableDataModel = (ExtendedTableDataModel<?>)
dataModel;
- return new ExtendedDataTableModifiableModel(tableDataModel,
- getVar(), getFilterFields(), getSortFields());
- } else {
- ModifiableModel modifiableModel = new ModifiableModel(dataModel,
- getVar());
- modifiableModel.modify(getFilterFields(), getSortFields());
-
- return modifiableModel;
+
+ ExtendedDataModel dataModel = (ExtendedDataModel)getDataModel();
+ if (dataModel instanceof ExtendedTableDataModifiableModel<?>) {
+ ((ExtendedTableDataModifiableModel<?>) dataModel).setVar(getVar());
}
+ if ((filterFields != null && !filterFields.isEmpty())
+ || (sortFields != null && !sortFields.isEmpty())) {
+ Modifiable modifiable = null;
+ if (dataModel instanceof Modifiable) {
+ modifiable = (Modifiable) dataModel;
+ } else if (dataModel instanceof ExtendedTableDataModel<?>) {
+ ExtendedTableDataModel<?> tableDataModel = (ExtendedTableDataModel<?>)
dataModel;
+ //ExtendedTableDataModifiableModelOld<?> modifiableModel = new
ExtendedTableDataModifiableModelOld(tableDataModel, getVar());
+ ExtendedTableDataModifiableModel<?> modifiableModel = new
ExtendedTableDataModifiableModel(tableDataModel, getVar());
+ dataModel = modifiableModel;
+ modifiable = modifiableModel;
+ }
+ else {
+ ModifiableModel modifiableModel = new ModifiableModel(dataModel, getVar());
+ dataModel = modifiableModel;
+ modifiable = modifiableModel;
+ }
+ modifiable.modify(filterFields, sortFields);
+ }
+ return dataModel;
}
/**
@@ -327,15 +354,6 @@
super.resetDataModel();
}
}
-
- /**
- * Method resets data model by calling
- * {@link org.ajax4jsf.component.UIDataAdaptor#resetDataModel()}. This
- * method is called on sort and filter action.
- */
- protected void resetModel() {
- super.resetDataModel();
- }
@SuppressWarnings("unchecked")
public Iterator<UIComponent> fixedChildren() {
Show replies by date