Fenêtre modale - Suppression d'un bouton "Aide" indésirableBonjour, j’ai besoin d’intégrer le générateur de graphes dans un tableau de bord plus grand dans une fenêtre modale - ce qui est facile à faire, mais il semble qu’un bouton "Aide" (fournissant un lien vers la page "Zones de graphes" du site Web JMP) est disponible. étant automatiquement ajouté au bas de la fenêtre. Je ne le veux pas là-bas, mais je ne vois pas comment l'empêcher d'apparaître.
Le petit script suivant illustre le problème. Dans celui-ci, je crée trois fenêtres successives, les deuxième et troisième étant des fenêtres modales (la troisième n'est donc pas créée tant que la seconde n'est pas fermée). Les première et deuxième fenêtres n’ajoutent pas de bouton "Aide", alors que la troisième ne:
// 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>
Quelqu'un peut aider? (J'utilise JMP 14, au cas où cela serait pertinent)
Fenêtre Re: Modal - Suppression d'un bouton "Aide" indésirableBonjour à vous deux - ce dernier exemple fonctionne parfaitement et constitue une démonstration utile de plusieurs fonctionnalités (comme les options << Child, Xpath et Visibility) que je n’avais pas explorées correctement. L’utilisation d’une fenêtre modale est essentielle dans ce cas, car j’ai vraiment besoin que l’utilisateur fournisse des informations à ce stade de mon script avant de pouvoir procéder à l’analyse.
Juste pour le compte rendu, je assumé il devrait exister une option "<< on open ()" correspondant à "<< on close ()", et a ensuite localisé une référence à cette référence dans le fichier PDF de référence de syntaxe JSL à partir de l'élément "Livres" du menu Aide, mais je n'ai pas pu en créer un qui semblait faire quoi que ce soit. Je n'aurais certainement pas pu y arriver sans cet exemple.
Merci beaucoup!
Fenêtre Re: Modal - Suppression d'un bouton "Aide" indésirableCameron était sur la bonne voie. Il doit y avoir des boutons cachés. J'ai ajouté une légende pour montrer combien.
Essaye ça. Au fait, j'aime bien créer l'objet dans une zone d'affichage, puis l'ajouter (voir glb). J'ai ajouté le script OnOpen () au script d'origine et l'ai assemblé sous forme de fichier.
// 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>
Fenêtre Re: Modal - Suppression d'un bouton "Aide" indésirableLe problème avec les fenêtres modales est que vous ne pouvez pas exécuter de JSL supplémentaire tant que l'utilisateur n'a rien fait. Je pensais que vous pourriez peut-être accéder à l’arborescence de l’affichage et supprimer le bouton en utilisant << On Open () juste après << modal. Cependant, cela ne semble pas l’aimer. J'ai d'abord essayé la navigation traditionnelle dans l'arborescence d'affichage:
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" ) ) );
Cela a renvoyé une erreur sur le fait de ne pas être en mesure d'indiquer Current Window (), qui semble renvoyer une référence au HeadBox (aucune documentation sur les méthodes de la boîte de tête ne peut être trouvée, même si elle est sûre).
Et puis avec 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" ) ) );Les deux n'ont rien fait, et après le xpath, il renvoie une référence à la boîte à boutons (assez étrange).
Pouvez-vous vous en tirer sans rendre la fenêtre modale? J'essaie généralement de les éviter parce qu'ils ont tendance à être odieux (par exemple, les utilisateurs ne peuvent pas comprendre pourquoi ils ne peuvent pas ouvrir une autre fenêtre parce qu'ils n'ont pas appuyé sur OK ou sur Annuler sur une fenêtre modale quelque part).