package various;

import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import javax.faces.event.PhaseId;

/**Klasa obiektu nasłuchującego zdarzenia akcji. 
 * W przykładzie obiekt nasłuchujący realizuje operację 
 * zapisywania do dziennika informacji o obsługiwanych 
 * zdarzeniach i może być przypisywany do obsługi dowolnych 
 * komponentów UI generujących akcje (patrz rozdzial 3.2). 
 */
public class ActionEventLogger implements ActionListener {

	@Override
	public void processAction(ActionEvent event) throws AbortProcessingException {
		FacesContext.getCurrentInstance().getExternalContext().log(event.getComponent() + "has generated" + event.toString());
	}
	public PhaseId getPhaseId() {
		return PhaseId.PROCESS_VALIDATIONS;
		}

}
