Author: pyaschenko
Date: 2009-03-23 11:20:38 -0400 (Mon, 23 Mar 2009)
New Revision: 13108
Modified:
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
trunk/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
Log:
https://jira.jboss.org/jira/browse/RF-5226
Modified:
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
===================================================================
---
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2009-03-23
15:18:57 UTC (rev 13107)
+++
trunk/ui/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2009-03-23
15:20:38 UTC (rev 13108)
@@ -182,6 +182,30 @@
}
variables.setVariable("icon", resource);
+ // create attributes string for item without parent
+ StringBuffer attr = new StringBuffer();
+ String attrStr = "";
+ if (!(menuItem.getParent() instanceof MenuComponent))
+ {
+ String styleClass = (String)
menuItem.getAttributes().get("styleClass");
+ String str = "";
+ attr.append(",{");
+ if (null!=styleClass && styleClass.length()>0) {
+ attr.append("styleClass:");
+ attr.append(ScriptUtils.toScript(styleClass));
+ str = ",";
+ }
+ String onselect = (String) menuItem.getAttributes().get("onselect");
+ if (null!=onselect && onselect.length()>0) {
+ attr.append(str);
+ attr.append("onselect:function(event){");
+ attr.append(onselect);
+ attr.append("}");
+ }
+ attr.append("}");
+ if (attr.length()>3) attrStr = attr.toString();
+ }
+
if (menuItem.isDisabled()) {
variables.setVariable("iconDisabledClasses",
"dr-menu-icon-disabled rich-menu-item-icon-disabled");
@@ -197,6 +221,9 @@
String mode = resolveSubmitMode(menuItem);
if (MenuComponent.MODE_AJAX.equalsIgnoreCase(mode)) {
+ scriptValue.append("RichFaces.Menu.updateItem(event,this");
+ scriptValue.append(attrStr);
+ scriptValue.append(");");
scriptValue.append(AjaxRendererUtils.buildOnClick(
menuItem, context).toString());
} else if (MenuComponent.MODE_SERVER.equalsIgnoreCase(mode)) {
@@ -242,30 +269,14 @@
scriptValue.append(",");
scriptValue.append(ScriptUtils.toScript(target));
}
- StringBuffer attr = new StringBuffer();
- if (!(menuItem.getParent() instanceof MenuComponent))
- {
- String styleClass = (String)
menuItem.getAttributes().get("styleClass");
- String str = "";
- attr.append(",{");
- if (null!=styleClass && styleClass.length()>0) {
- scriptValue.append("styleClass:");
- scriptValue.append(ScriptUtils.toScript(styleClass));
- str = ",";
- }
- String onselect = (String)
menuItem.getAttributes().get("onselect");
- if (null!=onselect && onselect.length()>0) {
- scriptValue.append(str);
- scriptValue.append("onselect:function(event){");
- scriptValue.append(onselect);
- scriptValue.append("}");
- }
- attr.append("}");
- if (attr.length()>3) scriptValue.append(attr);
- }
+
+ scriptValue.append(attrStr);
scriptValue.append(")");
} else {
+ scriptValue.append("RichFaces.Menu.updateItem(event,this");
+ scriptValue.append(attrStr);
+ scriptValue.append(");");
scriptValue.append(getStringAttributeOrEmptyString(menuItem,
"onclick"));
}
if (resource.length() > 0) {
Modified:
trunk/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
===================================================================
---
trunk/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2009-03-23
15:18:57 UTC (rev 13107)
+++
trunk/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2009-03-23
15:20:38 UTC (rev 13108)
@@ -1505,7 +1505,7 @@
return menuItem;
}
-RichFaces.Menu.submitForm = function (event, element, params, target, attr) {
+RichFaces.Menu.updateItem = function (event, element, attr) {
var menuItem = RichFaces.Menu.findMenuItem(element.id);
var classes = 'dr-menu-item dr-menu-item-enabled rich-menu-item
rich-menu-item-enabled';
if (menuItem) {
@@ -1516,6 +1516,10 @@
if (attr.onselect) attr.onselect(event);
}
element.className = classes;
+}
+
+RichFaces.Menu.submitForm = function (event, element, params, target, attr) {
+ RichFaces.Menu.updateItem(event, element, attr);
var form=A4J.findForm(element);
if (!params) params={};
if (!target) target='';