here you are: https://github.com/solomax/ajax-download
Absolutely don't understand what is going on :(

On Wed, Mar 29, 2017 at 6:30 PM, Maxim Solodovnik <[email protected]> wrote:
> Yep, zip file is valid
> Breakpoint at AjaxDownload.ResourceBehavior#onRequest() is not hit :(
> Will try to create quickstart
>
> something extremely weird
>
> On Wed, Mar 29, 2017 at 2:22 AM, Martin Grigorov <[email protected]> wrote:
>> Hi Maxim,
>>
>> On Tue, Mar 28, 2017 at 11:06 AM, Maxim Solodovnik <[email protected]>
>> wrote:
>>
>>> Thanks a lot Martin for detailed explanation
>>> I do have this functionality working with old version of AjaxDownload
>>>
>>> And here is my first try to migrate to the new internal wicket
>>> AjaxDownload:
>>> https://github.com/apache/openmeetings/commit/
>>> 5fa2c87f212e4eecdd1368f2ae7fa8762832838f
>>>
>>> I would appreciate if you can take a look at this tiny commit.
>>>
>>> Something really doesn't work as expected ....
>>>
>>> Commited version behaves wrong:
>>> 1) file downloaded has wrong name
>>>
>>
>> You do not set file name anywhere!
>> Keep a reference to the constructed ResourceResponse and call its
>> #setFileName(...)
>>
>>
>>> 2) is not valid zip file (cannot be opened)
>>>
>>
>> Is the backupPath representing a ZIP file ?
>>
>>
>>> 3) for some reason I'm not able to get to breakpoint at line 115 [1]
>>>
>>
>> Put a breakpoint at AjaxDownload.ResourceBehavior#onResourceRequested() and
>> see what happens
>>
>>
>>>
>>> Additionally I got NotSerializable exception in case I made "download"
>>> class final variable
>>>
>>
>> java.nio.file.Path is not Serializable!
>>
>>
>>>
>>> What am I doing wrong?
>>>
>>> [1] https://github.com/apache/openmeetings/commit/
>>> 5fa2c87f212e4eecdd1368f2ae7fa8762832838f#diff-
>>> 0a499c88998a93ceb51c347836aa6195R115
>>>
>>> On Thu, Mar 23, 2017 at 3:16 AM, Martin Grigorov <[email protected]>
>>> wrote:
>>> > On Wed, Mar 22, 2017 at 12:59 PM, Maxim Solodovnik <[email protected]
>>> >
>>> > wrote:
>>> >
>>> >> Actually I have 2 example use cases:
>>> >>
>>> >> 1) user selects files on file tree
>>> >> 2) as soon as file is selected and download is enabled for it, used can
>>> >> press ajax download button and get the file
>>> >>
>>> >> Another case:
>>> >> User requests system backup
>>> >> As soon as backup is created (Progress complete)
>>> >> Download of newly created file should be initiated
>>> >>
>>> >> I can't create ResourceReference and override getResourceStream of it
>>> since
>>> >> I only have resource just before download
>>> >>
>>> >
>>> > Wicket IResource is an abstraction over the real resource.
>>> > In my case i also create the response on the fly. It is either a single
>>> > File or a Zip file with several entries.
>>> > The ResourceReference is more or less just an endpoint with almost no
>>> logic
>>> > at all. It just creates the IResource.
>>> > The IResource uses the information from the request parameters / session
>>> /
>>> > somewhere else to create the actual response (the files).
>>> >
>>> > AjaxDownload is an Ajax behavior that you can use to trigger the creation
>>> > of the files and by using its callback methods you can show feedback to
>>> the
>>> > user. To show progress bar you will need to employ ProgressBar from
>>> > wicket-extentions or use WebSockets.
>>> >
>>> >
>>> >>
>>> >> On Wed, Mar 22, 2017 at 6:53 PM, Martin Grigorov <[email protected]>
>>> >> wrote:
>>> >>
>>> >> > Hi Maxim,
>>> >> >
>>> >> > I use the new AjaxDownload with a ResourceReference, i.e.
>>> >> > AjaxDownload#AjaxDownload(org.apache.wicket.request.
>>> >> > resource.ResourceReference,
>>> >> > org.apache.wicket.request.mapper.parameter.PageParameters)
>>> >> > The ResourceReference has
>>> >> >
>>> >> > public IResource getResource() {
>>> >> >     return new StatementDownloadResource();
>>> >> > }
>>> >> >
>>> >> > StatementDownloadResource extends ResourceStreamResource and provides
>>> >> > implementation of #getResourceStream(). There I have a logic that
>>> returns
>>> >> > either FileResourceStream or ZipResourceStream.
>>> >> >
>>> >> > Martin Grigorov
>>> >> > Wicket Training and Consulting
>>> >> > https://twitter.com/mtgrigorov
>>> >> >
>>> >> > On Wed, Mar 22, 2017 at 12:30 PM, Maxim Solodovnik <
>>> [email protected]
>>> >> >
>>> >> > wrote:
>>> >> >
>>> >> > > Just have tried to switch to this AjaxDownload component
>>> >> > > And it seems I cannot find proper way to use it with dynamic file,
>>> i.e.
>>> >> > >
>>> >> > > previously
>>> >> > > I created AjaxDownload,
>>> >> > > added it to the page
>>> >> > > then at the moment I know what file should be served, I set the
>>> stream
>>> >> > and
>>> >> > > initiate the download
>>> >> > > (for example one of use cases: I need to create zip file
>>> >> > >
>>> >> > > right now this seems to be impossible :(
>>> >> > > Can you give me a hint how this dynamic nature can be implemented?
>>> >> > >
>>> >> > >
>>> >> > > --
>>> >> > > WBR
>>> >> > > Maxim aka solomax
>>> >> > >
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> WBR
>>> >> Maxim aka solomax
>>> >>
>>>
>>>
>>>
>>> --
>>> WBR
>>> Maxim aka solomax
>>>
>
>
>
> --
> WBR
> Maxim aka solomax



-- 
WBR
Maxim aka solomax

Reply via email to