XRPL - is*Phase() API


Code 1 - testPhaseExecution.xsp:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.afterRestoreView>
		<![CDATA[#{javascript:println("RESTORE_VIEW: " + debugBean.isRestoreViewPhase());}]]>
	</xp:this.afterRestoreView>
	<xp:button value="Test Phases" id="button1">
		<xp:this.rendered>
			<![CDATA[#{javascript:
				println("RESTORE_VIEW: " + debugBean.isRestoreViewPhase());
				println("APPLY_REQUEST_VALUES: " + debugBean.isApplyRequestValuesPhase());
				println("PROCESS_VALIDATIONS: " + debugBean.isProcessValidationsPhase());
				println("UPDATE_MODEL_VALUES: " + debugBean.isUpdateModelValuesPhase());
				println("INVOKE_APPLICATION: " + debugBean.isInvokeApplicationPhase());
				println("RENDER_RESPONSE: " + debugBean.isRenderResponsePhase());
				// note same as: println("RENDER_RESPONSE: " + view.isRenderingPhase());
				return true;
		}]]>
		</xp:this.rendered>
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete">
			<xp:this.action>
				<![CDATA[#{javascript:
					println("INVOKE_APPLICATION: " + debugBean.isInvokeApplicationPhase());
				}]]>
			</xp:this.action>
		</xp:eventHandler>
	</xp:button>
</xp:view>

-----------------------------------------------------------------------------------------------------------------

Code 2 - DebugBean.java:

package com.ibm.xsp.masterclass.beans;

import java.io.Serializable;

import javax.faces.context.FacesContext;

import com.ibm.xsp.masterclass.lifecycle.DebugBeanPhaseListener;

/*
 * @author Tony McGuckin, IBM
 */
public class DebugBean implements Serializable {

    private static final long serialVersionUID = -1698889483899280998L;

    public static final String BEAN_NAME = "debugBean";

    public static DebugBean instance;

    protected boolean debug = false;

    // ------------------------------------------------------------------------

    public DebugBean() {
	instance = this;
    }

    // ------------------------------------------------------------------------

    public static DebugBean getInstance() {
	if (null == instance) {
	    FacesContext context = FacesContext.getCurrentInstance();
	    instance = (DebugBean) context.getApplication().getVariableResolver().resolveVariable(context, BEAN_NAME);
	}
	return instance;
    }

    // ------------------------------------------------------------------------

    public boolean isDebug() {
	return debug;
    }

    public void setDebug(boolean debug) {
	this.debug = debug;
    }

    public void setDebug(String debug) {
	this.debug = Boolean.parseBoolean(debug);
    }

    // ------------------------------------------------------------------------
    
    public boolean isRestoreViewPhase(){
	DebugBeanPhaseListener listener = DebugBeanPhaseListener.getInstance();
	return (null != listener && listener.isRestoreViewPhase());
    }
    
    public boolean isApplyRequestValuesPhase(){
	DebugBeanPhaseListener listener = DebugBeanPhaseListener.getInstance();
	return (null != listener && listener.isApplyRequestValuesPhase());
    }
    
    public boolean isProcessValidationsPhase(){
	DebugBeanPhaseListener listener = DebugBeanPhaseListener.getInstance();
	return (null != listener && listener.isProcessValidationsPhase());
    }
    
    public boolean isUpdateModelValuesPhase(){
	DebugBeanPhaseListener listener = DebugBeanPhaseListener.getInstance();
	return (null != listener && listener.isUpdateModelValuesPhase());
    }
    
    public boolean isInvokeApplicationPhase(){
	DebugBeanPhaseListener listener = DebugBeanPhaseListener.getInstance();
	return (null != listener && listener.isInvokeApplicationPhase());
    }
    
    public boolean isRenderResponsePhase(){
	DebugBeanPhaseListener listener = DebugBeanPhaseListener.getInstance();
	return (null != listener && listener.isRenderResponsePhase());
    }

    // ------------------------------------------------------------------------

} // end DebugBean

-----------------------------------------------------------------------------------------------------------------

Code 3 - DebugBeanPhaseListener.java:

package com.ibm.xsp.masterclass.lifecycle;

import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;

import com.ibm.xsp.masterclass.beans.DebugBean;

/*
 * @author Tony McGuckin, IBM
 */
public class DebugBeanPhaseListener implements javax.faces.event.PhaseListener {

    private static final long serialVersionUID = 1L;
    
    private static DebugBeanPhaseListener instance;
    
    private PhaseId phaseId;
    
    public DebugBeanPhaseListener(){
	instance = this;
    }

    // ------------------------------------------------------------------------
    
    public static DebugBeanPhaseListener getInstance(){
	if(null == instance){
	    instance = new DebugBeanPhaseListener();
	}
	return instance;
    }

    // ------------------------------------------------------------------------
    
    public boolean isRestoreViewPhase(){
	return (null != phaseId && phaseId.equals(PhaseId.RESTORE_VIEW));
    }
    
    public boolean isApplyRequestValuesPhase(){
	return (null != phaseId && phaseId.equals(PhaseId.APPLY_REQUEST_VALUES));
    }
    
    public boolean isProcessValidationsPhase(){
	return (null != phaseId && phaseId.equals(PhaseId.PROCESS_VALIDATIONS));
    }
    
    public boolean isUpdateModelValuesPhase(){
	return (null != phaseId && phaseId.equals(PhaseId.UPDATE_MODEL_VALUES));
    }
    
    public boolean isInvokeApplicationPhase(){
	return (null != phaseId && phaseId.equals(PhaseId.INVOKE_APPLICATION));
    }
    
    public boolean isRenderResponsePhase(){
	return (null != phaseId && phaseId.equals(PhaseId.RENDER_RESPONSE));
    }

    public PhaseId getPhaseId() {
	return PhaseId.ANY_PHASE;
    }

    // ------------------------------------------------------------------------

    public void beforePhase(PhaseEvent event) {
	try {
	    phaseId = event.getPhaseId();
	    if (DebugBean.getInstance().isDebug()) {
		if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW)) {
		    System.out.println(" ");
		    System.out.println("Request:\tStarted...");
		}
		System.out.println(" ");
		System.out.println("Lifecycle:\tBefore Phase: " + event.getPhaseId());
	    }
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }

    // ------------------------------------------------------------------------

    public void afterPhase(PhaseEvent event) {
	try {
	    phaseId = event.getPhaseId();
	    if (DebugBean.getInstance().isDebug()) {
		System.out.println("Lifecycle:\tAfter Phase: " + event.getPhaseId());
		System.out.println(" ");
		if (event.getPhaseId().equals(PhaseId.RENDER_RESPONSE)) {
		    System.out.println("Request:\tCompleted.");
		    System.out.println(" ");
		}
	    }
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }
} // end DebugBeanPhaseListener

-----------------------------------------------------------------------------------------------------------------

Code 4 - faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
  <lifecycle>
    <phase-listener>com.ibm.xsp.masterclass.lifecycle.DebugBeanPhaseListener</phase-listener>
  </lifecycle>
  <managed-bean>
    <managed-bean-name>debugBean</managed-bean-name>
    <managed-bean-class>com.ibm.xsp.masterclass.beans.DebugBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>debug</property-name>
      <value>false</value>
    </managed-property>
  </managed-bean>
</faces-config>

All code submitted to OpenNTF XSnippets, whether submitted as a "Snippet" or in the body of a Comment, is provided under the Apache License Version 2.0. See Terms of Use for full details.
No comments yetLogin first to comment...