cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
pauldeen
Level VI

Make dialog windows behave like JMP internal windows

When JMP is run maximized on Windows with this check box on, you get a list on the left that groups reports to the data tables they belong to and the most recent work is on the top. This makes working with the loads of windows that JMP spawns a lot easier.

 Dock.PNG

If you start a new analysis like distribution, you get the Distriution launch dialog that does not maximize itself and becomes a floating window. You can still click away to the tables and other reports that you have open.

If I script a new window("Test",some display box); this will maximize just like the rest of the JMP windows.

If I script a new window("Test",<<modal, some display box); this will float like the launch dialog of the other JMP platforms but you can not click away from this window and go look at your data table anymore.

 

How can I script a launch dialog that behaves like a standard JMP launch dialog?

1 ACCEPTED SOLUTION

Accepted Solutions
pauldeen
Level VI

Re: Make dialog windows behave like JMP internal windows

Thanks, definitely still not the built-in behavior and i'm not a fan of all the gray that it leaves you with, but definitely a step closer and it might be the best we can do until the development team decides to expose the built-in behavior through JSL!

View solution in original post

6 REPLIES 6
gzmorgan0
Super User (Alumni)

Re: Make dialog windows behave like JMP internal windows

Hi @pauldeen. In essence you answered your own question: you need to script a non-modal dialog. JMP platform launch dialogs are non-modal.  Open Main Menu > Books/Documentation > JMP Scripting Guide  and search for non-modal. 

 

If you are asking how to create a launch dialog that is non-modal, the scripting guide provides several examples.

 

If you know how to script a modal launch dialog, the main concept to convert it to non-modal is to recognize that all the action that should be taken from the user inputs should be scripted as a function or expression or include file that is called when the OK button is pressed.  If you are new to scripting, there is a bit of a learning curve.  

 

I've attached a script and related file that builds almost all the functionality of the FitYbyX platform. It was written for the book, JSL Companion, Applications of the JMP Scripting Language, 2nd Ed.  This text shows how to build a custom dialog in steps. The attached script is the final step, step 5. See the picture below.  JMP also provides the interactive Application Builder and an example launch application.   

 

Please note the attached script:

  • uses  expressions, functions and a namespace ( to implement recall),
  • the display boxes attributes and actions are defined before the New Window() launch dialog,
  • was written for JMP13 and tested on JMP 14.3 and 15.

 

image.png

 

 

 

 

  

pauldeen
Level VI

Re: Make dialog windows behave like JMP internal windows

Thanks for your comment, unfortunately that does not look like you think it does. Because I want to make maximum use of screen real estate and have JMP maximized, the non-modal window will also be maximized and that kills the styling:

Capture.PNG

Re: Make dialog windows behave like JMP internal windows

I do not have time to test this idea but you might try using another inline message in the launch of the new window:

 

nw = New Window( "Small Window", << Maximize Window( 0 ),
    // display boxes
);
pauldeen
Level VI

Re: Make dialog windows behave like JMP internal windows

Good suggestion but no, that apparently gets ignored when JMP is run maximized.
gzmorgan0
Super User (Alumni)

Re: Make dialog windows behave like JMP internal windows

@pauldeen,

Note the script can control auto stretching.  The script I sent had <<Set AutoStrectching(1,0) which allows stretching in X but not in Y.  By changing the code near line 180 to disallow autostretching in X, <<Set AutoStrectching(0,0), the maximized window will appear as shown in the picture below.  There is no "distortion."   The script was written to emulate the behavior of FitYbyX. Have you tried launching FitYbyX with a maximized window? It has autostretching in X enabled.

 

Hope that helps.  BTW, the JMP Application Buider UI displays all the attributes of each display box, so you are just choosing attributes vs. having to find the equivalent JSL message. It does take a little learning and getting use to, but it has built-in features and can make it an application. I use both ApplicationBuilder and JSL.

Good Luck.

 

 

//--Set ColListBox (clb) attributes
//Max width set at 500 to see the effect. Stretch the window horizontally, note where clb's no longer stretch
//or set to something really large like 9000.
_inputCol << Set Min Size(80,100) << Set Max Size(500,1000) << Set AutoStretching(0,0);
_yvar_clb << Set Min Size(80,25)  << Set Max Size(500,125)  << Set Auto Stretching(0,0);
_xvar_clb << Set Min Size(80,25)  << Set Max Size(500,125)  << Set Auto Stretching(0,0);  
_blk_clb  << Set Min Size(80,25)  << Set Max Size(500,125)  << Set Auto Stretching(0,0);
_wt_clb   << Set Min Size(80,25)  << Set Max Size(500,125)  << Set Auto Stretching(0,0);
_freq_clb << Set Min Size(80,25)  << Set Max Size(500,125)  << Set Auto Stretching(0,0);
_by_clb   << Set Min Size(80,25)  << Set Max Size(500,125)  << Set Auto Stretching(0,0);

 

 

 

image.png

pauldeen
Level VI

Re: Make dialog windows behave like JMP internal windows

Thanks, definitely still not the built-in behavior and i'm not a fan of all the gray that it leaves you with, but definitely a step closer and it might be the best we can do until the development team decides to expose the built-in behavior through JSL!