Ah yes, I didn't even give flash persist a thought, I think I'd rather use
that to minimize url tampering. Thanks Lance.


On Wed, Apr 24, 2013 at 1:53 PM, Lance Java <lance.j...@googlemail.com>wrote:

> Something like this (not tested)
>
> @Inject
> private ComponentResources resources;
>
> @Inject
> private JavaScriptSupport jss;
>
> @Persist(PersistanceConstants.FLASH)
> private String pdfUrl;
>
> @SetupRender
> void setupRender() {
> if (pdfUrl != null) {
> jss.addScript("document.location.href = '%s';", pdfUrl);
> }
> }
>
> void onSuccessFromForm() {
> long pdfId = doWorkPriorToPdfGeneration(...);
> pdfUrl = resources.createEventLink("generatePdf", pdfId);
> }
>
> StreamResponse generatePdf(long pdfId) {
> // generate the PDF
> }
>
> If you don't want to use flash persistence, you can use page activation
> context or a request parameter etc.
>
>
> On 24 April 2013 17:51, George Christman <gchrist...@cardaddy.com> wrote:
>
> > Hi Lance, I think I'm with you most of the way with the exception of
> > generating a link to the pdf event.
> >
> > So I'm returning PurchaseRequest.class in my onSuccess method which would
> > for the page to reload with context from onPassivate, this should resolve
> > my sync issues. Where I'm lost is how to trigger the script to call the
> > StreamResponse. I thought maybe this could be done in the url like so,
> > http://domain/purchaserequest/958:generatepdf. I'm just not sure what
> the
> > appropriate way of doing this is, or how to do it at that. I'm assuming
> you
> > would need some sort of business logic to prevent people from just using
> > that same URL over and over again. How would you tigger the script on
> > return?
> >
> > Thanks Lance.
> >
> >
> > On Wed, Apr 24, 2013 at 12:37 PM, Lance Java <lance.j...@googlemail.com
> > >wrote:
> >
> > > Split it into 2 phases:
> > >
> > > Phase 1: Submit form
> > > Do the work (webservice + version increment)
> > > Generate a link to the generatePDF event
> > > Return the page to be re-rendered
> > >
> > > Phase 2: Re-render the page
> > > Use javascript to download the PDF once the page has loaded.
> > >
> >
>



-- 
George Christman
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

Reply via email to