You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by or...@apache.org on 2004/12/14 00:14:38 UTC

cvs commit: incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu NavigationMenuItem.java NavigationMenuUtils.java

oros        2004/12/13 15:14:38

  Modified:    src/components/org/apache/myfaces/custom/navmenu/jscookmenu
                        HtmlJSCookMenuRenderer.java
               src/components/org/apache/myfaces/custom/navmenu
                        NavigationMenuItem.java NavigationMenuUtils.java
  Log:
  fix #1044663: handle enabledOnUserRole/visibleOnUserRole, disabled menu items are rendered with null actions
  
  Revision  Changes    Path
  1.10      +19 -9     incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java
  
  Index: HtmlJSCookMenuRenderer.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- HtmlJSCookMenuRenderer.java	13 Oct 2004 11:50:57 -0000	1.9
  +++ HtmlJSCookMenuRenderer.java	13 Dec 2004 23:14:37 -0000	1.10
  @@ -38,6 +38,9 @@
    * @author Thomas Spiegl (latest modification by $Author$)
    * @version $Revision$ $Date$
    *          $Log$
  + *          Revision 1.10  2004/12/13 23:14:37  oros
  + *          fix #1044663: handle enabledOnUserRole/visibleOnUserRole, disabled menu items are rendered with null actions
  + *
    *          Revision 1.9  2004/10/13 11:50:57  matze
    *          renamed packages to org.apache
    *
  @@ -133,6 +136,10 @@
           {
               NavigationMenuItem item = (NavigationMenuItem)items[i];
   
  +            if (! item.isRendered()) {
  +                continue;
  +            }
  +
               if (i > 0)
               {
                   writer.write(",\n");
  @@ -158,7 +165,7 @@
               writer.write(", '");
               writer.write(JavascriptUtils.encodeString(item.getLabel()));
               writer.write("', ");
  -            if (item.getAction() != null)
  +            if (item.getAction() != null && ! item.isDisabled())
               {
                   writer.write("'");
                   writer.write(item.getAction());
  @@ -170,12 +177,15 @@
               }
               writer.write(", '#', null");
   
  -            NavigationMenuItem[] menuItems = item.getNavigationMenuItems();
  -            if (menuItems != null && menuItems.length > 0)
  -            {
  -                writer.write(",");
  -                encodeNavigationMenuItems(context, writer, menuItems);
  -            }
  +            if (item.isRendered() && ! item.isDisabled()) {
  +                // render children only if parent is visible/enabled
  +                NavigationMenuItem[] menuItems = item.getNavigationMenuItems();
  +                if (menuItems != null && menuItems.length > 0)
  +                {
  +                    writer.write(",");
  +                    encodeNavigationMenuItems(context, writer, menuItems);
  +                }
  +            };
               writer.write("]");
           }
       }
  
  
  
  1.6       +26 -2     incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java
  
  Index: NavigationMenuItem.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NavigationMenuItem.java	13 Oct 2004 11:50:57 -0000	1.5
  +++ NavigationMenuItem.java	13 Dec 2004 23:14:38 -0000	1.6
  @@ -21,6 +21,9 @@
    * @author Thomas Spiegl (latest modification by $Author$)
    * @version $Revision$ $Date$
    *          $Log$
  + *          Revision 1.6  2004/12/13 23:14:38  oros
  + *          fix #1044663: handle enabledOnUserRole/visibleOnUserRole, disabled menu items are rendered with null actions
  + *
    *          Revision 1.5  2004/10/13 11:50:57  matze
    *          renamed packages to org.apache
    *
  @@ -43,6 +46,7 @@
       private String _icon;
       private String _action;
       boolean _split;
  +    private boolean rendered = true;
       private NavigationMenuItem[] _navigationMenuItems = null;
   
       public NavigationMenuItem(String label, String action, String icon, boolean split)
  @@ -66,6 +70,26 @@
           _icon = icon;
           _split = split;
       }
  +
  +    public NavigationMenuItem(Object value,
  +                              String label,
  +                              String description,
  +                              boolean disabled,
  +                              boolean rendered,
  +                              String action,
  +                              String icon,
  +                              boolean split)
  +    {
  +        this(value, label, description, disabled, action, icon, split);
  +        this.rendered = rendered;
  +    }
  +
  +
  +    public boolean isRendered()
  +    {
  +        return rendered;
  +    }
  +
   
       public String getAction()
       {
  
  
  
  1.5       +8 -3      incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu/NavigationMenuUtils.java
  
  Index: NavigationMenuUtils.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/navmenu/NavigationMenuUtils.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NavigationMenuUtils.java	13 Oct 2004 11:50:57 -0000	1.4
  +++ NavigationMenuUtils.java	13 Dec 2004 23:14:38 -0000	1.5
  @@ -17,6 +17,7 @@
   
   import org.apache.commons.logging.LogFactory;
   import org.apache.commons.logging.Log;
  +import org.apache.myfaces.component.UserRoleUtils;
   
   import javax.faces.component.UIComponent;
   import javax.faces.component.UISelectItems;
  @@ -27,6 +28,9 @@
    * @author Thomas Spiegl (latest modification by $Author$)
    * @version $Revision$ $Date$
    *          $Log$
  + *          Revision 1.5  2004/12/13 23:14:38  oros
  + *          fix #1044663: handle enabledOnUserRole/visibleOnUserRole, disabled menu items are rendered with null actions
  + *
    *          Revision 1.4  2004/10/13 11:50:57  matze
    *          renamed packages to org.apache
    *
  @@ -75,7 +79,8 @@
                       item = new NavigationMenuItem(uiItem.getItemValue(),
                                                     label,
                                                     uiItem.getItemDescription(),
  -                                                  uiItem.isItemDisabled(),
  +                                                  uiItem.isItemDisabled() || ! UserRoleUtils.isEnabledOnUserRole(uiItem),
  +                                                  uiItem.isRendered(),
                                                     uiItem.getAction(),
                                                     uiItem.getIcon(),
                                                     uiItem.isSplit());