public class Menuitem extends LabelImageElement implements Disable
Menupopup
element.
It acts much like a button but it is rendered on a menu.
Default getZclass()
: z-menuitem. (since 3.5.0)
LabelImageElement.ExtraCtrl
AbstractComponent.Children
_zclass
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
Constructor and Description |
---|
Menuitem() |
Menuitem(java.lang.String label) |
Menuitem(java.lang.String label,
java.lang.String src) |
Modifier and Type | Method and Description |
---|---|
void |
beforeParentChanged(Component parent)
Default: does nothing.
|
java.lang.Object |
clone()
Clones the component.
|
java.lang.String |
getAutodisable()
Returns a list of component IDs that shall be disabled when the user
clicks this menuitem.
|
java.lang.String |
getHref()
Returns the href.
|
java.lang.String |
getTarget()
Returns the target frame or window.
|
java.lang.String |
getUpload()
Returns non-null if this button is used for file upload, or null otherwise.
|
java.lang.String |
getValue()
Returns the value.
|
java.lang.String |
getZclass()
Returns the ZK Cascading Style class(es) for this component.
|
boolean |
isAutocheck()
Returns whether the menuitem check mark will update each time
the menu item is selected.
|
boolean |
isChecked()
Returns whether it is checked.
|
boolean |
isCheckmark()
Returns whether the check mark shall be displayed in front
of each item.
|
protected boolean |
isChildable()
Not childable.
|
boolean |
isDisabled()
Returns whether it is disabled.
|
boolean |
isTopmost()
Returns whether this is an top-level menu, i.e., not owning
by another
Menupopup . |
protected void |
renderCrawlable(java.lang.String label)
Renders the crawlable information.
|
protected void |
renderProperties(ContentRenderer renderer)
Renders the content of this component, excluding the enclosing
tags and children.
|
void |
service(AuRequest request,
boolean everError)
Processes an AU request.
|
void |
setAutocheck(boolean autocheck)
Sets whether the menuitem check mark will update each time
the menu item is selected.
|
void |
setAutodisable(java.lang.String autodisable)
Sets a list of component IDs that shall be disabled when the user
clicks this menuitem.
|
void |
setChecked(boolean checked)
Sets whether it is checked.
|
void |
setCheckmark(boolean checkmark)
Sets whether the check mark shall be displayed in front
of each item.
|
void |
setDisabled(boolean disabled)
Sets whether it is disabled.
|
void |
setHref(java.lang.String href)
Sets the href.
|
void |
setTarget(java.lang.String target)
Sets the target frame or window.
|
void |
setUpload(java.lang.String upload)
Sets the JavaScript class at the client to handle the upload if this
button is used for file upload.
|
void |
setValue(java.lang.String value)
Sets the value.
|
protected void |
updateByClient(java.lang.String name,
java.lang.Object value)
Called when the widget running at the client asks the server
to update a value.
|
getExtraCtrl, getHoverImage, getHoverImageContent, getIconSclass, getImage, getImageContent, getPropertyAccess, getSrc, isImageAssigned, setHoverImage, setHoverImageContent, setHoverImageContent, setIconSclass, setImage, setImageContent, setImageContent, setSrc
getLabel, setLabel
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
focus, getAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, setAction, setClass, setDraggable, setDroppable, setFocus, setHeight, setHeightDirectly, setHflex, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTooltiptext, setTop, setTopDirectly, setVflex, setWidth, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
addAnnotation, addAnnotation, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, enableBindingAnnotation, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowRoots, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, insertBefore, invalidate, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
public Menuitem()
public Menuitem(java.lang.String label)
public Menuitem(java.lang.String label, java.lang.String src)
public boolean isCheckmark()
Default: false.
public void setCheckmark(boolean checkmark)
Note the checkbox can be checked only if isAutocheck()
is true
public java.lang.String getZclass()
HtmlBasedComponent
AbstractComponent.getMold()
).
Default: null (the default value depends on element).
HtmlBasedComponent.setZclass(java.lang.String)
) will completely replace the default style
of a component. In other words, the default style of a component
is associated with the default value of HtmlBasedComponent.getZclass()
.
Once it is changed, the default style won't be applied at all.
If you want to perform small adjustments, use HtmlBasedComponent.setSclass(java.lang.String)
instead.
getZclass
in class HtmlBasedComponent
HtmlBasedComponent.getSclass()
public void setDisabled(boolean disabled)
setDisabled
in interface Disable
public boolean isDisabled()
Default: false.
isDisabled
in interface Disable
public java.lang.String getAutodisable()
public void setAutodisable(java.lang.String autodisable)
To represent the menuitem itself, the developer can specify self
.
For example, <menuitem id="ok" autodisable="self,cancel"/>
is the same as <menuitem id="ok" autodisable="ok,cancel"/>
that will disable
both the ok and cancel menuitem when an user clicks it.
The menuitem being disabled will be enabled automatically once the client receives a response from the server. In other words, the server doesn't notice if a menuitem is disabled with this method.
However, if you prefer to enable them later manually, you can
prefix with '+'. For example,
<menuitem id="ok" autodisable="+self,+cancel"/>
Then, you have to enable them manually such as
if (something_happened){
ok.setDisabled(false);
cancel.setDisabled(false);
Default: null.
public java.lang.String getValue()
Default: "".
public void setValue(java.lang.String value)
public boolean isChecked()
Default: false.
public void setChecked(boolean checked)
This only applies when isCheckmark()
= true. (since 3.5.0)
public boolean isAutocheck()
Default: false.
public void setAutocheck(boolean autocheck)
This only applies when isCheckmark()
= true. (since 3.5.0)
public java.lang.String getHref()
Default: null. If null, the button has no function unless you specify the onClick handler.
public void setHref(java.lang.String href) throws WrongValueException
WrongValueException
public java.lang.String getTarget()
Note: it is useful only if href (setHref(java.lang.String)
) is specified
(i.e., use the onClick listener).
Default: null.
public void setTarget(java.lang.String target)
target
- the name of the frame or window to hyperlink.public boolean isTopmost()
Menupopup
.public java.lang.String getUpload()
setUpload(java.lang.String)
for more details.public void setUpload(java.lang.String upload)
Default: null.
For example, the following example declares a button for file upload:
<button label="Upload" upload="true"
onUpload="handle(event.media)"/>
As shown above, after the file is uploaded, an instance of
UploadEvent
is sent this component.
If you want to customize the handling of the file upload at
the client, you can specify a JavaScript class when calling
this method:
<button upload="foo.Upload"/>
Another options for the upload can be specified as follows:
<button label="Upload" upload="true,maxsize=-1,native"
upload
- a JavaScript class to handle the file upload
at the client, or "true" if the default class is used,
or null or "false" to disable the file download (and then
this button behaves like a normal button).public void beforeParentChanged(Component parent)
AbstractComponent
beforeParentChanged
in interface ComponentCtrl
beforeParentChanged
in class AbstractComponent
parent
- the new parent. If null, it means detachment.ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)
public java.lang.Object clone()
Component
clone
in interface Component
clone
in class LabelImageElement
protected boolean isChildable()
isChildable
in class AbstractComponent
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
HtmlBasedComponent
renderProperties
in class LabelImageElement
java.io.IOException
protected void renderCrawlable(java.lang.String label) throws java.io.IOException
LabelElement
LabelElement.renderProperties(org.zkoss.zk.ui.sys.ContentRenderer)
,
and designed to be overridden if the deriving class wants to generate
it differently.
Default: org.zkoss.zul.impl.Utils.renderCrawlableText(label)
renderCrawlable
in class LabelElement
java.io.IOException
public void service(AuRequest request, boolean everError)
Default: in addition to what are handled by HtmlBasedComponent.service(org.zkoss.zk.au.AuRequest, boolean)
,
it also handles onCheck.
service
in interface ComponentCtrl
service
in class HtmlBasedComponent
everError
- whether any error ever occurred before
processing this request.AbstractComponent.setAuService(org.zkoss.zk.au.AuService)
protected void updateByClient(java.lang.String name, java.lang.Object value)
AbstractComponent
setAttr
(by invoking zk.Widget's smartUpdate at client).
By default, it does nothing but log a warning message, since it is not safe to allow the client to update a field arbitrary.
However, if you'd like to allow the update for a particular component you could do one of the following
protected void updateByClient(String name, Object value) {
if ("disabled".equals(name))
setDisabled(name, ((Boolean)value).booleanValue());
else
super.updateByClient(name, value);
org.zkoss.zk.ui.updateByClient
to be true.
Then, this method will use reflection to find out the setter to update
the value. Nothing happens if the method is not found.Notice: this method will invoke AbstractComponent.disableClientUpdate(boolean)
to
disable any update to the client, when calling the setter.
If you want to enable the client update for all instances of a given component (though not recommended for the security reason), you could refer to here.
See also zk.Widget.smartUpdate().
updateByClient
in class AbstractComponent
Copyright © 2005-2011 Potix Corporation. All Rights Reserved.