Class AjaxDownloadBehavior
- All Implemented Interfaces:
Serializable
,IComponentAwareEventSink
,IRequestListener
,IComponentAwareHeaderContributor
,IClusterable
Usage:
final AjaxDownloadBehavior download = new AjaxDownloadBehavior(resource); add(download); add(new AjaxButton("download") { @Override protected void onSubmit(IPartialPageRequestHandler handler, Form<?> form) { download.initiate(handler); } });
To set the name of the downloaded resource make use of
ResourceStreamResource.setFileName(String)
or
AbstractResource.ResourceResponse.setFileName(String)
- Author:
- svenmeier, Martin Grigorov, Maxim Solodovnik
- See Also:
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
INDICATOR
-
Constructor Summary
ConstructorDescriptionAjaxDownloadBehavior
(IResource resource) Download of aIResource
.AjaxDownloadBehavior
(ResourceReference reference) Download of aResourceReference
.AjaxDownloadBehavior
(ResourceReference reference, PageParameters resourceParameters) Download of aResourceReference
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
initiate
(IPartialPageRequestHandler handler) Call this method to initiate the download.void
initiate
(IPartialPageRequestHandler handler, PageParameters resourceParameters) Call this method to initiate the download.static void
markCompleted
(IResource.Attributes attributes) Mark a resource as complete.static void
markCompleted
(IResource.Attributes attributes, CookieDefaults.SameSite sameSite) Mark a resource as complete.protected void
protected void
onBind()
Subclasses should call super.onBind()protected void
onDownloadCompleted
(AjaxRequestTarget target) A callback executed when the download of the resource finished successfully or with a failure.protected void
onDownloadFailed
(AjaxRequestTarget target) A callback executed when the download of the resource failed for some reason, e.g. an error at the server side.protected void
onDownloadSuccess
(AjaxRequestTarget target) A callback executed when the download of the resource finished successfully.protected void
onUnbind()
Called when the behavior is removed from its component.void
renderHead
(Component component, IHeaderResponse response) Render to the web response whatever the component wants to contribute to the head section.protected void
respond
(AjaxRequestTarget target) setLocation
(AjaxDownloadBehavior.Location location) void
setSameSite
(CookieDefaults.SameSite sameSite) Setter for the sameCookieDefaults.SameSite
Methods inherited from class org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
findIndicatorId, getAttributes, getCallbackFunction, getCallbackFunctionBody, getCallbackScript, getCallbackScript, onMethodMismatch, onRequest, postprocessConfiguration, renderAjaxAttributes, renderAjaxAttributes, updateAjaxAttributes
Methods inherited from class org.apache.wicket.behavior.AbstractAjaxBehavior
afterRender, bind, getCallbackUrl, getComponent, onComponentRendered, onComponentTag, onComponentTag, unbind
Methods inherited from class org.apache.wicket.behavior.Behavior
beforeRender, canCallListener, detach, getStatelessHint, isEnabled, isTemporary, onAttribute, onConfigure, onEvent, onException, onRemove, onTag
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.wicket.IRequestListener
rendersPage
-
Constructor Details
-
AjaxDownloadBehavior
Download of aIResource
.- Parameters:
resource
- resource to download
-
AjaxDownloadBehavior
Download of aResourceReference
.The
IResource
returned byResourceReference.getResource()
must callmarkCompleted(Attributes)
when responding, otherwise the callbackonDownloadSuccess(AjaxRequestTarget)
will not work.- Parameters:
reference
- reference to resource to download
-
AjaxDownloadBehavior
Download of aResourceReference
.The
IResource
returned byResourceReference.getResource()
must callmarkCompleted(Attributes)
when responding, otherwise the callbackonDownloadSuccess(AjaxRequestTarget)
will not work.- Parameters:
reference
- reference to resource to downloadresourceParameters
- parameters for the resource
-
-
Method Details
-
onBind
Description copied from class:AbstractDefaultAjaxBehavior
Subclasses should call super.onBind()- Overrides:
onBind
in classAbstractDefaultAjaxBehavior
- See Also:
-
onUnbind
Description copied from class:AbstractAjaxBehavior
Called when the behavior is removed from its component. The bound host component is still available through AbstractAjaxBehavior.getComponent(). The relation to it will be removed right after the finish of the execution of this method.- Overrides:
onUnbind
in classAbstractAjaxBehavior
-
initiate
Call this method to initiate the download. You can use theresourceParameters
to dynamically pass information to theIResource
in order to generate contents.- Parameters:
handler
- the initiating RequestHandlerresourceParameters
- Some PageParameters that might be used by the resource in order to generate content
-
initiate
Call this method to initiate the download.- Parameters:
handler
- the initiating RequestHandler
-
onBeforeDownload
-
onDownloadSuccess
A callback executed when the download of the resource finished successfully.- Parameters:
target
- The Ajax request handler
-
onDownloadFailed
A callback executed when the download of the resource failed for some reason, e.g. an error at the server side.Since the HTTP status code of the download is not available to Wicket, any HTML in the resource response will be interpreted as a failure HTTP status message. Thus is it not possible to download HTML resources via
AjaxDownloadBehavior
.- Parameters:
target
- The Ajax request handler
-
onDownloadCompleted
A callback executed when the download of the resource finished successfully or with a failure.- Parameters:
target
- The Ajax request handler
-
renderHead
Description copied from class:Behavior
Render to the web response whatever the component wants to contribute to the head section.- Specified by:
renderHead
in interfaceIComponentAwareHeaderContributor
- Overrides:
renderHead
in classAbstractDefaultAjaxBehavior
- Parameters:
component
- component which is contributing to the response. This parameter is here to give the component as the context for component-awares implementing this interfaceresponse
- Response object- See Also:
-
respond
- Specified by:
respond
in classAbstractDefaultAjaxBehavior
- Parameters:
target
- The AJAX target
-
getLocation
-
setLocation
-
markCompleted
Mark a resource as complete.Has to be called from
IResource.respond(Attributes)
when downloaded viaAjaxDownloadBehavior(IResource)
.- Parameters:
attributes
- resource attributes
-
markCompleted
Mark a resource as complete.Has to be called from
IResource.respond(Attributes)
when downloaded viaAjaxDownloadBehavior(IResource)
.- Parameters:
attributes
- resource attributessameSite
- The same site attribute used to mark a download completed.
-
getSameSite
- Returns:
- The
CookieDefaults.SameSite
attribute to be used for the complete download.
-
setSameSite
Setter for the sameCookieDefaults.SameSite
- Parameters:
sameSite
- The non-null sameSite attribute
-