1 package org.apache.myfaces.component.html.ext; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 6 import javax.faces.component.UIComponent; 7 import javax.faces.component.UIViewRoot; 8 import javax.faces.context.FacesContext; 9 import javax.faces.event.PhaseEvent; 10 import javax.faces.event.PhaseId; 11 import javax.faces.event.PhaseListener; 12 import java.util.Iterator ; 13 14 18 public class HtmlDataTablePhaseListener 19 implements PhaseListener 20 { 21 private static final Log log = LogFactory.getLog(HtmlDataTablePhaseListener.class); 22 23 public HtmlDataTablePhaseListener() 24 { 25 if (log.isDebugEnabled()) log.debug("New HtmlDataTablePhaseListener"); 26 } 27 28 public PhaseId getPhaseId() 29 { 30 return PhaseId.RENDER_RESPONSE; 31 } 32 33 public void afterPhase(PhaseEvent event) 34 { 35 } 36 37 public void beforePhase(PhaseEvent event) 38 { 39 FacesContext facesContext = event.getFacesContext(); 40 UIViewRoot viewRoot = facesContext.getViewRoot(); 41 recurseFacetsAndChildren(facesContext, viewRoot.getFacetsAndChildren()); 42 } 43 44 protected void recurseFacetsAndChildren(FacesContext facesContext, Iterator iterator) 45 { 46 while (iterator.hasNext()) 47 { 48 UIComponent comp = (UIComponent)iterator.next(); 49 if (comp instanceof HtmlDataTable) 50 { 51 ((HtmlDataTable)comp).refresh(facesContext); 52 } 53 recurseFacetsAndChildren(facesContext, comp.getFacetsAndChildren()); 54 } 55 } 56 57 } 58 | Popular Tags |