Re: Paint UI before starting long running task

2018-05-31 Thread Martin Grigorov
On Wed, May 30, 2018 at 6:00 PM, Zbynek Vavros 
wrote:

> Hey,
>
> this is weird, I can see the Ajax loading during renderHead() processing
> and then switch to my loading.
>
> Maybe I could describe what I'm doing in more details (with
> AjaxLazyLoadPanel  being used):
> Loader from AjaxLazyLoadPanel is displayed.
> Remote REST is being called, response from REST is passed to JS function -
> at this moment my panel is rendered.
> JS then calls remote service via websocket, receives response, passed that
> response to Wicket JS callback function.
> This calls yet another REST endpoint and saves result into DB.
>
> After that I replace my loading with success message.
>
> I would like to "ideally" have all this covered by single loading panel.
>

You will need to create a custom Panel to do all this.
I guess you can still use AjaxLazyLoadPanel if you use Java WebSocket
client, but this is something you have to decide.


>
> Zbynek
>
>
> On Wed, May 30, 2018 at 3:32 PM, Martin Grigorov 
> wrote:
>
> > Hi,
> >
> > Do you use AjaxLazyLoadPanel for the loading image + result panel ?
> > You can move your #renderHead() logic to the result panel's renderHead().
> >
> > On Wed, May 30, 2018 at 3:05 PM, Zbynek Vavros 
> > wrote:
> >
> > > Hi,
> > >
> > > I got a wizard and one of its steps display loading image while
> > > processing long running task. After this task JavaScript is being
> called.
> > >
> > > I've put the code into render renderHead() method of the step itself:
> > >
> > > @Override
> > > public void renderHead(IHeaderResponse response) {
> > > // process task
> > > String taskResult = ...
> > > // call JavaScript with result
> > > response.render(OnDomReadyHeaderItem.forScript("jsFunction(" +
> > > taskResult + ")"));
> > > }
> > >
> > > When I click the NEXT button, this long running task is executed before
> > > the step with loading image is rendered.
> > > I guess I need to move the code somewhere else than renderHead() but
> > where?
> > >
> > > Thanks,
> > > Zbynek
> > >
> >
>


Re: Paint UI before starting long running task

2018-05-30 Thread Zbynek Vavros
I could use onAfterRender() but I can't call JS from that.

On Wed, May 30, 2018 at 5:00 PM, Zbynek Vavros 
wrote:

> Hey,
>
> this is weird, I can see the Ajax loading during renderHead() processing
> and then switch to my loading.
>
> Maybe I could describe what I'm doing in more details (with
> AjaxLazyLoadPanel  being used):
> Loader from AjaxLazyLoadPanel is displayed.
> Remote REST is being called, response from REST is passed to JS function -
> at this moment my panel is rendered.
> JS then calls remote service via websocket, receives response, passed that
> response to Wicket JS callback function.
> This calls yet another REST endpoint and saves result into DB.
>
> After that I replace my loading with success message.
>
> I would like to "ideally" have all this covered by single loading panel.
>
> Zbynek
>
>
> On Wed, May 30, 2018 at 3:32 PM, Martin Grigorov 
> wrote:
>
>> Hi,
>>
>> Do you use AjaxLazyLoadPanel for the loading image + result panel ?
>> You can move your #renderHead() logic to the result panel's renderHead().
>>
>> On Wed, May 30, 2018 at 3:05 PM, Zbynek Vavros 
>> wrote:
>>
>> > Hi,
>> >
>> > I got a wizard and one of its steps display loading image while
>> > processing long running task. After this task JavaScript is being
>> called.
>> >
>> > I've put the code into render renderHead() method of the step itself:
>> >
>> > @Override
>> > public void renderHead(IHeaderResponse response) {
>> > // process task
>> > String taskResult = ...
>> > // call JavaScript with result
>> > response.render(OnDomReadyHeaderItem.forScript("jsFunction(" +
>> > taskResult + ")"));
>> > }
>> >
>> > When I click the NEXT button, this long running task is executed before
>> > the step with loading image is rendered.
>> > I guess I need to move the code somewhere else than renderHead() but
>> where?
>> >
>> > Thanks,
>> > Zbynek
>> >
>>
>
>


Re: Paint UI before starting long running task

2018-05-30 Thread Zbynek Vavros
Hey,

this is weird, I can see the Ajax loading during renderHead() processing
and then switch to my loading.

Maybe I could describe what I'm doing in more details (with
AjaxLazyLoadPanel  being used):
Loader from AjaxLazyLoadPanel is displayed.
Remote REST is being called, response from REST is passed to JS function -
at this moment my panel is rendered.
JS then calls remote service via websocket, receives response, passed that
response to Wicket JS callback function.
This calls yet another REST endpoint and saves result into DB.

After that I replace my loading with success message.

I would like to "ideally" have all this covered by single loading panel.

Zbynek


On Wed, May 30, 2018 at 3:32 PM, Martin Grigorov 
wrote:

> Hi,
>
> Do you use AjaxLazyLoadPanel for the loading image + result panel ?
> You can move your #renderHead() logic to the result panel's renderHead().
>
> On Wed, May 30, 2018 at 3:05 PM, Zbynek Vavros 
> wrote:
>
> > Hi,
> >
> > I got a wizard and one of its steps display loading image while
> > processing long running task. After this task JavaScript is being called.
> >
> > I've put the code into render renderHead() method of the step itself:
> >
> > @Override
> > public void renderHead(IHeaderResponse response) {
> > // process task
> > String taskResult = ...
> > // call JavaScript with result
> > response.render(OnDomReadyHeaderItem.forScript("jsFunction(" +
> > taskResult + ")"));
> > }
> >
> > When I click the NEXT button, this long running task is executed before
> > the step with loading image is rendered.
> > I guess I need to move the code somewhere else than renderHead() but
> where?
> >
> > Thanks,
> > Zbynek
> >
>


Re: Paint UI before starting long running task

2018-05-30 Thread Martin Grigorov
Hi,

Do you use AjaxLazyLoadPanel for the loading image + result panel ?
You can move your #renderHead() logic to the result panel's renderHead().

On Wed, May 30, 2018 at 3:05 PM, Zbynek Vavros 
wrote:

> Hi,
>
> I got a wizard and one of its steps display loading image while
> processing long running task. After this task JavaScript is being called.
>
> I've put the code into render renderHead() method of the step itself:
>
> @Override
> public void renderHead(IHeaderResponse response) {
> // process task
> String taskResult = ...
> // call JavaScript with result
> response.render(OnDomReadyHeaderItem.forScript("jsFunction(" +
> taskResult + ")"));
> }
>
> When I click the NEXT button, this long running task is executed before
> the step with loading image is rendered.
> I guess I need to move the code somewhere else than renderHead() but where?
>
> Thanks,
> Zbynek
>


Paint UI before starting long running task

2018-05-30 Thread Zbynek Vavros
Hi,

I got a wizard and one of its steps display loading image while
processing long running task. After this task JavaScript is being called.

I've put the code into render renderHead() method of the step itself:

@Override
public void renderHead(IHeaderResponse response) {
// process task
String taskResult = ...
// call JavaScript with result
response.render(OnDomReadyHeaderItem.forScript("jsFunction(" +
taskResult + ")"));
}

When I click the NEXT button, this long running task is executed before
the step with loading image is rendered.
I guess I need to move the code somewhere else than renderHead() but where?

Thanks,
Zbynek