You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2006/02/10 17:14:42 UTC
svn commit: r376752 - in /myfaces/tomahawk/trunk:
core/src/main/java/org/apache/myfaces/component/html/ext/
core/src/main/java/org/apache/myfaces/custom/navmenu/
core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/
core/src/main/java/org/a...
Author: mmarinschek
Date: Fri Feb 10 08:14:39 2006
New Revision: 376752
URL: http://svn.apache.org/viewcvs?rev=376752&view=rev
Log:
Following Features are added:
HtmlPanelNavigationMenu:
-new Attribute Boolean expandAll:
if true all MenuItems are always expanded
-new Attribute Boolean disabled:
if true all MenuItems are disabled
-new Attribute String disabledStyle:
if a MenuItem is disabled its Style will
be set to disabledStyle. This can
be overwritten by disabledStyle Attribute
of the MenuItem
-new Attribute String disabledStyleClass:
if a MenuItem is disabled its StyleClass will
be set to disabledStyleClass. This can
be overwritten by disabledStyleClass Attribute
of the MenuItem
NavigationMenuItem (and UINavigationMenuItem):
-existing Attribute String icon:
Implemented that if set an UIGraphic with url:icon
will be rendered instead of the UIOutput inside the Link
-new Attribute String target:
HTML-Target-Attribute of the created commandLink
will be set to target if available
-new Attribute Boolean disabled:
if true:
* the rendered CommandLinks disabled-Attribute is set
to true
* the Style of the rendered CommandLink is set to
disabledStyle if available
* the StyleClass of the rendered CommandLink is set to
disabledStyleClass if available
* All Children-NavigationItems are disabled
as well
-new Attribute String disabledStyle:
This Style will be used by this Items CommandLink and
its Children-NavigationItems if the Item is disabled,
can be overwritten in a Child-NavigationItem
-new Attribute String disabledStyleClass:
This StyleClass will be used by this Items CommandLink and
its Children-NavigationItems if the Item is disabled,
can be overwritten in a Child-NavigationItem
HTMLCommandLink:
-new Attribute Boolean disabled:
if true:
* a HTML-Span-Element is rendered instead
of the Anchor-Element
* the Style of the rendered Element is set to
disabledStyle if available
* the StyleClass of the rendered Element is set to
disabledStyleClass if available
-new Attribute String disabledStyle:
This Style will be used by this Components rendered Element
if the Component is disabled
-new Attribute String disabledStyleClass:
This StyleClass will be used by this Components rendered Element
if the Component is disabled
Added:
myfaces/tomahawk/trunk/core/src/main/tld/entities/ext_disabled_attribute.xml
Modified:
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlCommandLink.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/HtmlNavigationMenuItemTag.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/UINavigationMenuItem.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenuTag.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/ext/HtmlLinkRenderer.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/taglib/html/ext/HtmlCommandLinkTag.java
myfaces/tomahawk/trunk/core/src/main/tld/entities/extended_command_link_attributes.xml
myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_navigation_menu_item_attributes.xml
myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_panel_navigation_2_attributes.xml
myfaces/tomahawk/trunk/core/src/main/tld/tomahawk.tld
myfaces/tomahawk/trunk/examples/simple/src/main/java/org/apache/myfaces/examples/misc/NavigationMenu.java
myfaces/tomahawk/trunk/examples/simple/src/main/webapp/panelnavigation_2.jsp
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlCommandLink.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlCommandLink.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlCommandLink.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlCommandLink.java Fri Feb 10 08:14:39 2006
@@ -54,6 +54,9 @@
private String _enabledOnUserRole = null;
private String _visibleOnUserRole = null;
private String _actionFor = null;
+ private Boolean _disabled;
+ private String _disabledStyle;
+ private String _disabledStyleClass;
public HtmlCommandLink()
{
@@ -109,6 +112,42 @@
return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
}
+ public boolean isDisabled()
+ {
+ if (_disabled != null) return _disabled.booleanValue();
+ ValueBinding vb = getValueBinding("disabled");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v != null && v.booleanValue();
+ }
+
+ public void setDisabled(boolean disabled)
+ {
+ _disabled = disabled ? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ public String getDisabledStyle()
+ {
+ if (_disabledStyle != null) return _disabledStyle;
+ ValueBinding vb = getValueBinding("disabledStyle");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public String getDisabledStyleClass()
+ {
+ if (_disabledStyleClass != null) return _disabledStyleClass;
+ ValueBinding vb = getValueBinding("disabledStyleClass");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
+ }
public boolean isRendered()
{
@@ -118,12 +157,15 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[5];
+ Object values[] = new Object[8];
values[0] = super.saveState(context);
values[1] = _target;
values[2] = _enabledOnUserRole;
values[3] = _visibleOnUserRole;
values[4] = _actionFor;
+ values[5] = _disabled;
+ values[6] = _disabledStyle;
+ values[7] = _disabledStyleClass;
return values;
}
@@ -135,6 +177,9 @@
_enabledOnUserRole = (String)values[2];
_visibleOnUserRole = (String)values[3];
_actionFor = (String)values[4];
+ _disabled = (Boolean) values[5];
+ _disabledStyle = (String) values[6];
+ _disabledStyleClass = (String) values[7];
}
//------------------ GENERATED CODE END ---------------------------------------
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/HtmlNavigationMenuItemTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/HtmlNavigationMenuItemTag.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/HtmlNavigationMenuItemTag.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/HtmlNavigationMenuItemTag.java Fri Feb 10 08:14:39 2006
@@ -33,6 +33,10 @@
private static final String SPLIT_ATTR = "split";
private static final String OPEN_ATTR = "open";
private static final String ACTIVE_ATTR = "active";
+ private static final String TARGET_ATTR = "target";
+ private static final String DISABLED_ATTR = "disabled";
+ private static final String DISABLED_STYLE_ATTR = "disabledStyle";
+ private static final String DISABLED_STYLE_CLASS_ATTR = "disabledStyleClass";
private String _icon;
private String _action;
@@ -41,6 +45,10 @@
private String _split;
private String _open;
private String _active;
+ private String _target;
+ private String _disabled;
+ private String _disabledStyle;
+ private String _disabledStyleClass;
// User Role support
private String _enabledOnUserRole;
@@ -81,6 +89,10 @@
setActionProperty(component, _action);
setActionListenerProperty(component, _actionListener);
setBooleanProperty(component, JSFAttr.IMMEDIATE_ATTR, _immediate);
+ setStringProperty(component,TARGET_ATTR,_target);
+ setBooleanProperty(component,DISABLED_ATTR,_disabled);
+ setStringProperty(component,DISABLED_STYLE_ATTR,_disabledStyle);
+ setStringProperty(component,DISABLED_STYLE_CLASS_ATTR,_disabledStyleClass);
}
public void setAction(String action)
@@ -116,5 +128,25 @@
public void setEnabledOnUserRole(String enabledOnUserRole)
{
_enabledOnUserRole = enabledOnUserRole;
+ }
+
+ public void setTarget(String target)
+ {
+ _target = target;
+ }
+
+ public void setDisabled(String disabled)
+ {
+ _disabled = disabled;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
}
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/NavigationMenuItem.java Fri Feb 10 08:14:39 2006
@@ -36,6 +36,10 @@
boolean _split;
private boolean rendered = true;
private List _navigationMenuItems = null;
+ private String _target;
+ private boolean _disabled;
+ private String _disabledStyle;
+ private String _disabledStyleClass;
public NavigationMenuItem(String label, String action)
{
@@ -80,6 +84,19 @@
this.rendered = rendered;
}
+ public NavigationMenuItem(Object value,
+ String label,
+ String description,
+ boolean disabled,
+ boolean rendered,
+ String action,
+ String icon,
+ boolean split,
+ String target)
+ {
+ this(value, label, description, disabled, rendered, action, icon, split);
+ this.setTarget(target);
+ }
public boolean isRendered()
{
@@ -150,6 +167,46 @@
public void setActionListener(String actionListener)
{
_actionListener = actionListener;
+ }
+
+ public String getTarget()
+ {
+ return _target;
+ }
+
+ public void setTarget(String target)
+ {
+ _target = target;
+ }
+
+ public boolean isDisabled()
+ {
+ return _disabled;
+ }
+
+ public void setDisabled(boolean disabled)
+ {
+ _disabled = disabled;
+ }
+
+ public String getDisabledStyle()
+ {
+ return _disabledStyle;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public String getDisabledStyleClass()
+ {
+ return _disabledStyleClass;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
}
/**
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/UINavigationMenuItem.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/UINavigationMenuItem.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/UINavigationMenuItem.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/UINavigationMenuItem.java Fri Feb 10 08:14:39 2006
@@ -46,6 +46,10 @@
private MethodBinding _action = null;
private MethodBinding _actionListener = null;
private Boolean _immediate = null;
+ private String _target = null;
+ private Boolean _disabled = null;
+ private String _disabledStyle = null;
+ private String _disabledStyleClass = null;
public UINavigationMenuItem()
{
@@ -183,6 +187,55 @@
return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
}
+ public void setTarget(String target)
+ {
+ _target = target;
+ }
+
+ public String getTarget()
+ {
+ if (_target != null) return _target;
+ ValueBinding vb = getValueBinding("target");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabled(boolean disabled)
+ {
+ _disabled = Boolean.valueOf(disabled);
+ }
+
+ public boolean isDisabled()
+ {
+ if (_disabled != null) return _disabled.booleanValue();
+ ValueBinding vb = getValueBinding("disabled");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v != null && v.booleanValue();
+ }
+
+ public String getDisabledStyle()
+ {
+ if (_disabledStyle != null) return _disabledStyle;
+ ValueBinding vb = getValueBinding("disabledStyle");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public String getDisabledStyleClass()
+ {
+ if (_disabledStyleClass != null) return _disabledStyleClass;
+ ValueBinding vb = getValueBinding("disabledStyleClass");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
+ }
+
public boolean isRendered()
{
if (!UserRoleUtils.isVisibleOnUserRole(this)) return false;
@@ -191,7 +244,7 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[10];
+ Object values[] = new Object[14];
values[0] = super.saveState(context);
values[1] = _icon;
values[2] = _split;
@@ -202,6 +255,10 @@
values[7] = _active;
values[8] = saveAttachedState(context, _actionListener);
values[9] = _immediate;
+ values[10] = _target;
+ values[11] = _disabled;
+ values[12] = _disabledStyle;
+ values[13] = _disabledStyleClass;
return ((Object) (values));
}
@@ -218,5 +275,9 @@
_active = (Boolean)values[7];
_actionListener = (MethodBinding)restoreAttachedState(context, values[8]);
_immediate = (Boolean)values[9];
+ _target = (String)values[10];
+ _disabled = (Boolean) values[11];
+ _disabledStyle = (String) values[12];
+ _disabledStyleClass = (String) values[13];
}
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlNavigationMenuRenderer.java Fri Feb 10 08:14:39 2006
@@ -25,10 +25,7 @@
import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
import org.apache.myfaces.renderkit.html.ext.HtmlLinkRenderer;
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIOutput;
-import javax.faces.component.UISelectItems;
-import javax.faces.component.UIViewRoot;
+import javax.faces.component.*;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.event.ActionListener;
@@ -197,7 +194,11 @@
HtmlRendererUtils.writePrettyLineSeparator(facesContext);
writer.startElement(HTML.UL_ELEM, panelNav);
HtmlRendererUtils.renderHTMLAttributes(writer, panelNav, HTML.UL_PASSTHROUGH_ATTRIBUTES);
-
+ //iterate over the tree and set every item open if expandAll
+ if(panelNav.isExpandAll())
+ {
+ expandAll(panelNav);
+ }
HtmlNavigationMenuRendererUtils.renderChildrenListLayout(facesContext, writer, panelNav, panelNav.getChildren(), 0);
HtmlRendererUtils.writePrettyLineSeparator(facesContext);
@@ -297,6 +298,11 @@
newItem.setActive(uiNavMenuItem.isActive());
newItem.setValue(uiNavMenuItem.getValue());
newItem.setTransient(false);
+ newItem.setTarget(uiNavMenuItem.getTarget());
+ newItem.setDisabled(uiNavMenuItem.isDisabled());
+ newItem.setDisabledStyle(uiNavMenuItem.getDisabledStyle());
+ newItem.setDisabledStyleClass(uiNavMenuItem.getDisabledStyleClass());
+
if (uiNavMenuItem.getNavigationMenuItems() != null && uiNavMenuItem.getNavigationMenuItems().length > 0)
{
addUINavigationMenuItems(facesContext, newItem, newItem.getChildren(), 0,
@@ -341,36 +347,103 @@
if (uiNavMenuItem.isOpen()) newItem.toggleOpen();
newItem.setActive(uiNavMenuItem.isActive());
- // Create and add UIOutput
- UIOutput uiOutput = (UIOutput) facesContext.getApplication().createComponent(UIOutput.COMPONENT_TYPE);
- uiOutput.setId(parentId + "_txt" + id);
- uiOutput.getClientId(facesContext); // create clientid
- newItem.getChildren().add(uiOutput);
- uiOutput.setParent(newItem);
- if (uiNavMenuItem.getItemLabel() != null)
- {
- if (HtmlNavigationMenuRendererUtils.isValueReference(uiNavMenuItem.getItemLabel()))
+ if (!copyValueBinding(uiNavMenuItem, newItem, "target"))
+ newItem.setTarget(uiNavMenuItem.getTarget());
+ if (!copyValueBinding(uiNavMenuItem, newItem, "disabled"))
+ newItem.setDisabled(uiNavMenuItem.isDisabled());
+ if (!copyValueBinding(uiNavMenuItem, newItem, "disabledStyle"))
+ newItem.setDisabledStyle(uiNavMenuItem.getDisabledStyle());
+ if (!copyValueBinding(uiNavMenuItem, newItem, "disabledStyleClass"))
+ newItem.setDisabledStyleClass(uiNavMenuItem.getDisabledStyleClass());
+ // If the parent-Element is disabled the child is disabled as well
+ if(parent instanceof HtmlPanelNavigationMenu){
+ if(newItem.getDisabledStyle()==null)
{
- uiOutput.setValueBinding("value",
- facesContext.getApplication().createValueBinding(uiNavMenuItem.getItemLabel()));
+ newItem.setDisabledStyle(
+ ((HtmlPanelNavigationMenu)parent).getDisabledStyle()
+ );
}
- else
+ if(newItem.getDisabledStyleClass()==null)
+ {
+ newItem.setDisabledStyleClass(
+ ((HtmlPanelNavigationMenu)parent).getDisabledStyleClass()
+ );
+ }
+ if(((HtmlPanelNavigationMenu)parent).isDisabled())
{
- uiOutput.setValue(uiNavMenuItem.getItemLabel());
+ newItem.setDisabled(true);
}
}
+ if(parent instanceof HtmlCommandNavigationItem){
+ if(newItem.getDisabledStyle()==null)
+ {
+ newItem.setDisabledStyle(
+ ((HtmlCommandNavigationItem)parent).getDisabledStyle()
+ );
+ }
+ if(newItem.getDisabledStyleClass()==null)
+ {
+ newItem.setDisabledStyleClass(
+ ((HtmlCommandNavigationItem)parent).getDisabledStyleClass()
+ );
+ }
+ if(((HtmlCommandNavigationItem)parent).isDisabled())
+ {
+ newItem.setDisabled(true);
+ }
+ }
+
+ if (uiNavMenuItem.getIcon()!=null)
+ {
+ UIGraphic uiGraphic = (UIGraphic) facesContext.getApplication().createComponent(UIGraphic.COMPONENT_TYPE);
+ uiGraphic.setId(parentId + "_img" + id);
+ uiGraphic.getClientId(facesContext);
+ newItem.getChildren().add(uiGraphic);
+ uiGraphic.setParent(newItem);
+ if (HtmlNavigationMenuRendererUtils.isValueReference(uiNavMenuItem.getIcon()))
+ {
+ uiGraphic.setValueBinding("value",
+ facesContext.getApplication().createValueBinding(uiNavMenuItem.getIcon()));
+ }
+ else
+ {
+ uiGraphic.setValue(uiNavMenuItem.getIcon());
+ }
+ }
+
else
{
- Object value = uiNavMenuItem.getValue();
- if (value != null &&
- HtmlNavigationMenuRendererUtils.isValueReference(value.toString()))
+ // Create and add UIOutput
+ UIOutput uiOutput = (UIOutput) facesContext.getApplication().createComponent(UIOutput.COMPONENT_TYPE);
+ uiOutput.setId(parentId + "_txt" + id);
+ uiOutput.getClientId(facesContext); // create clientid
+ newItem.getChildren().add(uiOutput);
+ uiOutput.setParent(newItem);
+ if (uiNavMenuItem.getItemLabel() != null)
{
- uiOutput.setValueBinding("value",
- facesContext.getApplication().createValueBinding(value.toString()));
+ if (HtmlNavigationMenuRendererUtils.isValueReference(uiNavMenuItem.getItemLabel()))
+ {
+ uiOutput.setValueBinding("value",
+ facesContext.getApplication().createValueBinding(uiNavMenuItem.getItemLabel()));
+ }
+ else
+ {
+ uiOutput.setValue(uiNavMenuItem.getItemLabel());
+ }
}
else
{
- uiOutput.setValue(uiNavMenuItem.getValue());
+ Object value = uiNavMenuItem.getValue();
+ if (value != null &&
+ HtmlNavigationMenuRendererUtils.isValueReference(value.toString()))
+ {
+ uiOutput.setValueBinding("value",
+ facesContext.getApplication().createValueBinding(value.toString()));
+ }
+ else
+ {
+ uiOutput.setValue(uiNavMenuItem.getValue());
+ }
}
}
// process next level
@@ -450,6 +523,23 @@
{
_id--;
}
+ }
+
+ private void expandAll(UIComponent parent)
+ { //Recurse over all Children setOpen if child is HtmlCommandNavigationItem
+ if(parent instanceof HtmlCommandNavigationItem)
+ {
+ HtmlCommandNavigationItem navItem = (HtmlCommandNavigationItem) parent;
+ navItem.setOpen(true);
+ }
+ List children = parent.getChildren();
+ UIComponent child;
+ for (int i = 0; i < children.size(); i++)
+ {
+ child = (UIComponent) children.get(i);
+ expandAll(child);
+ }
+
}
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenu.java Fri Feb 10 08:14:39 2006
@@ -42,6 +42,9 @@
static final String PREVIOUS_VIEW_ROOT = HtmlPanelNavigationMenu.class.getName() + ".PREVIOUS_VIEW_ROOT";
private boolean _itemOpenActiveStatesRestored = false;
+ private Boolean _disabled;
+ private String _disabledStyle;
+ private String _disabledStyleClass;
public void decode(FacesContext context)
{
@@ -113,6 +116,7 @@
private String _separatorStyle = null;
private String _layout = null;
private Boolean _preprocessed = Boolean.FALSE;
+ private Boolean _expandAll;
public HtmlPanelNavigationMenu()
{
@@ -242,9 +246,59 @@
_preprocessed = preprocessed;
}
+ public boolean isExpandAll()
+ {
+ if (_expandAll != null) return _expandAll.booleanValue();
+ ValueBinding vb = getValueBinding("expandAll");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v != null && v.booleanValue();
+ }
+
+ public void setExpandAll(boolean expandAll)
+ {
+ _expandAll = expandAll ? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ public boolean isDisabled()
+ {
+ if (_disabled != null) return _disabled.booleanValue();
+ ValueBinding vb = getValueBinding("disabled");
+ Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
+ return v != null && v.booleanValue();
+ }
+
+ public void setDisabled(boolean disabled)
+ {
+ _disabled = disabled ? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ public String getDisabledStyle()
+ {
+ if (_disabledStyle != null) return _disabledStyle;
+ ValueBinding vb = getValueBinding("disabledStyle");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public String getDisabledStyleClass()
+ {
+ if (_disabledStyleClass != null) return _disabledStyleClass;
+ ValueBinding vb = getValueBinding("disabledStyleClass");
+ return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
+ }
+
public Object saveState(FacesContext context)
{
- Object values[] = new Object[11];
+ Object values[] = new Object[15];
values[0] = super.saveState(context);
values[1] = _itemClass;
values[2] = _openItemClass;
@@ -256,6 +310,10 @@
values[8] = _separatorStyle;
values[9] = _layout;
values[10] = _preprocessed;
+ values[11] = _expandAll;
+ values[12] = _disabled;
+ values[13] = _disabledStyle;
+ values[14] = _disabledStyleClass;
return values;
}
@@ -273,5 +331,9 @@
_separatorStyle = (String)values[8];
_layout = (String)values[9];
_preprocessed = (Boolean)values[10];
+ _expandAll = (Boolean)values[11];
+ _disabled = (Boolean) values[12];
+ _disabledStyle = (String) values[13];
+ _disabledStyleClass = (String) values[14];
}
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenuTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenuTag.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenuTag.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/navmenu/htmlnavmenu/HtmlPanelNavigationMenuTag.java Fri Feb 10 08:14:39 2006
@@ -54,6 +54,10 @@
private String _activeItemStyle;
private String _separatorStyle;
private String _layout;
+ private String _expandAll;
+ private String _disabled;
+ private String _disabledStyle;
+ private String _disabledStyleClass;
// HTML table attributes
private String _align;
@@ -93,6 +97,7 @@
_summary=null;
_width=null;
_layout = null;
+ _expandAll = null;
}
// User Role support --> already handled by HtmlPanelGroupTag
@@ -111,6 +116,10 @@
setStringProperty(component, "activeItemStyle", _activeItemStyle);
setStringProperty(component, "separatorStyle", _separatorStyle);
setStringProperty(component, "layout", _layout);
+ setBooleanProperty(component, "expandAll", _expandAll);
+ setBooleanProperty(component, "disabled", _disabled);
+ setStringProperty(component, "disabledStyle", _disabledStyle);
+ setStringProperty(component, "disabledStyleClass", _disabledStyleClass);
setStringProperty(component, HTML.ALIGN_ATTR, _align);
setStringProperty(component, HTML.BGCOLOR_ATTR, _bgcolor);
@@ -234,5 +243,25 @@
public void setLayout(String layout)
{
_layout = layout;
+ }
+
+ public void setExpandAll(String expandAll)
+ {
+ _expandAll = expandAll;
+ }
+
+ public void setDisabled(String disabled)
+ {
+ _disabled = disabled;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
}
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/ext/HtmlLinkRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/ext/HtmlLinkRenderer.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/ext/HtmlLinkRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/ext/HtmlLinkRenderer.java Fri Feb 10 08:14:39 2006
@@ -16,7 +16,10 @@
package org.apache.myfaces.renderkit.html.ext;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.component.html.ext.HtmlCommandLink;
import org.apache.myfaces.renderkit.html.HtmlLinkRendererBase;
+import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
import org.apache.myfaces.renderkit.JSFAttr;
import javax.faces.component.UIComponent;
@@ -42,19 +45,35 @@
String styleClass) throws IOException
{
//if link is disabled we render the nested components without the anchor
- if (UserRoleUtils.isEnabledOnUserRole(component))
+ if (UserRoleUtils.isEnabledOnUserRole(component) &&
+ !((HtmlCommandLink) component).isDisabled() )
{
super.renderCommandLinkStart(facesContext, component, clientId, value, style, styleClass);
}
else
{
- // render value as required by JSF 1.1 renderkitdocs
+ //For a disabled HtmlCommandLink we want to
+ //render a span-element instead of the Anchor
+
+ //set disabledStyle if available
+ if(((HtmlCommandLink) component).getDisabledStyle() != null)
+ {
+ style = ((HtmlCommandLink) component).getDisabledStyle();
+ }
+
+ if(((HtmlCommandLink) component).getDisabledStyleClass() != null)
+ {
+ styleClass = ((HtmlCommandLink) component).getDisabledStyleClass();
+ }
+
+ renderSpanStart(facesContext, component, clientId, value, style, styleClass);
+ /*// render value as required by JSF 1.1 renderkitdocs
if(value != null)
{
ResponseWriter writer = facesContext.getResponseWriter();
writer.writeText(value.toString(), JSFAttr.VALUE_ATTR);
- }
+ }*/
}
}
@@ -70,10 +89,54 @@
protected void renderLinkEnd(FacesContext facesContext, UIComponent component) throws IOException
{
//if link is disabled we render the nested components without the anchor
- if (UserRoleUtils.isEnabledOnUserRole(component))
+ if (UserRoleUtils.isEnabledOnUserRole(component) &&
+ !((HtmlCommandLink) component).isDisabled() )
{
super.renderLinkEnd(facesContext, component);
}
+ else
+ {
+ renderSpanEnd(facesContext, component);
+ }
}
+ protected void renderSpanStart(FacesContext facesContext,
+ UIComponent component,
+ String clientId,
+ Object value,
+ String style,
+ String styleClass) throws IOException
+ {
+ ResponseWriter writer = facesContext.getResponseWriter();
+
+ String[] spanAttrsToRender;
+
+ writer.startElement(HTML.SPAN_ELEM, component);
+
+ spanAttrsToRender = HTML.COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE;
+
+ HtmlRendererUtils.renderHTMLAttribute(writer, HTML.ID_ATTR, HTML.ID_ATTR, clientId);
+
+ writer.writeAttribute(HTML.ID_ATTR, clientId, null);
+ HtmlRendererUtils.renderHTMLAttributes(writer, component,
+ spanAttrsToRender);
+ HtmlRendererUtils.renderHTMLAttribute(writer, HTML.STYLE_ATTR, HTML.STYLE_ATTR,
+ style);
+ HtmlRendererUtils.renderHTMLAttribute(writer, HTML.STYLE_CLASS_ATTR, HTML.STYLE_CLASS_ATTR,
+ styleClass);
+
+ // render value as required by JSF 1.1 renderkitdocs
+ if(value != null)
+ {
+ writer.writeText(value.toString(), JSFAttr.VALUE_ATTR);
+ }
+ }
+
+ protected void renderSpanEnd(FacesContext facesContext, UIComponent component) throws IOException
+ {
+ ResponseWriter writer = facesContext.getResponseWriter();
+ // force separate end tag
+ writer.writeText("", null);
+ writer.endElement(HTML.SPAN_ELEM);
+ }
}
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/taglib/html/ext/HtmlCommandLinkTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/taglib/html/ext/HtmlCommandLinkTag.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/taglib/html/ext/HtmlCommandLinkTag.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/taglib/html/ext/HtmlCommandLinkTag.java Fri Feb 10 08:14:39 2006
@@ -46,6 +46,9 @@
private String _visibleOnUserRole;
private String _actionFor;
+ private String _disabled;
+ private String _disabledStyle;
+ private String _disabledStyleClass;
public void release() {
super.release();
@@ -61,7 +64,9 @@
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
setStringProperty(component, "actionFor", _actionFor);
-
+ setBooleanProperty(component, "disabled", _disabled);
+ setStringProperty(component, "disabledStyle",_disabledStyle);
+ setStringProperty(component, "disabledStyleClass",_disabledStyleClass);
}
@@ -78,5 +83,20 @@
public void setActionFor(String actionFor)
{
_actionFor = actionFor;
+ }
+
+ public void setDisabled(String disabled)
+ {
+ _disabled = disabled;
+ }
+
+ public void setDisabledStyle(String disabledStyle)
+ {
+ _disabledStyle = disabledStyle;
+ }
+
+ public void setDisabledStyleClass(String disabledStyleClass)
+ {
+ _disabledStyleClass = disabledStyleClass;
}
}
Added: myfaces/tomahawk/trunk/core/src/main/tld/entities/ext_disabled_attribute.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/tld/entities/ext_disabled_attribute.xml?rev=376752&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/tld/entities/ext_disabled_attribute.xml (added)
+++ myfaces/tomahawk/trunk/core/src/main/tld/entities/ext_disabled_attribute.xml Fri Feb 10 08:14:39 2006
@@ -0,0 +1,25 @@
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>When set instead of a Hyperlink
+ a span tag is rendered in the corresponding
+ Component
+ </description>
+ </attribute>
+ <attribute>
+ <name>disabledStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS-Style Attribute to
+ render when disabled is true
+ </description>
+ </attribute>
+ <attribute>
+ <name>disabledStyleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS-Style Class to
+ use when disabled is true
+ </description>
+ </attribute>
\ No newline at end of file
Modified: myfaces/tomahawk/trunk/core/src/main/tld/entities/extended_command_link_attributes.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/tld/entities/extended_command_link_attributes.xml?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/tld/entities/extended_command_link_attributes.xml (original)
+++ myfaces/tomahawk/trunk/core/src/main/tld/entities/extended_command_link_attributes.xml Fri Feb 10 08:14:39 2006
@@ -1,4 +1,5 @@
&standard_command_link_attributes;
&user_role_attributes;
&ext_forceId_attribute;
- &ext_actionfor_attribute;
\ No newline at end of file
+ &ext_actionfor_attribute;
+ &ext_disabled_attribute;
\ No newline at end of file
Modified: myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_navigation_menu_item_attributes.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_navigation_menu_item_attributes.xml?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_navigation_menu_item_attributes.xml (original)
+++ myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_navigation_menu_item_attributes.xml Fri Feb 10 08:14:39 2006
@@ -18,4 +18,13 @@
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
+ <attribute><name>target</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute><name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ &ext_disabled_attribute;
Modified: myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_panel_navigation_2_attributes.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_panel_navigation_2_attributes.xml?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_panel_navigation_2_attributes.xml (original)
+++ myfaces/tomahawk/trunk/core/src/main/tld/tomahawk-entities/tomahawk_panel_navigation_2_attributes.xml Fri Feb 10 08:14:39 2006
@@ -70,3 +70,13 @@
Table or List Layout (default is Table)
</description>
</attribute>
+ <attribute>
+ <name>expandAll</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ If set to true all Items are expanded from the beginning
+ and never closed.
+ </description>
+ </attribute>
+ &ext_disabled_attribute;
\ No newline at end of file
Modified: myfaces/tomahawk/trunk/core/src/main/tld/tomahawk.tld
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/tld/tomahawk.tld?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/tld/tomahawk.tld (original)
+++ myfaces/tomahawk/trunk/core/src/main/tld/tomahawk.tld Fri Feb 10 08:14:39 2006
@@ -24,6 +24,7 @@
<!ENTITY ext_textarea_attribute SYSTEM "entities/ext_textarea_attribute.xml">
<!ENTITY ext_actionfor_attribute SYSTEM "entities/ext_actionfor_attribute.xml">
<!ENTITY ext_escape_attribute SYSTEM "entities/ext_escape_attribute.xml">
+<!ENTITY ext_disabled_attribute SYSTEM "entities/ext_disabled_attribute.xml">
<!ENTITY faces_binding_attribute SYSTEM "entities/faces_binding_attribute.xml">
<!ENTITY faces_id_optional_attribute SYSTEM "entities/faces_id_optional_attribute.xml">
<!ENTITY faces_id_required_attribute SYSTEM "entities/faces_id_required_attribute.xml">
@@ -896,7 +897,7 @@
&ui_panel_attributes;
&html_universal_attributes;
&html_event_handler_attributes;
- &html_table_attributes;
+ &html_table_attributes;
&tomahawk_panel_navigation_2_attributes;
</tag>
Modified: myfaces/tomahawk/trunk/examples/simple/src/main/java/org/apache/myfaces/examples/misc/NavigationMenu.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/examples/simple/src/main/java/org/apache/myfaces/examples/misc/NavigationMenu.java?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/simple/src/main/java/org/apache/myfaces/examples/misc/NavigationMenu.java (original)
+++ myfaces/tomahawk/trunk/examples/simple/src/main/java/org/apache/myfaces/examples/misc/NavigationMenu.java Fri Feb 10 08:14:39 2006
@@ -71,6 +71,7 @@
NavigationMenuItem item = getMenuNaviagtionItem("#{example_messages['panelnav_search_adv']}", "#{navigationMenu.getAction2}");
item.setActive(true);
item.setOpen(true);
+ item.setTarget("_blank");
products.add(item);
// Shop
menu.add(getMenuNaviagtionItem("#{example_messages['panelnav_shop']}", "#{navigationMenu.getAction2}"));
@@ -79,6 +80,8 @@
menu.add(corporateInfo);
corporateInfo.add(getMenuNaviagtionItem("#{example_messages['panelnav_news']}", "#{navigationMenu.getAction2}"));
item = getMenuNaviagtionItem("#{example_messages['panelnav_investor']}", "#{navigationMenu.getAction3}");
+ //item.setIcon("images/arrow-first.gif");
+ item.setDisabled(true);
corporateInfo.add(item);
// Contact
menu.add(getMenuNaviagtionItem("#{example_messages['panelnav_contact']}", "#{navigationMenu.getAction2}"));
@@ -128,4 +131,8 @@
return "go_home";
}
+ public boolean getDisabled()
+ {
+ return true;
+ }
}
Modified: myfaces/tomahawk/trunk/examples/simple/src/main/webapp/panelnavigation_2.jsp
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/examples/simple/src/main/webapp/panelnavigation_2.jsp?rev=376752&r1=376751&r2=376752&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/simple/src/main/webapp/panelnavigation_2.jsp (original)
+++ myfaces/tomahawk/trunk/examples/simple/src/main/webapp/panelnavigation_2.jsp Fri Feb 10 08:14:39 2006
@@ -33,7 +33,8 @@
<t:div id="subnavigation_outer">
<t:div id="subnavigation">
- <t:panelNavigation2 id="nav1" layout="list" itemClass="mypage" activeItemClass="selected" openItemClass="selected" >
+ <t:panelNavigation2 id="nav1" layout="list" itemClass="mypage" activeItemClass="selected"
+ openItemClass="selected" expandAll="true" disabledStyle="color:red;padding: 2px 20px 2px 25px">
<t:navigationMenuItems id="navitems" value="#{navigationMenu.panelNavigationItems}" />
</t:panelNavigation2>
</t:div>