Author: nbelaevski
Date: 2011-02-01 10:49:12 -0500 (Tue, 01 Feb 2011)
New Revision: 21363
Added:
trunk/ui/core/ui/src/main/java/org/richfaces/event/BypassUpdatesAjaxBehaviorEvent.java
Modified:
trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java
Log:
https://issues.jboss.org/browse/RF-8697
Modified:
trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
===================================================================
---
trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2011-02-01
15:44:13 UTC (rev 21362)
+++
trunk/ui/core/ui/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2011-02-01
15:49:12 UTC (rev 21363)
@@ -46,6 +46,7 @@
import org.richfaces.cdk.annotations.Signature;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
+import org.richfaces.event.BypassUpdatesAjaxBehaviorEvent;
import org.richfaces.renderkit.util.CoreAjaxRendererUtils;
/**
@@ -245,7 +246,7 @@
}
public void setImmediate(boolean immediate) {
- getStateHelper().put(PropertyKeys.limitRender, immediate);
+ getStateHelper().put(PropertyKeys.immediate, immediate);
}
@Attribute
@@ -277,7 +278,7 @@
@Override
public void broadcast(BehaviorEvent event) throws AbortProcessingException {
- if (this.equals(event.getBehavior()) && isBypassUpdates()) {
+ if (this.equals(event.getBehavior()) && event instanceof
BypassUpdatesAjaxBehaviorEvent) {
FacesContext.getCurrentInstance().renderResponse();
}
Modified: trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java
===================================================================
---
trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java 2011-02-01
15:44:13 UTC (rev 21362)
+++
trunk/ui/core/ui/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java 2011-02-01
15:49:12 UTC (rev 21363)
@@ -36,6 +36,7 @@
import javax.faces.render.RenderKitFactory;
import org.ajax4jsf.component.behavior.AjaxBehavior;
+import org.richfaces.event.BypassUpdatesAjaxBehaviorEvent;
import org.richfaces.renderkit.util.AjaxRendererUtils;
import org.richfaces.renderkit.util.RendererUtils;
@@ -68,6 +69,10 @@
}
component.queueEvent(createEvent(component, ajaxBehavior));
+
+ if (isBypassUpdates(component, ajaxBehavior)) {
+ component.queueEvent(new BypassUpdatesAjaxBehaviorEvent(component,
ajaxBehavior));
+ }
}
private AjaxBehaviorEvent createEvent(UIComponent component, AjaxBehavior
ajaxBehavior) {
@@ -77,7 +82,6 @@
if (isImmediate(component, ajaxBehavior)) {
phaseId = PhaseId.APPLY_REQUEST_VALUES;
} else if (isBypassUpdates(component, ajaxBehavior)) {
- //TODO nick - what if behavior is immediate & bypassUpdates in the same
time?
phaseId = PhaseId.PROCESS_VALIDATIONS;
} else {
phaseId = PhaseId.INVOKE_APPLICATION;
Added:
trunk/ui/core/ui/src/main/java/org/richfaces/event/BypassUpdatesAjaxBehaviorEvent.java
===================================================================
---
trunk/ui/core/ui/src/main/java/org/richfaces/event/BypassUpdatesAjaxBehaviorEvent.java
(rev 0)
+++
trunk/ui/core/ui/src/main/java/org/richfaces/event/BypassUpdatesAjaxBehaviorEvent.java 2011-02-01
15:49:12 UTC (rev 21363)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2011, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.richfaces.event;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.Behavior;
+import javax.faces.event.BehaviorEvent;
+import javax.faces.event.FacesListener;
+import javax.faces.event.PhaseId;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public class BypassUpdatesAjaxBehaviorEvent extends BehaviorEvent {
+
+ private static final long serialVersionUID = 154803120133655033L;
+
+ public BypassUpdatesAjaxBehaviorEvent(UIComponent component, Behavior behavior) {
+ super(component, behavior);
+
+ setPhaseId(PhaseId.PROCESS_VALIDATIONS);
+ }
+
+ @Override
+ public boolean isAppropriateListener(FacesListener listener) {
+ return false;
+ }
+
+ @Override
+ public void processListener(FacesListener listener) {
+ throw new UnsupportedOperationException();
+ }
+
+}