Choose Language Hide Translation Bar
pauldeen
Community Trekker

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?

0 Kudos
6 REPLIES 6
gzmorgan0
Super User

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
Community Trekker

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

0 Kudos

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
);
Learn it once, use it forever!
0 Kudos
pauldeen
Community Trekker

Re: Make dialog windows behave like JMP internal windows

Good suggestion but no, that apparently gets ignored when JMP is run maximized.
0 Kudos
gzmorgan0
Super User

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
Community Trekker

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!
0 Kudos