Author: konstantin.mishin
Date: 2008-06-10 11:41:42 -0400 (Tue, 10 Jun 2008)
New Revision: 8986
Added:
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentPhaseEventHandler.java
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentViewPhaseListener.java
Removed:
trunk/ui/dataTable/src/main/java/org/richfaces/component/DataTableViewPhaseListener.java
Modified:
trunk/framework/impl/src/main/resources/META-INF/faces-config.xml
trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
Log:
RF-2815
Added:
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentPhaseEventHandler.java
===================================================================
---
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentPhaseEventHandler.java
(rev 0)
+++
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentPhaseEventHandler.java 2008-06-10
15:41:42 UTC (rev 8986)
@@ -0,0 +1,9 @@
+package org.richfaces.component;
+
+import javax.faces.event.PhaseEvent;
+
+public interface ComponentPhaseEventHandler {
+
+ void doBeforePhase(PhaseEvent event);
+
+}
Added:
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentViewPhaseListener.java
===================================================================
---
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentViewPhaseListener.java
(rev 0)
+++
trunk/framework/impl/src/main/java/org/richfaces/component/ComponentViewPhaseListener.java 2008-06-10
15:41:42 UTC (rev 8986)
@@ -0,0 +1,48 @@
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+import javax.faces.event.PhaseEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.event.PhaseListener;
+
+
+public class ComponentViewPhaseListener implements PhaseListener {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2437433246178955788L;
+
+ public void afterPhase(PhaseEvent event) {
+ }
+
+ private void doBeforePhase(PhaseEvent event, UIComponent component) {
+ if (component.isRendered()) {
+ if (component instanceof ComponentPhaseEventHandler) {
+ ((ComponentPhaseEventHandler) component).doBeforePhase(event);
+ }
+ Iterator<UIComponent> children = component.getFacetsAndChildren();
+ while (children.hasNext()) {
+ doBeforePhase(event, children.next());
+ }
+ }
+
+ }
+
+ public void beforePhase(PhaseEvent event) {
+ FacesContext facesContext = event.getFacesContext();
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+ if (viewRoot != null) {
+ doBeforePhase(event, viewRoot);
+ }
+ }
+
+ public PhaseId getPhaseId() {
+ return PhaseId.RENDER_RESPONSE;
+ }
+
+}
Modified: trunk/framework/impl/src/main/resources/META-INF/faces-config.xml
===================================================================
--- trunk/framework/impl/src/main/resources/META-INF/faces-config.xml 2008-06-10 15:39:31
UTC (rev 8985)
+++ trunk/framework/impl/src/main/resources/META-INF/faces-config.xml 2008-06-10 15:41:42
UTC (rev 8986)
@@ -18,6 +18,7 @@
<lifecycle>
<phase-listener>org.ajax4jsf.event.AjaxPhaseListener</phase-listener>
<phase-listener>org.ajax4jsf.event.InitPhaseListener</phase-listener>
+
<phase-listener>org.richfaces.component.ComponentViewPhaseListener</phase-listener>
</lifecycle>
<managed-bean>
<managed-bean-name>a4j</managed-bean-name>
Deleted:
trunk/ui/dataTable/src/main/java/org/richfaces/component/DataTableViewPhaseListener.java
===================================================================
---
trunk/ui/dataTable/src/main/java/org/richfaces/component/DataTableViewPhaseListener.java 2008-06-10
15:39:31 UTC (rev 8985)
+++
trunk/ui/dataTable/src/main/java/org/richfaces/component/DataTableViewPhaseListener.java 2008-06-10
15:41:42 UTC (rev 8986)
@@ -1,45 +0,0 @@
-package org.richfaces.component;
-
-import java.util.Iterator;
-
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIViewRoot;
-import javax.faces.context.FacesContext;
-import javax.faces.event.PhaseEvent;
-import javax.faces.event.PhaseId;
-import javax.faces.event.PhaseListener;
-
-
-public class DataTableViewPhaseListener implements PhaseListener {
-
- private static final long serialVersionUID = 4321239328240647676L;
-
- public void afterPhase(PhaseEvent event) {
- }
-
- private void resetDataModel(UIComponent component) {
- if (component.isRendered()) {
- if (component instanceof UIDataTable) {
- ((UIDataTable) component).resetDataModel();
- }
- Iterator<UIComponent> children = component.getFacetsAndChildren();
- while (children.hasNext()) {
- resetDataModel(children.next());
- }
- }
-
- }
-
- public void beforePhase(PhaseEvent event) {
- FacesContext facesContext = event.getFacesContext();
- UIViewRoot viewRoot = facesContext.getViewRoot();
- if (viewRoot != null) {
- resetDataModel(viewRoot);
- }
- }
-
- public PhaseId getPhaseId() {
- return PhaseId.RENDER_RESPONSE;
- }
-
-}
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2008-06-10
15:39:31 UTC (rev 8985)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2008-06-10
15:41:42 UTC (rev 8986)
@@ -48,7 +48,7 @@
* JSF component class
*
*/
-public abstract class UIDataTable extends SequenceDataAdaptor implements Sortable2,
Filterable {
+public abstract class UIDataTable extends SequenceDataAdaptor implements Sortable2,
Filterable, ComponentPhaseEventHandler {
Collection<Object> sortPriority = new ArrayList<Object>();
@@ -84,8 +84,7 @@
public static final String COMPONENT_FAMILY = "org.richfaces.DataTable";
- @Override
- protected void resetDataModel() {
+ public void doBeforePhase(javax.faces.event.PhaseEvent event) {
super.resetDataModel();
}
Show replies by date