I am interested in utilizing the Column Switcher in Graph Builder to where I select a column within the Column Switcher, and it dynamically sets the corresponding data table's column as a "label" column. It should also "unlabel" any previously labeled data table columns no longer selected within the Column Switcher. Is there a way this can be accomplished? I am using JMP version 19.
Using a Make Column Switch Handler, you should be able to add the JSL required to make your required changes when the Column Switcher is used. See the Scripting Index for a description of and example of the Make Column Switch Handler.
Thanks Jim. I adapted the example script in the Scripting Index for "Make Column Switch Handler" and this code seems to work for what I was looking for:
dt = Open( "$SAMPLE_DATA/Process Measurements.jmp" );
gb = Graph Builder( Variables( Y( :Process 1 ) ), Elements( Histogram( Y, Legend( 3 ) ) ) );
dt << Clear Column Selection();
columnSwitcher = gb << Column Switcher(
:Process 1,
{:Process 1, :Process 2, :Process 3, :Process 4, :Process 5, :Process 6, :Process 7}
);
dt << Set Label Columns();
dt << Set Label Columns( :Process 1 );
pre = Function( {currentColumn, nextColumn, switcher},
Print(
"Before switch: " || (currentColumn << get name) || " >> " || (nextColumn << get name) ||
" [Column Switcher] current: " || (columnSwitcher << Get Current)
);
currentColumn << Label( 1 );
);
post = Function( {previousColumn, currentColumn, switcher},
Print(
"After switch: " || (previousColumn << get name) || " >> " || (currentColumn << get name) ||
" [Column Switcher] current: " || (columnSwitcher << Get Current)
);
previousColumn << Label( 0 );
currentColumn << Label( 1 );
);
handler = columnSwitcher << Make Column Switch Handler( pre, post );