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());