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;
}