import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Map; import javax.faces.event.AjaxBehaviorEvent; import javax.faces.event.FacesEvent; import org.primefaces.event.SelectEvent; import org.primefaces.util.Constants; public final static String STYLE_CLASS = "ui-commandlink ui-widget"; public final static String DISABLED_STYLE_CLASS = "ui-commandlink ui-widget ui-state-disabled"; private static final Collection<String> EVENT_NAMES = Collections.unmodifiableCollection(Arrays.asList("click","dialogReturn")); @Override public Collection<String> getEventNames() { return EVENT_NAMES; } @Override public String getDefaultEventName() { return "click"; } @Override public void queueEvent(FacesEvent event) { FacesContext context = getFacesContext(); if(event instanceof AjaxBehaviorEvent) { Map<String,String> params = context.getExternalContext().getRequestParameterMap(); String eventName = params.get(Constants.RequestParams.PARTIAL_BEHAVIOR_EVENT_PARAM); if(eventName.equals("dialogReturn")) { AjaxBehaviorEvent behaviorEvent = (AjaxBehaviorEvent) event; Map<String,Object> session = context.getExternalContext().getSessionMap(); String dcid = params.get(this.getClientId(context) + "_pfdlgcid"); Object selectedValue = session.get(dcid); session.remove(dcid); event = new SelectEvent(this, behaviorEvent.getBehavior(), selectedValue); super.queueEvent(event); } else if(eventName.equals("click")) { super.queueEvent(event); } } else { super.queueEvent(event); } } public boolean isPartialSubmitSet() { return (getStateHelper().get(PropertyKeys.partialSubmit) != null) || (this.getValueExpression("partialSubmit") != null); } public boolean isResetValuesSet() { return (getStateHelper().get(PropertyKeys.resetValues) != null) || (this.getValueExpression("resetValues") != null); } public boolean isAjaxified() { return isAjax(); } private String confirmationScript; public String getConfirmationScript() { return this.confirmationScript; } public void setConfirmationScript(String confirmationScript) { this.confirmationScript = confirmationScript; } public boolean requiresConfirmation() { return this.confirmationScript != null; }