Author: F.antonov
Date: 2007-03-27 10:06:33 -0400 (Tue, 27 Mar 2007)
New Revision: 171
Modified:
trunk/richfaces/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
Log:
MenuItem component development.
Modified:
trunk/richfaces/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java
===================================================================
---
trunk/richfaces/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2007-03-27
10:06:06 UTC (rev 170)
+++
trunk/richfaces/menu-components/src/main/java/org/richfaces/renderkit/html/MenuItemRendererBase.java 2007-03-27
14:06:33 UTC (rev 171)
@@ -53,40 +53,93 @@
ComponentVariables variables = ComponentsVariableResolver.getVariables(this,
menuItem);
String resource = menuItem.isDisabled() ?
ViewUtil.getResourceURL(menuItem.getIconDisabled()) :
ViewUtil.getResourceURL(menuItem.getIcon());
- if (resource != null) {
- variables.setVariable("icon", resource);
+ if (resource == null) {
+ resource = (String) getResource( "images/spacer.gif" ).getUri(context,
menuItem);
}
+ variables.setVariable("icon", resource);
- resource = null;
- String mode = menuItem.getMode();
- if (mode.equalsIgnoreCase(UIMenuItem.MODE_AJAX)) {
- resource = "alert('Ajax submit mode');";
- } else if (mode.equalsIgnoreCase(UIMenuItem.MODE_SERVER)) {
- UIForm form= rendererUtils.getNestingForm(context, menuItem);
- resource = "document.getElementById('" + form.getId() +
"').submit();";
- }
- if (resource != null) {
- variables.setVariable("onclick", resource);
- }
-
- if (menuItem.isDisabled()) {
+ if (menuItem.isDisabled()) {
resource = "dr-menu-item dr-menu-item-disabled rich-menu-item
rich-menu-item-disabled "
- + (String) menuItem.getAttributes().get("styleClass");
+ + additionalClass(menuItem, "styleClass");
+ variables.setVariable("class", resource);
+
+ resource = "dr-menu-icon dr-menu-icon-disabled rich-menu-item-icon
rich-menu-item-icon-disabled "
+ + additionalClass(menuItem, "iconClass");
+ variables.setVariable("iconClass", resource);
+
+ resource = "dr-menu-label dr-menu-label-disabled rich-menu-item-label
rich-menu-item-label-disabled";
+ // + (String) menuItem.getAttributes().get("iconClass");
+ variables.setVariable("labelClass", resource);
+
} else {
- resource = "this.className='dr-menu-item dr-menu-item-unselect rich-menu-item
rich-menu-item-unselect "
- + (String) menuItem.getAttributes().get("styleClass") + "';
"
- + (String) menuItem.getAttributes().get("onmouseout");
- variables.setVariable("onmouseout", resource);
- resource = "this.className='dr-menu-item dr-menu-item-select rich-menu-item
rich-menu-item-select "
- + (String) menuItem.getAttributes().get("styleClass") + "';
"
- + (String) menuItem.getAttributes().get("onmouseover");
- variables.setVariable("onmouseover", resource);
+ StringBuffer scriptValue = new StringBuffer();
+ scriptValue.append("this.className='dr-menu-item dr-menu-item-enabled
rich-menu-item rich-menu-item-enabled ")
+ .append(additionalClass(menuItem, "styleClass") + "'; ");
+ if (null == getIconFacet(menuItem)) {
+ scriptValue.append("document.getElementById('" +
menuItem.getClientId(context) + ":icon').className='dr-menu-icon
rich-menu-item-icon ")
+ .append(additionalClass(menuItem, "iconClass") + "';
");
+ }
+ scriptValue.append("document.getElementById('" +
menuItem.getClientId(context) + ":anchor').className='dr-menu-label
rich-menu-item-label'; ")
+ .append(additionalClass(menuItem, "onmouseout"));
+ variables.setVariable("onmouseout", scriptValue);
- resource = "dr-menu-item dr-menu-item-unselect rich-menu-item
rich-menu-item-unselect "
- + (String) menuItem.getAttributes().get("styleClass");
+ scriptValue = new StringBuffer();
+ scriptValue.append("this.className='dr-menu-item dr-menu-item-hover
rich-menu-item rich-menu-item-hover ")
+ .append(additionalClass(menuItem, "styleClass") + "'; ");
+ if (null == getIconFacet(menuItem)) {
+ scriptValue.append("document.getElementById('" +
menuItem.getClientId(context) + ":icon').className='dr-menu-icon
dr-menu-icon-selected rich-menu-item-icon rich-menu-item-icon-selected ")
+ .append(additionalClass(menuItem, "iconClass") + "';
");
+ }
+ scriptValue.append("document.getElementById('" +
menuItem.getClientId(context) + ":anchor').className='dr-menu-label
dr-menu-label-selected rich-menu-item-label rich-menu-item-label-selected'; ")
+ .append(additionalClass(menuItem, "onmouseout"));
+ variables.setVariable("onmouseover", scriptValue);
+
+ resource = "dr-menu-item dr-menu-item-enabled rich-menu-item
rich-menu-item-enabled "
+ + additionalClass(menuItem, "styleClass");
+ variables.setVariable("class", resource);
+
+ resource = "dr-menu-icon rich-menu-item-icon "
+ + additionalClass(menuItem, "iconClass");
+ variables.setVariable("iconClass", resource);
+
+ resource = "dr-menu-label rich-menu-item-label";
+ // + (String) menuItem.getAttributes().get("iconClass");
+ variables.setVariable("labelClass", resource);
+
+ resource = null;
+ String mode = menuItem.getMode();
+ if (mode.equalsIgnoreCase(UIMenuItem.MODE_AJAX)) {
+ resource = "alert('Ajax submit mode');";
+ } else if (mode.equalsIgnoreCase(UIMenuItem.MODE_SERVER)) {
+ UIForm form= rendererUtils.getNestingForm(context, menuItem);
+ resource = "document.getElementById('" + form.getId() +
"').submit();";
+ }
+ if (resource != null) {
+ variables.setVariable("onclick", resource);
+ }
+ }
+ }
+
+ private String additionalClass(UIMenuItem menuItem, String className) {
+ Object classObject = menuItem.getAttributes().get(className);
+ if (null != classObject) {
+ return (String) classObject;
}
- variables.setVariable("class", resource);
+ return "";
}
+
+ protected UIComponent getIconFacet(UIMenuItem menuItem) {
+ UIComponent iconFacet = null;
+ if (menuItem.isDisabled()) {
+ iconFacet = menuItem.getFacet("iconDisabled");
+ } else {
+ iconFacet = menuItem.getFacet("icon");
+ }
+ if (null != iconFacet) {
+ return iconFacet;
+ }
+ return null;
+ }
}
Show replies by date