cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar

Improve JMP's state handlers (hover label, row state handler, filter state handler, scheduler, ...)

I have tried to use different state handlers JMP provides, but the more I use them the more I notice issues with them. There are many reasons why I would like to use them and maybe even more reasons for me to avoid them. Biggest issue is usually that they seem to trigger too many times and value returned is not that helpful.

 

Subscribe To Data Table List() is fairly good example on how most of these should work. You can add different functions to different events (sometimes it is a hassle though). You can imagine how well Subscribe To Data Table List() would work if it would trigger every time something happens to data table list (add, remove, rename) and it would return only data table name for example (or number of data tables changed...) and nothing more.

 

Below are some problems and suggestions:

Hover Label

Problem

Seems to get triggered when you move close to the point you want to hover over. This causes multiple triggers and slows down JMP unnecessarily and sometimes this slow-down is quite big. Also triggers immediately when you hover over point -> if you move mouse fast over multiple elements it will trigger multiple times. Also triggers multiple times on hover over (could be related to all of the things mentioned earlier)

Suggestions

Make it more accurate when hover label triggers. Add possibility for "delay" when to trigger event, for example I would like to be able to trigger hover label after user has hovered over same element for 0.2s. Also allow selection of "safe-zone" to determine when hover label should even trigger.

 

Row State Handler

Problem

Triggers too many times and all events. Has a bug where you remove row, the row state handler seems to get removed.

Suggestions

Most likely would be enough if there was a way to capture only specific row state changes (and fix the bug).

 

Filter State Handler

Problem

Triggers too many times. One example is that if you even look at the filter the state handler will trigger.

Suggestions

Remove unnecessary triggers from Filter State Handler or give possibility to choose which states should trigger which function.

 

Scheduler

Problem

Can have only one scheduler at the time and you cannot hide the scheduler window.

Suggestions

Allow creation of private schedulers (currently I hide the window and hope that user won't close it) and multiple different schedulers at the same time.

7 Comments
Craige_Hales
Super User

@jthi  Agree, the scheduler is hard to use well. In News Feed  I moved the scheduler object out of the window it creates into my own window, but that doesn't address the singleton issue. (Utility.jsl lines 53-64. Used from httpServer.jsl line 120.) I suspect it doesn't need to be in a window at all once it is removed; you probably just need to keep the handle. In FileSnapper  I used a windows-only approach with runprogram and some DOS commands. I would have preferred to use scheduler except for the singleton issue. Don't do this because {windows only, not future-proof, still has some side effects}. In both cases, the JSL only runs when JMP has idle time, perhaps during a wait().

 

mia_stephens
Staff
Status changed to: Investigating
 
mia_stephens
Staff

Thank you for submitting this list, and for providing suggestions. We are currently investigating.

xxvvcczz
Level III

Please, please fix the row state handler.
I want to snatch up selection events on mouse up and send an http request to get data for the user but right now it's impossibly laggy and difficult. I went so far as to rewrite the entire selection tool as a mousetrap to try and get this functionality, I just want the row state handler to fire once upon end of selection event.

 

https://community.jmp.com/t5/Discussions/Is-there-a-way-to-make-the-rowstate-handler-less-laggy/m-p/...

xxvvcczz
Level III

Any updates on this? Been a couple months now.

mia_stephens
Staff

@xxvvcczz , the developers have been investigating possible changes to Make RowState Handler and Make Filter Change Handler. No update to share yet.

hogi
Level XII

I fear that a delay for Hover label will make it feel "laggy".
There are nice examples on the net how exciting a "live" hover label can feel:
https://wid.world/world/#lpfghg_p90p100_z/US;FR;DE;CN;ZA;GB;WO/2020/eu/k/p/yearly/l/false/3.516/100/... 

hogi_0-1690644009104.png
perhaps:
don't update the content if it's exactly the same as before?
just:

place the existing Hover label at the new position.