@Override
    public void queueEvent(FacesEvent event) {
        FacesContext context = getFacesContext();

        if (ComponentUtils.isRequestSource(this, context) && event instanceof AjaxBehaviorEvent) {
            Map<String, String[]> paramValues = context.getExternalContext().getRequestParameterValuesMap();
            Map<String, String> params = context.getExternalContext().getRequestParameterMap();

            String eventName = params.get(Constants.RequestParams.PARTIAL_BEHAVIOR_EVENT_PARAM);
            String clientId = getClientId(context);

            AjaxBehaviorEvent behaviorEvent = (AjaxBehaviorEvent) event;

            if ("transfer".equals(eventName)) {
                String[] items = paramValues.get(clientId + "_transferred");
                boolean isAdd = Boolean.parseBoolean(params.get(clientId + "_add"));
                List transferredItems = new ArrayList();
                populateModel(context, items, transferredItems);
                TransferEvent transferEvent = new TransferEvent(this, behaviorEvent.getBehavior(), transferredItems, isAdd);
                transferEvent.setPhaseId(event.getPhaseId());

                super.queueEvent(transferEvent);
            }
            else if ("select".equals(eventName) || "unselect".equals(eventName) || "reorder".equals(eventName)) {
                customEvents.put(eventName, (AjaxBehaviorEvent) event);
            }
        }
        else {
            super.queueEvent(event);
        }
    }
Prohibits client-side manipulation of disabled entries, when CSS style-class ui-state-disabled is removed.

@param facesContext The current FacesContext.
@param label The label to be used in the error message.
@param newEntries new/set entries of model source/target list
@param oldEntries old/former entries of model source/target list
@see <a href="https://github.com/primefaces/primefaces/issues/2127">GitHub #2127</a>
primefaces/src/main/java/org/primefaces/component/picklist/PickList.java