Ventana modal: eliminar un botón de "Ayuda" no deseadoHola: necesito incorporar Graph Builder en un panel de control más grande dentro de una ventana modal, lo cual es fácil de hacer, pero parece que hay un botón "Ayuda" (que proporciona un enlace a la página "Graph Zones" del sitio web de JMP) se agrega automáticamente a la parte inferior de la ventana. No lo quiero allí, pero no puedo averiguar cómo evitar que aparezca.
La siguiente secuencia de comandos ilustra el problema. En él, creo tres ventanas seguidas, la segunda y la tercera son ventanas modales (de modo que la tercera no se crea hasta que la segunda se cierra). La primera y la segunda ventana no agregan un botón de "Ayuda", mientras que la tercera sí lo hace:
// Open Big Class, and minimize it to get it out of the way;
Open( "$SAMPLE_DATA/Big Class.jmp" );
Current Data Table() << minimize window( 1 );
tb = Text Box( "Hello World!" );
// Create an expression that produces a simple chart from Big Class;
gb = Expr(
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
)
);
// Now produce three different types of window to show what happens;
New Window( "Ordinary Window with TextBox, Graph Builder and OK Button", V List Box( tb, gb, Button Box( "OK" ) ) );
New Window( "Modal Window with TextBox and OK Button", <<MODAL></MODAL>
¿Alguien puede ayudar? (Estoy usando JMP 14, en caso de que esto sea relevante)
Re: Ventana modal: eliminar un botón de "Ayuda" no deseadoHola a los dos: el último ejemplo funciona perfectamente y es una demostración realmente útil de varias características (es decir, las opciones << Niño, Xpath y Visibilidad) que no he explorado correctamente anteriormente. El uso de una ventana modal es bastante esencial en este caso, ya que realmente necesito que el usuario proporcione cierta información en ese momento en mi script antes de que pueda continuar el análisis.
Sólo para que conste, yo ficticio debe haber una opción "<< en abrir ()" que corresponda a "<< en cerrar ()", y luego ubicar una referencia a ella en el PDF de referencia de sintaxis JSL del elemento "Libros" en el menú Ayuda, pero no pude crear uno que pareciera hacer nada. Ciertamente no hubiera podido llegar sin este ejemplo.
¡Muchas gracias!
Re: Ventana modal: eliminar un botón de "Ayuda" no deseadoCameron estaba en el camino correcto. Debe haber cajas de botones ocultas. He añadido un título para mostrar cuántos.
Prueba esto. Por cierto, me gusta crear el objeto en un cuadro de visualización y luego agregarlo (ver glb). Agregué el script OnOpen () al script original y lo conecté como un archivo.
// Open Big Class, and minimize it to get it out of the way;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Current Data Table() << minimize window( 1 );
tb = Text Box( "Hello World!" );
// Create an expression that produces a simple chart from Big Class;
glb = V List Box(gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
)
New Window( "Modal Window with TextBox, Graph Builder & OK Button", <<MODAL></MODAL>
Re: Ventana modal: eliminar un botón de "Ayuda" no deseadoEl problema con las ventanas modales es que no puede ejecutar ningún JSL adicional hasta que el usuario haga algo. Pensé que podría navegar al árbol de visualización y eliminar el botón usando << En Abrir () justo después de << modal. Sin embargo, no parece gustarle. Probé primero la navegación de árbol de visualización tradicional:
New Window( "Modal Window with TextBox, Graph Builder & OK Button", << modal, << On Open( Current Window()[Button Box(2)] << Delete), V List Box( tb, gb, Button Box( "OK" ) ) );
Esto devolvió un error acerca de no poder subíndicar Current Window (), que parece devolver una referencia al HeadBox (no se puede encontrar ninguna documentación sobre los métodos en el cuadro de cabecera, ni siquiera estoy seguro de qué es).
Y luego con xpath:
New Window( "Modal Window with TextBox, Graph Builder & OK Button", << modal, << On Open( (Current Window() << xpath("//ButtonBox[ text() = 'Help']")) << Delete), V List Box( tb, gb, Button Box( "OK" ) ) );Ambos fallaron en hacer algo, y después de xpath, devuelve una referencia al cuadro de botón (bastante extraño).
¿Puedes arreglártelas sin hacer la ventana modal? Por lo general, trato de evitarlos porque tienden a ser molestos (por ejemplo, los usuarios no pueden entender por qué no pueden abrir otra ventana porque no han presionado Aceptar o Cancelar en una ventana modal en algún lugar).