@Override
  protected Map<String, Object> getScriptObjectOptions(
      FacesContext context, UIComponent component) {
    AbstractPanelMenuItem panelMenuItem = (AbstractPanelMenuItem) component;

    Map<String, Object> options = new HashMap<String, Object>();
    // TODO nick - ajax options should not be rendered in client mode
    options.put("ajax", getAjaxOptions(context, panelMenuItem));
    options.put(
        "disabled",
        PanelMenuItemRenderer.isParentPanelMenuDisabled(panelMenuItem)
            || panelMenuItem.isDisabled());
    options.put("mode", panelMenuItem.getMode());
    options.put("name", panelMenuItem.getName());
    options.put("selectable", panelMenuItem.isSelectable());
    options.put("unselectable", panelMenuItem.isUnselectable());
    options.put("stylePrefix", getCssClass(panelMenuItem, ""));

    addEventOption(context, panelMenuItem, options, UNSELECT);
    addEventOption(context, panelMenuItem, options, SELECT);
    addEventOption(context, panelMenuItem, options, BEFORE_SELECT);

    return options;
  }