Package org.zkoss.zul

Class Menuitem

    • Constructor Detail

      • Menuitem

        public Menuitem()
      • Menuitem

        public Menuitem​(java.lang.String label)
      • Menuitem

        public Menuitem​(java.lang.String label,
                        java.lang.String src)
    • 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
      • setDisabled

        public void setDisabled​(boolean disabled)
        Sets whether it is disabled.
        Specified by:
        setDisabled in interface Disable
        Since:
        3.0.1
      • isDisabled

        public boolean isDisabled()
        Returns whether it is disabled.

        Default: false.

        Specified by:
        isDisabled in interface Disable
        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.

      • 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 another Menupopup.
      • 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 (like foo.Upload) are not specified, the option of true is implicit by default.

        Specified by:
        setUpload in interface Uploadable
        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
      • 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 interface Component
        Overrides:
        clone in class LabelImageElement
        Returns:
        the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.
      • 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 named 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

        1. 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);
        2. 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.
        3. 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 class AbstractComponent