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.BehaviorEvent; import javax.faces.event.FacesEvent; import org.primefaces.event.ItemSelectEvent; private final static String DEFAULT_EVENT = "itemSelect"; private static final Collection<String> EVENT_NAMES = Collections.unmodifiableCollection(Arrays.asList(DEFAULT_EVENT)); @Override public Collection<String> getEventNames() { return EVENT_NAMES; } @Override public String getDefaultEventName() { return DEFAULT_EVENT; } @Override public void queueEvent(FacesEvent event) { if(event instanceof AjaxBehaviorEvent) { BehaviorEvent behaviorEvent = (AjaxBehaviorEvent) event; Map<String,String> map = getFacesContext().getExternalContext().getRequestParameterMap(); int itemIndex = Integer.parseInt(map.get("itemIndex")); int seriesIndex = Integer.parseInt(map.get("seriesIndex")); ItemSelectEvent itemSelectEvent = new ItemSelectEvent(this, behaviorEvent.getBehavior(), itemIndex, seriesIndex); super.queueEvent(itemSelectEvent); } }