Class AjaxDownloadBehavior
- java.lang.Object
-
- org.apache.wicket.behavior.Behavior
-
- org.apache.wicket.behavior.AbstractAjaxBehavior
-
- org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
-
- org.apache.wicket.extensions.ajax.AjaxDownloadBehavior
-
- All Implemented Interfaces:
Serializable,org.apache.wicket.IComponentAwareEventSink,org.apache.wicket.IRequestListener,org.apache.wicket.markup.html.IComponentAwareHeaderContributor,org.apache.wicket.util.io.IClusterable
public class AjaxDownloadBehavior extends org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
Download resources via Ajax.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)orAbstractResource.ResourceResponse.setFileName(String)- Author:
- svenmeier, Martin Grigorov, Maxim Solodovnik
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAjaxDownloadBehavior.Location
-
Constructor Summary
Constructors Constructor Description AjaxDownloadBehavior(org.apache.wicket.request.resource.IResource resource)Download of aIResource.AjaxDownloadBehavior(org.apache.wicket.request.resource.ResourceReference reference)Download of aResourceReference.AjaxDownloadBehavior(org.apache.wicket.request.resource.ResourceReference reference, org.apache.wicket.request.mapper.parameter.PageParameters resourceParameters)Download of aResourceReference.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AjaxDownloadBehavior.LocationgetLocation()org.apache.wicket.util.cookies.CookieDefaults.SameSitegetSameSite()voidinitiate(org.apache.wicket.core.request.handler.IPartialPageRequestHandler handler)Call this method to initiate the download.voidinitiate(org.apache.wicket.core.request.handler.IPartialPageRequestHandler handler, org.apache.wicket.request.mapper.parameter.PageParameters resourceParameters)Call this method to initiate the download.static voidmarkCompleted(org.apache.wicket.request.resource.IResource.Attributes attributes)Mark a resource as complete.protected voidonBeforeDownload(org.apache.wicket.core.request.handler.IPartialPageRequestHandler handler)protected voidonBind()protected voidonDownloadCompleted(org.apache.wicket.ajax.AjaxRequestTarget target)A callback executed when the download of the resource finished successfully or with a failure.protected voidonDownloadFailed(org.apache.wicket.ajax.AjaxRequestTarget target)A callback executed when the download of the resource failed for some reason, e.g.protected voidonDownloadSuccess(org.apache.wicket.ajax.AjaxRequestTarget target)A callback executed when the download of the resource finished successfully.protected voidonUnbind()voidrenderHead(org.apache.wicket.Component component, org.apache.wicket.markup.head.IHeaderResponse response)protected voidrespond(org.apache.wicket.ajax.AjaxRequestTarget target)AjaxDownloadBehaviorsetLocation(AjaxDownloadBehavior.Location location)voidsetSameSite(org.apache.wicket.util.cookies.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
-
-
-
-
Constructor Detail
-
AjaxDownloadBehavior
public AjaxDownloadBehavior(org.apache.wicket.request.resource.IResource resource)
Download of aIResource.- Parameters:
resource- resource to download
-
AjaxDownloadBehavior
public AjaxDownloadBehavior(org.apache.wicket.request.resource.ResourceReference reference)
Download of aResourceReference.The
IResourcereturned byResourceReference.getResource()must callmarkCompleted(Attributes)when responding, otherwise the callbackonDownloadSuccess(AjaxRequestTarget)will not work.- Parameters:
reference- reference to resource to download
-
AjaxDownloadBehavior
public AjaxDownloadBehavior(org.apache.wicket.request.resource.ResourceReference reference, org.apache.wicket.request.mapper.parameter.PageParameters resourceParameters)
Download of aResourceReference.The
IResourcereturned 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 Detail
-
onBind
protected void onBind()
- Overrides:
onBindin classorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior
-
onUnbind
protected void onUnbind()
- Overrides:
onUnbindin classorg.apache.wicket.behavior.AbstractAjaxBehavior
-
initiate
public void initiate(org.apache.wicket.core.request.handler.IPartialPageRequestHandler handler, org.apache.wicket.request.mapper.parameter.PageParameters resourceParameters)
Call this method to initiate the download. You can use theresourceParametersto dynamically pass information to theIResourcein order to generate contents.- Parameters:
handler- the initiating RequestHandlerresourceParameters- Some PageParameters that might be used by the resource in order to generate content
-
initiate
public void initiate(org.apache.wicket.core.request.handler.IPartialPageRequestHandler handler)
Call this method to initiate the download.- Parameters:
handler- the initiating RequestHandler
-
onBeforeDownload
protected void onBeforeDownload(org.apache.wicket.core.request.handler.IPartialPageRequestHandler handler)
-
onDownloadSuccess
protected void onDownloadSuccess(org.apache.wicket.ajax.AjaxRequestTarget target)
A callback executed when the download of the resource finished successfully.- Parameters:
target- The Ajax request handler
-
onDownloadFailed
protected void onDownloadFailed(org.apache.wicket.ajax.AjaxRequestTarget target)
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
protected void onDownloadCompleted(org.apache.wicket.ajax.AjaxRequestTarget target)
A callback executed when the download of the resource finished successfully or with a failure.- Parameters:
target- The Ajax request handler
-
renderHead
public void renderHead(org.apache.wicket.Component component, org.apache.wicket.markup.head.IHeaderResponse response)
- Specified by:
renderHeadin interfaceorg.apache.wicket.markup.html.IComponentAwareHeaderContributor- Overrides:
renderHeadin classorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior
-
respond
protected void respond(org.apache.wicket.ajax.AjaxRequestTarget target)
- Specified by:
respondin classorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior
-
getLocation
public AjaxDownloadBehavior.Location getLocation()
-
setLocation
public AjaxDownloadBehavior setLocation(AjaxDownloadBehavior.Location location)
-
markCompleted
public static void markCompleted(org.apache.wicket.request.resource.IResource.Attributes attributes)
Mark a resource as complete.Has to be called from
IResource.respond(Attributes)when downloaded viaAjaxDownloadBehavior(IResource).- Parameters:
attributes- resource attributes
-
getSameSite
public org.apache.wicket.util.cookies.CookieDefaults.SameSite getSameSite()
- Returns:
- The
CookieDefaults.SameSiteattribute to be used for the complete download.
-
setSameSite
public void setSameSite(org.apache.wicket.util.cookies.CookieDefaults.SameSite sameSite)
Setter for the sameCookieDefaults.SameSite- Parameters:
sameSite- The non-null sameSite attribute
-
-