Package org.zkoss.zkmax.zul

## Class Dropupload

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zkmax.zul.Dropupload

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Scope`, `ComponentCtrl`

      public class Dropupload
      extends XulElement

  A component can handle drag files into it, and upload files to server.

  Default `HtmlBasedComponent.getZclass()`: z-dropupload.

  known supported browser :

- Chrome (v.19+)
- Firefox (v.13+)
- Safari (5.1+)
- Opera (12.1+)
- IE (10+)

known unsupported browser :

- IE9
- Opera (11.x)

Since:
  6.5.0
See Also:
  Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `HtmlBasedComponent.ExtraCtrl`

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

      `AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo`

  - ### 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_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Dropupload()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getAccept()` | Return acceptable file types.
    `Component` | `getAnchor()` | Return the anchor of dropupload.
    `java.lang.String` | `getContent()` |
    `java.lang.String` | `getDetection()` | Return the detection area setting.
    `int` | `getMaxFileCount()` | Get the maximum number of files user can upload at once, when number of upload files exceed the maxFileCount, nothing will be uploaded and onMaxFileCountExceed event will be triggered, developer can listen to onMaxFileCountExceed and get the number of upload files by calling `Event.getData()` Default: -1
    `int` | `getMaxsize()` | Get the max size setting of upload file, unit is "KB".
    `java.lang.String` | `getSuppressedErrors()` | Return the suppressed errors setting.
    `java.lang.String` | `getViewerClass()` |
    `boolean` | `isNative()` | Return the setting that treat the upload file as binary or not.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `service​(AuRequest request, boolean everError)` | Process an AU request.
    `void` | `setAccept​(java.lang.String accept)` | Set acceptable file types.
    `void` | `setAnchor​(Component anchor)` | Set the anchor of dropupload, it allows the dropupload component to anchor to another component and overlay that component when the user drag & drops files to the browser.
    `void` | `setContent​(java.lang.String value)` | Set the content of component, it will be shown depend on detection setting.
    `void` | `setDetection​(java.lang.String value)` | Set drag detection area.
    `void` | `setMaxFileCount​(int maxFileCount)` | Set the maximum number of files user can upload at once, when number of upload files exceed the maxFileCount, nothing will be uploaded and onMaxFileCountExceed event will be triggered, developer can listen to onMaxFileCountExceed and get the number of upload files by calling `Event.getData()`
    `void` | `setMaxsize​(int value)` | Set the max size of upload file, unit is "KB".
    `void` | `setNative​(boolean value)` | Set the setting that treat the upload file as binary or not.
    `void` | `setSuppressedErrors​(java.lang.String suppressedErrors)` | Set the suppressed errors setting.
    `void` | `setSuppressedErrors​(java.util.Collection<Uploadable.Error> suppressedErrors)` | Set the suppressed errors setting.
    `void` | `setViewerClass​(java.lang.String value)` | Set the custom upload viewer class name, if was not specified, will use ZK default upload viewer.

    - ### Methods inherited from class org.zkoss.zul.impl.XulElement

      `clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, 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, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, 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, beforeParentChanged, 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, isChildable, 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, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Dropupload

          public Dropupload()

  - ### Method Detail

    - #### setMaxsize

          public void setMaxsize​(int value)

      Set the max size of upload file, unit is "KB". Notice: All the files in one drag-and-drop action must smaller than max size, or nothing will upload.
      Parameters:
        `value` - negative value is unlimited, 0 will use `Configuration.getMaxUploadSize()`

    - #### getMaxsize

          public int getMaxsize()

      Get the max size setting of upload file, unit is "KB". Refer to `setMaxsize(int)` for more details.

    - #### setDetection

          public void setDetection​(java.lang.String value)

      Set drag detection area. When mouse drag over the detection area, it will show content. There are four accept value :
      1. browser : whole browser, default value.
      2. none : disable detection.
      3. self : the Dropupload itself.
      4. $id : the id value of specified widget. If specified widget is not exist, will use default setting.
      Notice : The Dropupload with detection="browser" setting can't put together with other Dropupload that detection is not browser. If do so, the user can't drop file on it.
      Parameters:
        `value` -

    - #### getDetection

          public java.lang.String getDetection()

      Return the detection area setting. Refer to `setDetection(String)` for more details.

    - #### setViewerClass

          public void setViewerClass​(java.lang.String value)

      Set the custom upload viewer class name, if was not specified, will use ZK default upload viewer.
      Parameters:
        `value` - custom upload viewer class name.

    - #### getViewerClass

          public java.lang.String getViewerClass()

      Returns:
        custom upload viewer class name.

    - #### setContent

          public void setContent​(java.lang.String value)

      Set the content of component, it will be shown depend on detection setting.
      Parameters:
        `value` - HTML string.
      See Also:
        `setDetection(String)`

    - #### getContent

          public java.lang.String getContent()

      Returns:
        content of component.

    - #### setNative

          public void setNative​(boolean value)

      Set the setting that treat the upload file as binary or not. If true, treat file(s) as binary, i.e., not to convert it to image, audio or text files.

    - #### isNative

          public boolean isNative()

      Return the setting that treat the upload file as binary or not.
      Returns:
        boolean

    - #### setAnchor

          public void setAnchor​(Component anchor)

      Set the anchor of dropupload, it allows the dropupload component to anchor to another component and overlay that component when the user drag & drops files to the browser.
      Parameters:
        `anchor` - of dropupload

    - #### getAnchor

          public Component getAnchor()

      Return the anchor of dropupload.
      Returns:
        Component

    - #### setMaxFileCount

          public void setMaxFileCount​(int maxFileCount)

      Set the maximum number of files user can upload at once, when number of upload files exceed the maxFileCount, nothing will be uploaded and onMaxFileCountExceed event will be triggered, developer can listen to onMaxFileCountExceed and get the number of upload files by calling `Event.getData()`
      Parameters:
        `maxFileCount` - the maximum number of files user can upload at once, -1 means no limitation
      Since:
        8.5.2

    - #### getMaxFileCount

          public int getMaxFileCount()

      Get the maximum number of files user can upload at once, when number of upload files exceed the maxFileCount, nothing will be uploaded and onMaxFileCountExceed event will be triggered, developer can listen to onMaxFileCountExceed and get the number of upload files by calling `Event.getData()` Default: -1
      Returns:
        the maximum number of files user can upload at once, -1 means no limitation
      Since:
        8.5.2

    - #### getSuppressedErrors

          public java.lang.String getSuppressedErrors()

      Return the suppressed errors setting.

      Default: null

      Returns:
        the suppressed errors setting
      Since:
        9.5.1

    - #### setSuppressedErrors

          public void setSuppressedErrors​(java.lang.String suppressedErrors)

      Set the suppressed errors setting. Specifies the suppressed uploading errors, separated by `|` (e.g. missing-required-component|illegal-upload).
      Parameters:
        `suppressedErrors` - the suppressed errors setting
      Since:
        9.5.1
      See Also:
        `Uploadable.Error`

    - #### setSuppressedErrors

          public void setSuppressedErrors​(java.util.Collection<Uploadable.Error> suppressedErrors)

      Set the suppressed errors setting. Specifies the suppressed uploading errors.
      Parameters:
        `suppressedErrors` - the suppressed errors setting
      Since:
        9.5.1
      See Also:
        `Uploadable.Error`

    - #### setAccept

          public void setAccept​(java.lang.String accept)

      Set acceptable file types.
      Parameters:
        `accept` - acceptable file types
      Since:
        10.0.0

    - #### getAccept

          public java.lang.String getAccept()

      Return acceptable file types.
      Since:
        10.0.0

    - #### 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.

      See also ZK Client-side Reference: Property Rendering

      Overrides:
        `renderProperties` in class `XulElement`
      Throws:
        `java.io.IOException`

    - #### service

          public void service​(AuRequest request,
                              boolean everError)

      Process an AU request. It will handle `Events.ON_UPLOAD` and post `UploadEvent`.
      Specified by:
        `service` in interface `ComponentCtrl`
      Overrides:
        `service` in class `HtmlBasedComponent`
        `everError` - whether any error ever occurred before processing this request.
      See Also:
        `HtmlBasedComponent.service(org.zkoss.zk.au.AuRequest, boolean)`