SV: Review Request for JMC-5366 : Abort generating of a page if the user switches to another.

Erik Gahlin erik.gahlin at
Mon Apr 8 12:18:18 UTC 2019

Hi Deepa,

Previously (4.x) there was a flag that would terminate a "view model 
builder" job, if a new task was started.

That way, it was possible to navigate quickly around, using both mouse 
and keyboard, and between tabs and tables/graphs. The background task 
would poll a terminated flag once every 100 000 event that was 
processed. It made the GUI very responsive, even with large recordings.

I haven't tried the current patch, so it is hard for me to compare, but 
waiting for a selection doesn't seem sufficient if there is a lot of 
data to process.

Have you tried with a recording with 10-20 million events?


> Hi Deepa,
> This only works for the keyboard, right?
>  From the javadocs on the IPostSelectionProvider interface:
> "Selection provider extension interface to allow providers to notify about
> post selection changed events. A post selection changed event is equivalent
> to selection changed event if the selection change was triggered by the mouse,
> but it has a delay if the selection change is triggered by keyboard navigation."
> Please check with Markus Grönlund and Erik Gahlin to see if the solution
> solves their problem.
> Kind regards,
> Marcus
> -----Ursprungligt meddelande-----
> Från: jmc-dev <jmc-dev-bounces at> För Deepa Avhad
> Skickat: den 8 april 2019 08:34
> Till: Jmc-Dev <jmc-dev at>
> Ämne: Review Request for JMC-5366 : Abort generating of a page if the user switches to another.
> Hi All,
> Please review the fix for JMC-5366.
> JIRA   :
> Webrev :
> Solution:  When navigating views the selection changes frequently - especially when the keyboard is used to scroll through long
>             lists or the mouse is dragged over some text. This will lead to many unnecessary updates of the viewers registered,
>             making application less responsive.
>             So use of post selection events will be send-out with a slight delay. All intermediate selections during the delay time
>             are ignored; just the final selection is propagated.
>             Example: (addPostSelectionListener(ISelectionListener listener) ).
> Thanks,
> Deepa

More information about the jmc-dev mailing list