It's difficult to get around the resizing issue from a programming perspective because resizing of display boxes is inherent to the the JMP user interface. On balance I think it's really useful e.g. stretching a list box when you have a large number of items, or items with long names. But it can make life hard when you are trying to design an aesthetically pleasing interface. Splitter boxes can help, although they also tend to encourage the users to resize the split components! If you want to have a single window containing both user dialog and output elements then I think you need to think about the level of interaction. I often have this type of configuration where the dialog is for relatively infrequent interactions. My preferred approach is to have a button on the window which acts as a toggle to turn the dialog on or off:
(report window with no dialog - the left centre button 'options' will toggle the dialog on)
(report window with dialog turned on)
At the most basic level this consists of two pieces of content aligned with an H List Box.
To close the dialog either the content size can be set to zero or the content can be deleted (the dialog values can be cached in a namespace for easy reloading).
A simpler solution is to use an Outline Box horizontally aligned with your content:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dialog = V List Box(
Outline Box("Demo Dialog",
<< Outline Close Orientation("Vertical"),
Lineup Box(NCol(2),Spacing(10),
Text Box("Label 1"),
Text Edit Box("value 1"),
Text Box("Label 2"),
Text Edit Box("value 2"),
)
)
);
content = V List Box(
Bivariate( Y( :weight ), X( :height ) )
);
New Window("Report With Dialog",
H List Box(
dialog,
Spacer Box(Size(10,0)),
content
)
);
The message Outline Close Orientation allows the content to collapse to the side of the window:
- Just some ideas.
Dave
-Dave