Class Menuitem
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Component
,Disable
,Scope
,Uploadable
,ComponentCtrl
public class Menuitem extends LabelImageElement implements Disable, Uploadable
A single choice in aMenupopup
element. It acts much like a button but it is rendered on a menu.Default
getZclass()
: z-menuitem. (since 3.5.0)- Author:
- tomyeh
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.zkoss.zul.impl.LabelImageElement
LabelImageElement.ExtraCtrl
-
Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent
AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo
-
Nested classes/interfaces inherited from interface org.zkoss.zk.ui.ext.Uploadable
Uploadable.Error
-
-
Field Summary
-
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_zclass
-
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
-
Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl
AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beforeParentChanged(Component parent)
Default: If parent is null, execute the @Destroy method if any.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 component 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 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 anotherMenupopup
.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 component 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.-
Methods inherited from class org.zkoss.zul.impl.LabelImageElement
getExtraCtrl, getHoverImage, getHoverImageContent, getIconSclass, getIconSclasses, getIconTooltip, getIconTooltips, getImage, getImageContent, getPropertyAccess, isImageAssigned, setHoverImage, setHoverImageContent, setHoverImageContent, setIconSclass, setIconSclasses, setIconTooltip, setIconTooltips, setImage, setImageContent, setImageContent
-
Methods inherited from class org.zkoss.zul.impl.LabelElement
getLabel, setLabel
-
Methods inherited from class org.zkoss.zul.impl.XulElement
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes
-
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
-
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, 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, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
-
-
-
-
Method Detail
-
isCheckmark
public boolean isCheckmark()
Returns whether the check mark shall be displayed in front of each item.Default: false.
- Since:
- 3.5.0
-
setCheckmark
public void setCheckmark(boolean checkmark)
Sets whether the check mark shall be displayed in front of each item.Note the checkbox can be checked only if
isAutocheck()
is true- Since:
- 3.5.0
-
getZclass
public java.lang.String getZclass()
Description copied from class:HtmlBasedComponent
Returns the ZK Cascading Style class for this component. It usually depends on the implementation of the mold (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 ofHtmlBasedComponent.getZclass()
. Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, useHtmlBasedComponent.setSclass(java.lang.String)
instead.- Overrides:
getZclass
in classHtmlBasedComponent
- See Also:
HtmlBasedComponent.getSclass()
-
setDisabled
public void setDisabled(boolean disabled)
Sets whether it is disabled.- Specified by:
setDisabled
in interfaceDisable
- Since:
- 3.0.1
-
isDisabled
public boolean isDisabled()
Returns whether it is disabled.Default: false.
- Specified by:
isDisabled
in interfaceDisable
- Since:
- 3.0.1
-
getAutodisable
public java.lang.String getAutodisable()
Returns a list of component IDs that shall be disabled when the user clicks this menuitem.- Since:
- 5.0.7
-
setAutodisable
public void setAutodisable(java.lang.String autodisable)
Sets a list of component IDs that shall be disabled when the user clicks this menuitem.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.
- Since:
- 5.0.7
-
getValue
public java.lang.String getValue()
Returns the value.Default: "".
-
setValue
public void setValue(java.lang.String value)
Sets the value.
-
isChecked
public boolean isChecked()
Returns whether it is checked.Default: false.
-
setChecked
public void setChecked(boolean checked)
Sets whether it is checked.This only applies when
isCheckmark()
= true. (since 3.5.0)
-
isAutocheck
public boolean isAutocheck()
Returns whether the menuitem check mark will update each time the menu item is selected.Default: false.
-
setAutocheck
public void setAutocheck(boolean autocheck)
Sets whether the menuitem check mark will update each time the menu item is selected.This only applies when
isCheckmark()
= true. (since 3.5.0)
-
getHref
public java.lang.String getHref()
Returns the href.Default: null. If null, the button has no function unless you specify the onClick handler.
-
setHref
public void setHref(java.lang.String href) throws WrongValueException
Sets the href.- Throws:
WrongValueException
-
getTarget
public java.lang.String getTarget()
Returns the target frame or window.Note: it is useful only if href (
setHref(java.lang.String)
) is specified (i.e., use the onClick listener).Default: null.
-
setTarget
public void setTarget(java.lang.String target)
Sets the target frame or window.- Parameters:
target
- the name of the frame or window to hyperlink.
-
isTopmost
public boolean isTopmost()
Returns whether this is an top-level menu, i.e., not owning by anotherMenupopup
.
-
getUpload
public java.lang.String getUpload()
Description copied from interface:Uploadable
Returns non-null if this component is used for file upload, or null otherwise. Refer toUploadable.setUpload(java.lang.String)
for more details.- Specified by:
getUpload
in interfaceUploadable
-
setUpload
public void setUpload(java.lang.String upload)
Description copied from interface:Uploadable
Sets the JavaScript class at the client to handle the upload if this component is used for file 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,multiple=true,accept=audio/*|video/*|image/*,native"
- maxsize: the maximal allowed upload size of the component, in kilobytes, or
a negative value if no limit, if the maxsize is not specified, it will use
Configuration.getMaxUploadSize()
- native: treating the uploaded file(s) as binary, i.e., not to convert it to image, audio or text files.
- multiple: treating the file chooser allows multiple files to upload, the setting only works with HTML5 supported browsers (since ZK 6.0.0).
- accept: specifies the types of files that the server accepts, the setting only works with HTML5 supported browsers (since ZK 7.0.0).
- suppressedErrors: specifies the suppressed uploading errors, separated by
|
(e.g. missing-required-component|illegal-upload) (since ZK 9.5.1).
Note: if the options of the
false
or the customized handler (likefoo.Upload
) are not specified, the option oftrue
is implicit by default.- Specified by:
setUpload
in interfaceUploadable
- Parameters:
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).- See Also:
Uploadable.Error
- maxsize: the maximal allowed upload size of the component, in kilobytes, or
a negative value if no limit, if the maxsize is not specified, it will use
-
beforeParentChanged
public void beforeParentChanged(Component parent)
Description copied from class:AbstractComponent
Default: If parent is null, execute the @Destroy method if any.- Specified by:
beforeParentChanged
in interfaceComponentCtrl
- Overrides:
beforeParentChanged
in classAbstractComponent
- Parameters:
parent
- the new parent. If null, it means detachment.- See Also:
ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)
-
clone
public java.lang.Object clone()
Description copied from interface:Component
Clones the component. All of its children and descendants are cloned. Also, ID are preserved.- Specified by:
clone
in interfaceComponent
- Overrides:
clone
in classLabelImageElement
- Returns:
- the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.
-
isChildable
protected boolean isChildable()
Not childable.- Overrides:
isChildable
in classAbstractComponent
-
renderProperties
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
Description copied from class:HtmlBasedComponent
Renders the content of this component, excluding the enclosing tags and children.- Overrides:
renderProperties
in classLabelImageElement
- Throws:
java.io.IOException
-
renderCrawlable
protected void renderCrawlable(java.lang.String label) throws java.io.IOException
Description copied from class:LabelElement
Renders the crawlable information. It is called byLabelElement.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)
- Overrides:
renderCrawlable
in classLabelElement
- Throws:
java.io.IOException
-
service
public void service(AuRequest request, boolean everError)
Processes an AU request.Default: in addition to what are handled by
HtmlBasedComponent.service(org.zkoss.zk.au.AuRequest, boolean)
, it also handles onCheck.- Specified by:
service
in interfaceComponentCtrl
- Overrides:
service
in classHtmlBasedComponent
everError
- whether any error ever occurred before processing this request.- Since:
- 5.0.0
- See Also:
AbstractComponent.setAuService(org.zkoss.zk.au.AuService)
-
updateByClient
protected void updateByClient(java.lang.String name, java.lang.Object value)
Description copied from class:AbstractComponent
Called when the widget running at the client asks the server to update a value. The update is caused by an AU request namedsetAttr
(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
- For component developers: override this method to update the field
directly. For example,
protected void updateByClient(String name, Object value) { if ("disabled".equals(name)) setDisabled(name, ((Boolean)value).booleanValue()); else super.updateByClient(name, value);
- For application developers: set an attribute called
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().
- Overrides:
updateByClient
in classAbstractComponent
- For component developers: override this method to update the field
directly. For example,
-
-