Author: abelevich
Date: 2011-03-09 07:37:28 -0500 (Wed, 09 Mar 2011)
New Revision: 22100
Modified:
branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
Log:
https://issues.jboss.org/browse/RF-10695 Menu Item - click event processed two times.
Reviewed by Alex Kolonitsky.
Modified:
branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
===================================================================
---
branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2011-03-09
12:17:53 UTC (rev 22099)
+++
branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2011-03-09
12:37:28 UTC (rev 22100)
@@ -9,6 +9,7 @@
import org.richfaces.component.AbstractMenuItem;
import org.richfaces.component.Mode;
import org.richfaces.renderkit.AjaxCommandRendererBase;
+import org.richfaces.renderkit.util.HandlersChain;
public class MenuItemRendererBase extends AjaxCommandRendererBase {
@@ -82,7 +83,40 @@
return "";
}
}
-
+
+ /** overridden due to {@link
https://issues.jboss.org/browse/RF-10695}
+ *
+ * @param context
+ * @param component
+ * @return
+ */
+
+ @Override
+ public String getOnClick(FacesContext context, UIComponent component) {
+ StringBuffer onClick = new StringBuffer();
+
+ if (!getUtils().isBooleanAttribute(component, "disabled")) {
+ HandlersChain handlersChain = new HandlersChain(context, component);
+
+ handlersChain.addBehaviors("click", "action");
+ handlersChain.addAjaxSubmitFunction();
+
+ 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();
@@ -92,7 +126,7 @@
return parent.getMode();
}
return Mode.server;
- }
+ }
protected String getStyleClass(FacesContext facesContext, UIComponent component,
String ddMenuStyle, String menuGroupStyle, String menuItemStyle) {
UIComponent ddMenu = getDDMenu(component);