|
Oracle Fusion Middleware Java API Reference for Oracle ADF Faces 11g Release 2 (11.1.2.1.0) E17488-02 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
javax.faces.component.UIComponent
org.apache.myfaces.trinidad.component.UIXComponent
org.apache.myfaces.trinidad.component.UIXComponentBase
org.apache.myfaces.trinidad.component.UIXPanel
oracle.adf.view.rich.component.UIXMenuBar
oracle.adf.view.rich.component.rich.RichMenuBar
public class RichMenuBar
A menuBar is a single row container designed to hold menus, commandMenuItems, goMenuItems, and groups of these same components. MenuBars are not rendered on printable pages.
The MenuModel implementation is also supported, namely org.apache.myfaces.trinidad.model.XmlMenuModel. Notice that the MenuModel has no special knowledge of page navigation and places no requirements on the nodes that go into the tree. The nodes in the tree are stamped out using the 'nodeStamp' facet, which should contain a commandNavigationItem component. This allows the default actionListener mechanism to be used for page navigation.
Note: The attributes 'var', 'value' and 'varStatus' are applicable only when attaching the menuBar to a menu model. Please also note that within a single menuBar component there could be either a menu model attached or explicitly defined children (viz. menus, commandMenuItems, goMenuItems, and groups of these same components).
<section name="Allowed_Children">
A menuBar is designed to only hold menus, commandMenuItems, goMenuItems, and groups of these same components, as well as simple decorative (non focusable) components like image and spacer. A menuBar can also dynamically add children of these allowed types using a facetRef, iterator, or switcher. The support for commandNavigationItems as children is only provided when menu model is used.
Besides the components listed, other types of children are not allowed. This is because the menuBar provides special menu functionality, like open menu mode, menu type access key behavior, and arrow key support that will not function correctly if other components are included on the menuBar. If you would like to include a non-menu-type component next to a menuBar, you can do this instead by placing the item in an adjacent toolbar next to the menuBar in the same toolbox row group.
Note: In the case of a menuBar attached to a menu model only commandNavigationItems can be contained inside the "nodeStamp" facet. This is due to the reason that almost every groupNode and itemNode attribute (of a menu model) corresponds to an equivalent attribute of the commandNavigationItem.
Please also note that you should not nest toolbars, menuBars, or other container-type components inside a menuBar. This is incompatible with overflow and is not supported. If you would like to display multiple menuBars or toolbars in a single row, you should instead use a toolbox group.
</section> <section name="Special_Menu_Functionality">
MenuBars provide special menu functionality, including open menu mode, menu type access key behavior, and arrow key support.
When you open a menu from the menuBar using the mouse, the menuBar is then in open menu mode. If you then move the mouse over another menu on the menuBar, the old menu automatically closes and the newly highlighted menu opens.
With menu type access key behavior, once your keyboard focus is in a menuBar or menu, you can simply press the access key without modifiers to move the focus to the menu item in that menu or menubar with that access key.
Arrow keys provide convenient keyboard focus movement between items in a menuBar and its child menus. Pressing left and right arrow keys cycles through the menuBar items. Pressing the down arrow opens a menu and moves keyboard focus to the first item. You can then press the up and down arrow keys to cycle through the menu items. Pressing left or right arrow keys inside a menu normally close that menu and move focus to the previous or next menu item on the menBar. The exception to this is pressing the right arrow key while on a submenu item, which will open that submenu instead and place focus on its first item.
Note: The above special functionality does not work for menuBar attached to a menu model. The menu model implementation has 'hover to open and click to navigate" behavior. On hovering over any nested itemNode the popup opens up and navigation happens on a click. If a nested item has keyboard focus, it just highlights. The popup opens only when down arrow(for top bar items) or right arrow(for inner menu items) is pressed and navigation happens on pressing enter key. The arrow key support is very much similar to what is mentioned above except that we have commandNavigationItems instead of menus and menuItems.
</section> <section name="Grouping_Items_in_a_MenuBar">
If you use an <af:group>
to group items inside a menuBar, the menuBar will include separators around the group. You should also note that the group has an effect on certain items. For example, commandMenuItems with type of radio that are grouped together are automatically considered part of the same radio group. This is not supported for menuBar attached to a menu model.
</section> <section name="MenuBar_Layout">
MenuBars were designed to be used inside an <af:toolbox>
. A toolbox allows highly customizable display of menuBars, by utilizing their flex values and allowing multiple menuBars and toolbars per row.
You may use a menuBar outside of a toolbox, though doing so will cause the menuBar to lose the geometry management functionality that the toolbox provides. Without a toolbox, you cannot have multiple menuBars per row or benefit from flex values.
Because menuBars and toolboxes are overflow components, they do not have a set width size. A menuBar or toolbox should be placed in a section of the page where it can horizontally stretch to the available size for proper rendering. Putting a menuBar or toolbox inside a section of the page where it is horizontally constrained to a minimum size (like a panelStretchLayout end facet) will be error-prone, due to the fact that the width of the menuBar varies with its current overflow state.
</section> <section name="Right_Justifying_Menubar_Items">
By default menuBars are left (start side) justified. In order to make some or all of the menuBar items right (end side) justified, you can use the stretchId attibute. StretchId is usually set to the id of an af:spacer on the menuBar that you want to stretch to take up any available extra horizontal space. The component that you specify must be present on the client. Therefore, if using a component that may not be present on the client (like af:spacer), you should set the child component's clientComponent attribute to 'true'.
Note that stretchId is not applicable for menu model implementations of menuBar.
</section> <section name="Assigning_Percent_Width_to_a_MenuBar_in_a_Row">
<af:toolbox> <af:menuBar flex="1" stretchid="stretch1"> <af:menu text="Edit"> <af:commandMenuItem text="menu item"/> </af:menu> <!-- Insert a stretched spacer to push help menu to the right --> <af:spacer id="stretch1" clientComponent="true"/> <af:menu text="Help"> <af:commandMenuItem text="menu item"/> </af:menu> </af:menuBar> </af:toolbox>
</section> <section name="Assigning_Percent_Values_to_Items_in_a_Row">
When used inside a toolbox row, you can use a flex value on a menuBar to control what percentage of the available horizontal space that menuBar should receive. For example, if your toolbox row has 1 menuBar and 2 toolbars, each with a flex value of "1", then they receive their flex value (1) of the total space available (3). This means that the menuBar (and each toolbar) would be given one third of the available horizontal space.
</section> <section name="Updating_through_PartialTriggers">
Note that if a menuBar child component is going to be updated through partial page rendering, you need to update the menuBar as well. You do this by adding the child components id to the menuBar's partialTriggers attribute. This way the menuBar can appropriately manage its children in respect to sizing and placement in overflow.
</section> <section name="Geometry_Management"> <html:ul> <html:li>This component can be stretched by a parent layout component that stretches its children, e.g. panelStretchLayout, panelSplitter.</html:li> <html:li>This component most commonly accepts menus, commandMenuItems, and goMenuItems as children. Other visual children include spacers and images. Children are not by default stretched. This component also has a stretchId attribute. When this attribute is set to the id of one of its children, that child is stretched.</html:li> </html:ul> </section> <section name="Overflow"> <html:p>MenuBar is an overflow component. When a menuBar does not have enough space to display all items, the children are put into overflow and an overflow button is displayed. When a menuBar in a toolbox row has a flex value, the flex value is strictly followed, even in regards to overflow. When menuBars (or toolbars) in a toolbox row do not have flex values, then the right most (end side) menuBar would be forced into overflow before left side menuBars. Spacer and image children on menuBars are not put into overflow.</html:p> <html:p>Overflow components must be part of a supported layout in order to work properly on the page.</html:p> <html:p>An overflow component requires that it is either:</html:p> <html:ul> <html:li>in a container that stretches its children, or</html:li> <html:li>in a container that has a set width.</html:li> </html:ul> <html:p>Under these circumstances, when the overflow component is larger than the parent container, the overflow component will display an overflow button. Selecting the overflow button will show a popup containing the items that didn't fit on the page.</html:p> <html:p>Setting up an overflow component with the following layouts is not supported. If you use one of these layouts, you may have unexpected and inconsistent results:</html:p> <html:ul> <html:li>in a container that does not stretch its children.</html:li> <html:li>in a container that displays multiple children horizontally without explicit sizes for each child. For example, a panelGroupLayout with layout='horizontal' would be invalid, but panelSplitter is OK because it has an explicitly set splitter position.</html:li> <html:li>setting the overflow component with a styleClass or inlineStyle that assigns a percentage width value. Note that this includes assigning styleClass='AFStretchWidth' on an overflow component.</html:li> </html:ul> </section>
Type | Phases | Description |
---|---|---|
org.apache.myfaces.trinidad.event.AttributeChangeEvent |
Invoke Application Apply Request Values |
Event delivered to describe an attribute change. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change event might include the width of a column that supported client-side resizing. |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class oracle.adf.view.rich.component.UIXMenuBar |
---|
UIXMenuBar.MenuNavigationHierarchy |
Field Summary | |
---|---|
static org.apache.myfaces.trinidad.bean.PropertyKey |
CLIENT_ATTRIBUTES_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
CLIENT_COMPONENT_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
CLIENT_LISTENERS_KEY |
static java.lang.String |
COMPONENT_FAMILY |
static java.lang.String |
COMPONENT_TYPE |
static org.apache.myfaces.trinidad.bean.PropertyKey |
CUSTOMIZATION_ID_KEY Deprecated. |
static org.apache.myfaces.trinidad.bean.PropertyKey |
DISABLED_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
FLEX_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
INLINE_STYLE_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
PARTIAL_TRIGGERS_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
SHORT_DESC_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
STRETCH_ID_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
STYLE_CLASS_KEY |
static org.apache.myfaces.trinidad.bean.FacesBean.Type |
TYPE |
static org.apache.myfaces.trinidad.bean.PropertyKey |
UNSECURE_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
VISIBLE_KEY |
Fields inherited from class oracle.adf.view.rich.component.UIXMenuBar |
---|
NODE_STAMP_FACET, VALUE_KEY, VAR_KEY, VAR_STATUS_KEY |
Fields inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase |
---|
BINDING_KEY, ID_KEY, RENDERED_KEY, RENDERER_TYPE_KEY, TRANSIENT_KEY |
Fields inherited from class javax.faces.component.UIComponent |
---|
BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, VIEW_LOCATION_KEY |
Constructor Summary | |
---|---|
|
RichMenuBar() Construct an instance of the RichMenuBar. |
protected |
RichMenuBar(java.lang.String rendererType) Construct an instance of the RichMenuBar. |
Method Summary | |
---|---|
void |
addClientBehavior(java.lang.String eventName, javax.faces.component.behavior.ClientBehavior behavior) |
protected org.apache.myfaces.trinidad.bean.FacesBean.Type |
getBeanType() |
java.util.Set |
getClientAttributes() Gets a set of client attribute names. |
java.util.Map<java.lang.String,java.util.List<javax.faces.component.behavior.ClientBehavior>> |
getClientBehaviors() |
ClientListenerSet |
getClientListeners() Gets a set of client listeners. |
java.lang.String |
getCustomizationId() Deprecated. This attribute is deprecated. This attribute will be removed in the next release. Use the 'id' attribute instead. |
java.lang.String |
getDefaultEventName() |
java.util.Collection<java.lang.String> |
getEventNames() |
java.lang.String |
getFamily() |
int |
getFlex() Gets a non-negative integer that indicates the flexibility of this component in its containing toolbox. |
java.lang.String |
getInlineStyle() Gets the CSS styles to use for this component. |
java.lang.String[] |
getPartialTriggers() Gets the IDs of the components that should trigger a partial update. |
java.lang.String |
getShortDesc() Gets the short description of the component. |
java.lang.String |
getStretchId() Gets the id of a child component that will be given all of the available space left in the menuBar if the contents of the menuBar do not use all of the space that the menuBar has available. |
java.lang.String |
getStyleClass() Gets a CSS style class to use for this component. |
java.util.Set<java.lang.String> |
getUnsecure() Gets A whitespace separated list of attributes whose values ordinarily can be set only on the server, but need to be settable on the client. |
boolean |
isClientComponent() Gets whether a client-side component will be generated. |
boolean |
isDisabled() Gets whether the menu bar should be disabled. |
boolean |
isVisible() Gets the visibility of the component. |
void |
setClientAttributes(java.util.Set clientAttributes) Sets a set of client attribute names. |
void |
setClientComponent(boolean clientComponent) Sets whether a client-side component will be generated. |
void |
setClientListeners(ClientListenerSet clientListeners) Sets a set of client listeners. |
void |
setCustomizationId(java.lang.String customizationId) Deprecated. This attribute is deprecated. This attribute will be removed in the next release. Use the 'id' attribute instead. |
void |
setDisabled(boolean disabled) Sets whether the menu bar should be disabled. |
void |
setFlex(int flex) Sets a non-negative integer that indicates the flexibility of this component in its containing toolbox. |
void |
setInlineStyle(java.lang.String inlineStyle) Sets the CSS styles to use for this component. |
void |
setPartialTriggers(java.lang.String[] partialTriggers) Sets the IDs of the components that should trigger a partial update. |
void |
setShortDesc(java.lang.String shortDesc) Sets the short description of the component. |
void |
setStretchId(java.lang.String stretchId) Sets the id of a child component that will be given all of the available space left in the menuBar if the contents of the menuBar do not use all of the space that the menuBar has available. |
void |
setStyleClass(java.lang.String styleClass) Sets a CSS style class to use for this component. |
void |
setUnsecure(java.util.Set<java.lang.String> unsecure) Sets A whitespace separated list of attributes whose values ordinarily can be set only on the server, but need to be settable on the client. |
void |
setVisible(boolean visible) Sets the visibility of the component. |
Methods inherited from class oracle.adf.view.rich.component.UIXMenuBar |
---|
broadcast, decodeChildrenImpl, getCollectionObject, getNodeStamp, getValue, getVar, getVarStatus, queueEvent, setNodeStamp, setValue, setVar, setVarStatus |
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase |
---|
adaptMethodBinding, addAttributeChange, addAttributeChangeListener, addFacesListener, broadcastToMethodBinding, broadcastToMethodExpression, clearInitialState, createFacesBean, decode, decodeChildren, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributeChangeListener, getAttributeChangeListeners, getAttributes, getBooleanProperty, getChildCount, getChildren, getClientId, getContainerClientId, getFacesBean, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacetNames, getFacets, getFacetsAndChildren, getId, getIntProperty, getLifecycleRenderer, getListenersForEventClass, getParent, getProperty, getPropertyKey, getRenderedFacetsAndChildren, getRenderer, getRendererType, getRendersChildren, getValueBinding, getValueExpression, initialStateMarked, invokeOnChildrenComponents, invokeOnComponent, invokeOnNamingContainerComponent, isRendered, isTransient, markInitialState, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, removeAttributeChangeListener, removeFacesListener, restoreState, satisfiesPartialTrigger, saveState, setAttributeChangeListener, setAttributeChangeListener, setBooleanProperty, setId, setIntProperty, setParent, setProperty, setRendered, setRendererType, setTransient, setValueBinding, setValueExpression, subscribeToEvent, toString, unsubscribeFromEvent, updateChildren, updateChildrenImpl, validateChildren, validateChildrenImpl |
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponent |
---|
addPartialTarget, clearCachedClientIds, clearCachedClientIds, encodeFlattenedChild, encodeFlattenedChildren, getLogicalParent, getLogicalParent, getStateHelper, getStateHelper, isVisitable, partialEncodeVisit, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, setPartialTarget, setupChildrenEncodingContext, setupChildrenVisitingContext, setupEncodingContext, setUpEncodingContext, setupVisitingContext, tearDownChildrenEncodingContext, tearDownChildrenVisitingContext, tearDownEncodingContext, tearDownVisitingContext, visitAllChildren, visitChildren, visitChildren, visitTree, visitTree |
Methods inherited from class javax.faces.component.UIComponent |
---|
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getResourceBundleMap, isCompositeComponent, isInView, popComponentFromEL, processEvent, pushComponentToEL, setInView |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final org.apache.myfaces.trinidad.bean.FacesBean.Type TYPE
public static final org.apache.myfaces.trinidad.bean.PropertyKey INLINE_STYLE_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey STYLE_CLASS_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey SHORT_DESC_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey UNSECURE_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey VISIBLE_KEY
@Deprecated
public static final org.apache.myfaces.trinidad.bean.PropertyKey CUSTOMIZATION_ID_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey CLIENT_COMPONENT_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey CLIENT_ATTRIBUTES_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey PARTIAL_TRIGGERS_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey CLIENT_LISTENERS_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey FLEX_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey STRETCH_ID_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey DISABLED_KEY
public static final java.lang.String COMPONENT_FAMILY
public static final java.lang.String COMPONENT_TYPE
Constructor Detail |
---|
public RichMenuBar()
protected RichMenuBar(java.lang.String rendererType)
Method Detail |
---|
public final java.lang.String getInlineStyle()
public final void setInlineStyle(java.lang.String inlineStyle)
inlineStyle
- the new inlineStyle valuepublic final java.lang.String getStyleClass()
public final void setStyleClass(java.lang.String styleClass)
styleClass
- the new styleClass valuepublic final java.lang.String getShortDesc()
public final void setShortDesc(java.lang.String shortDesc)
shortDesc
- the new shortDesc valuepublic final java.util.Set<java.lang.String> getUnsecure()
public final void setUnsecure(java.util.Set<java.lang.String> unsecure)
unsecure
- the new unsecure valuepublic final boolean isVisible()
public final void setVisible(boolean visible)
visible
- the new visible value
@Deprecated
public final java.lang.String getCustomizationId()
@Deprecated
public final void setCustomizationId(java.lang.String customizationId)
customizationId
- the new customizationId valuepublic final boolean isClientComponent()
public final void setClientComponent(boolean clientComponent)
clientComponent
- the new clientComponent valuepublic final java.util.Set getClientAttributes()
public final void setClientAttributes(java.util.Set clientAttributes)
clientAttributes
- the new clientAttributes valuepublic final java.lang.String[] getPartialTriggers()
public final void setPartialTriggers(java.lang.String[] partialTriggers)
partialTriggers
- the new partialTriggers valuepublic final ClientListenerSet getClientListeners()
public final void setClientListeners(ClientListenerSet clientListeners)
clientListeners
- the new clientListeners valuepublic final int getFlex()
public final void setFlex(int flex)
flex
- the new flex valuepublic final java.lang.String getStretchId()
public final void setStretchId(java.lang.String stretchId)
stretchId
- the new stretchId valuepublic final boolean isDisabled()
public final void setDisabled(boolean disabled)
disabled
- the new disabled valuepublic java.lang.String getDefaultEventName()
getDefaultEventName
in interface javax.faces.component.behavior.ClientBehaviorHolder
getDefaultEventName
in class org.apache.myfaces.trinidad.component.UIXComponentBase
public java.util.Collection<java.lang.String> getEventNames()
getEventNames
in interface javax.faces.component.behavior.ClientBehaviorHolder
public java.util.Map<java.lang.String,java.util.List<javax.faces.component.behavior.ClientBehavior>> getClientBehaviors()
getClientBehaviors
in interface javax.faces.component.behavior.ClientBehaviorHolder
getClientBehaviors
in class org.apache.myfaces.trinidad.component.UIXComponentBase
public void addClientBehavior(java.lang.String eventName, javax.faces.component.behavior.ClientBehavior behavior)
addClientBehavior
in interface javax.faces.component.behavior.ClientBehaviorHolder
addClientBehavior
in class org.apache.myfaces.trinidad.component.UIXComponentBase
public java.lang.String getFamily()
getFamily
in class UIXMenuBar
protected org.apache.myfaces.trinidad.bean.FacesBean.Type getBeanType()
getBeanType
in class UIXMenuBar
|
Oracle Fusion Middleware Java API Reference for Oracle ADF Faces 11g Release 2 (11.1.2.1.0) E17488-02 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |