Author: nbelaevski
Date: 2008-07-23 11:22:59 -0400 (Wed, 23 Jul 2008)
New Revision: 9754
Modified:
trunk/ui/datascroller/src/main/java/org/richfaces/component/UIDatascroller.java
trunk/ui/datascroller/src/main/java/org/richfaces/renderkit/html/DataScrollerRenderer.java
Log:
https://jira.jboss.org/jira/browse/RF-3971
Modified: trunk/ui/datascroller/src/main/java/org/richfaces/component/UIDatascroller.java
===================================================================
---
trunk/ui/datascroller/src/main/java/org/richfaces/component/UIDatascroller.java 2008-07-23
15:12:09 UTC (rev 9753)
+++
trunk/ui/datascroller/src/main/java/org/richfaces/component/UIDatascroller.java 2008-07-23
15:22:59 UTC (rev 9754)
@@ -38,6 +38,7 @@
import org.ajax4jsf.Messages;
import org.ajax4jsf.component.AjaxActionComponent;
+import org.ajax4jsf.event.AjaxEvent;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
import org.ajax4jsf.renderkit.RendererUtils;
import org.apache.commons.logging.Log;
@@ -110,16 +111,19 @@
updateModel(dataScrollerEvent.getPage());
- FacesContext context = FacesContext.getCurrentInstance();
- AjaxRendererUtils.addRegionByName(context, this, this.getId());
- AjaxRendererUtils.addRegionByName(context, this, this.getFor());
+ FacesContext context = getFacesContext();
- setupReRender(context);
-
MethodExpression scrollerListener = getScrollerListener();
if (scrollerListener != null) {
scrollerListener.invoke(context.getELContext(), new Object[]{event});
}
+ } else if (event instanceof AjaxEvent) {
+ FacesContext context = getFacesContext();
+
+ AjaxRendererUtils.addRegionByName(context, this, this.getId());
+ AjaxRendererUtils.addRegionByName(context, this, this.getFor());
+
+ setupReRender(context);
}
}
Modified:
trunk/ui/datascroller/src/main/java/org/richfaces/renderkit/html/DataScrollerRenderer.java
===================================================================
---
trunk/ui/datascroller/src/main/java/org/richfaces/renderkit/html/DataScrollerRenderer.java 2008-07-23
15:12:09 UTC (rev 9753)
+++
trunk/ui/datascroller/src/main/java/org/richfaces/renderkit/html/DataScrollerRenderer.java 2008-07-23
15:22:59 UTC (rev 9754)
@@ -33,6 +33,7 @@
import javax.faces.context.ResponseWriter;
import javax.faces.event.PhaseId;
+import org.ajax4jsf.event.AjaxEvent;
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSLiteral;
@@ -49,25 +50,27 @@
}
public void doDecode(FacesContext context, UIComponent component) {
- Map paramMap = getParamMap(context);
- String clientId = component.getClientId(context);
- String param = (String) paramMap.get(clientId);
- if (param != null) {
- UIDatascroller scroller = (UIDatascroller) component;
- int newPage = scroller.getPageForFacet(param);
- int page = scroller.getPage();
- if (newPage != 0 && newPage != page) {
- DataScrollerEvent event = new DataScrollerEvent(scroller,
- String.valueOf(page), param, newPage);
- if (scroller.isImmediate()) {
- event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else {
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
- }
+ Map paramMap = getParamMap(context);
+ String clientId = component.getClientId(context);
+ String param = (String) paramMap.get(clientId);
+ if (param != null) {
+ UIDatascroller scroller = (UIDatascroller) component;
+ int newPage = scroller.getPageForFacet(param);
+ int page = scroller.getPage();
+ if (newPage != 0 && newPage != page) {
+ DataScrollerEvent event = new DataScrollerEvent(scroller,
+ String.valueOf(page), param, newPage);
+ if (scroller.isImmediate()) {
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ } else {
+ event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ }
- component.queueEvent(event);
- }
- }
+ event.queue();
+ }
+
+ new AjaxEvent(component).queue();
+ }
}
public ControlsState getControlsState(FacesContext context,