Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.richfaces.renderkit.html;
  
  import  javax.faces.application.ResourceDependencies;
  import  javax.faces.application.ResourceDependency;
  import  javax.faces.component.UIComponent;
  import  javax.faces.component.UIForm;
  import  javax.faces.context.FacesContext;
  
 
 @ResourceDependencies(@ResourceDependency(library = "org.richfaces", name = "dropdownmenu.ecss", target = "head"))
 public class MenuItemRendererBase extends AjaxCommandRendererBase {
     public static final String RENDERER_TYPE = "org.richfaces.MenuItemRenderer";
 
     protected boolean isDisabled(FacesContext facesContext, UIComponent component) {
         if (component instanceof AbstractMenuItem) {
             return ((AbstractMenuItemcomponent).isDisabled();
         }
         return false;
     }
 
     protected UIComponent getIconFacet(FacesContext facesContext, UIComponent component) {
         UIComponent facet = null;
         AbstractMenuItem menuItem = (AbstractMenuItemcomponent;
         if (menuItem != null) {
 
             if (menuItem.isDisabled()) {
                 facet = menuItem.getFacet(...toString());
             } else {
                 facet = menuItem.getFacet(...toString());
             }
         }
         return facet;
     }
 
     protected String getIconAttribute(FacesContext facesContext, UIComponent component) {
         String icon = null;
         AbstractMenuItem menuItem = (AbstractMenuItemcomponent;
         if (menuItem != null) {
 
             if (menuItem.isDisabled()) {
                 icon = menuItem.getIconDisabled();
             } else {
                 icon = menuItem.getIcon();
             }
         }
         return icon;
     }
 
     @Override
     public void doDecode(FacesContext context, UIComponent component) {
         AbstractMenuItem menuItem = (AbstractMenuItemcomponent;
         if (menuItem != null) {
             Mode mode = resolveSubmitMode(menuItem);
             if (!..equals(mode)) {
                 super.doDecode(contextcomponent);
             }
         }
     }
 
     private UIComponent getUIForm(UIComponent component) {
         if (component != null) {
             UIComponent parent = component.getParent();
             while (parent != null) {
                 if (parent instanceof UIForm) {
                     return parent;
                 }
                 parent = parent.getParent();
             }
         }
         return null;
     }

    
overridden due to https://issues.jboss.org/browse/RF-10695

Parameters:
context
component
 
     @Override
     public String getOnClick(FacesContext context, UIComponent component) {
         AbstractMenuItem menuItem = (AbstractMenuItemcomponent;
         Mode submitMode = resolveSubmitMode(menuItem);
         StringBuffer onClick = new StringBuffer();
 
         if (!getUtils().isBooleanAttribute(component"disabled")) {
             HandlersChain handlersChain = new HandlersChain(contextcomponent);
 
             handlersChain.addInlineHandlerFromAttribute("onclick");
             handlersChain.addBehaviors("click""action");
 
             switch (submitMode) {
                 case :
                     handlersChain.addAjaxSubmitFunction();
                    break;
                case :
                    handlersChain.addInlineHandlerAsValue("RichFaces.submitForm(event.form, event.itemId)");
            }
            String handlerScript = handlersChain.toScript();
            if (handlerScript != null) {
                onClick.append(handlerScript);
            }
            if (!"reset".equals(component.getAttributes().get("type"))) {
                onClick.append(";return false;");
            }
        } else {
            onClick.append("return false;");
        }
        return onClick.toString();
    }
    protected Mode resolveSubmitMode(AbstractMenuItem menuItem) {
        if (menuItem.getMode() != null) {
            return menuItem.getMode();
        }
        AbstractMenuContainer parent = getMenuParent(menuItem);
        if (parent != null && parent.getMode() != null) {
            return parent.getMode();
        }
        return .;
    }
    protected String getStyleClass(FacesContext facesContext, UIComponent componentString menuParentStyle,
            String menuGroupStyleString menuItemStyle) {
        UIComponent parent = getMenuParent(component);
        UIComponent menuGroup = getMenuGroup(component);
        Object styleClass = null;
        if (parent != null && menuParentStyle != null && menuParentStyle.length() > 0) {
            styleClass = parent.getAttributes().get(menuParentStyle);
        }
        if (menuGroup != null && menuGroupStyle != null && menuGroupStyle.length() > 0) {
            styleClass = concatClasses(styleClassmenuGroup.getAttributes().get(menuGroupStyle));
        }
        return concatClasses(styleClasscomponent.getAttributes().get(menuItemStyle));
    }

    
Finds a parent of given UI component.

Parameters:
component UIComponent
parentClass Class of desired parent
Returns:
UIComponent
    private UIComponent getParent(UIComponent componentClass<?> parentClass) {
        if (component != null && parentClass != null) {
            UIComponent parent = component.getParent();
            while (parent != null) {
                if (parentClass.isInstance(parent)) {
                    return parent;
                }
                parent = parent.getParent();
            }
        }
        return null;
    }

    
Returns a parent AbstractDropDownMenu object of the given component.

Parameters:
component
Returns:
AbstractDropDownMenu
    protected AbstractMenuContainer getMenuParent(UIComponent component) {
        return (AbstractMenuContainergetParent(componentAbstractMenuContainer.class);
    }

    
Returns a parent AbstractMenuGroup object of the given component.

Parameters:
component
Returns:
AbstractMenuGroup
    protected AbstractMenuGroup getMenuGroup(UIComponent component) {
        return (AbstractMenuGroupgetParent(componentAbstractMenuGroup.class);
    }

    
It is introduced due to RF-10004 CDK: isEmpty method is generated incorrectly

Parameters:
str
    protected boolean isStringEmpty(String str) {
        if (str != null && str.trim().length() > 0) {
            return false;
        }
        return true;
    }
    public String getSubmitMode(UIComponent component) {
        return this.resolveSubmitMode((AbstractMenuItemcomponent).name();
    }
New to GrepCode? Check out our FAQ X