OOUI/Windows/fr

Un objet   est un conteneur pour les éléments d'une fenêtre fille. Chaque fenêtre est gérée par un   qui est utilisé pour ouvrir et fermer la fenêtre et contrôler son aspect. La taille des fenêtres est indiquée en utilisant un nom symbolique ('small', 'medium', 'large', ou 'full') interprété par le gestionnaire de fenêtres. Si la taille demandée n'est pas reconnue, le gestionnaire de fenêtres choisira une valeur de repli sensible.

Les fenêtres OOUI comprennent les classes Dialog (dialogues base), ProcessDialog (dialogues de processus), et MessageDialog (choix d'actions). Pour les cas d'utilisation simples, plusieurs fonctions pratiques existent. Voir les Messages simples.

Notez que les fenêtres répondent à la taille de l'équipement qui les affiche et qu'elles s'ajustent dynamiquement en conséquence. C'est pourquoi la taille du dialogue doit être considérée comme une approximation plutôt qu'une spécification exacte.



Cycle de vie des fenêtres
Les fenêtres gérées sont mutuellement exclusives. Une nouvelle fenêtre ne peut pas être ouverte tant que la fenêtre actuelle a l'état opened. Les fenêtres elles-mêmes sont persistantes et &mdash; plutôt que d'être détruites à la fermeture &mdash; elles peuvent être réinitialisées avec des données pertinentes et réutilisées. Le cycle de vie d'une fenêtre est représenté par l'objet WindowInstance. Cet objet possède quatre propriétés contenant des promesses; elles représentent les étapes primaires du cycle : 'opening', 'opened', 'closing', et 'closed'.


 * La promesse opening est satisfaite après que la fenêtre a comenncé à s'ouvrir (ceci peut être retardé si une autre fenêtre est encore en train de se fermer), avec la valeur de 'data' passée lors de l'appel de.
 * La promesse opened est satisfaite après que la fenêtre soit effectivement ouverte, avec la valeur de 'data' passée lors de l'appel de.
 * La promesse closing est satisfaite après que la fenêtre ait comenncé se fermer, avec la valeur de 'data' passée lors de l'appel de.
 * La promesse closed est satisfaite après que la fenêtre soit fermée, avec la valeur de 'data' passée lors de l'appel de.

Voir le Traitement des dialogues pour les exemples donnant l'enchaînement des promesses dans la pratique.

Pour la compatibilité arrière, les objets WindowInstance renvoyés par  et   sont étendus avec les propriétés Promise-like. Ceci sera supprimé à l'avenir.

Avant que la fenêtre ne soit ouverte pour la première fois (et uniquement avant la première fois), la méthode   est appelée. La méthode  est utilisée pour remplir la fenêtre avec un contenu persistant et  peut ainsi servir de cache. Une fenêtre contenant une liste de 250 langues peut être remplie avec cette liste durant l'initialisation par exemple, et si la fenêtre est ensuite réouverte, cette liste n'aura pas besoin d'être rechargée.



Ouverture en cours
Le palier d'ouverture commence quand on utilise la méthode  (du gestionnaire de fenêtre) ou la méthode   (de la fenêtre) pour ouvrir la fenêtre. La promesse 'opening' de WindowInstance a été tenue. Pour la compatibilité arrière, le gestionnaire de fenêtre émet un événement 'opening' avec une promesse qui sera résolue avec la promesse 'opened' lorsque la fenêtre aura été paramétrée et qu'elle sera prête et ouverte.

Le gestionnaire de fenêtre appelle ensuite la méthode  qui récupère le nombre de millisecondes qu'il faut attendre avant d'appeler la méthode   de la fenêtre et exécuter le résultat. La méthode  assemble un processus pour définir la fenêtre à l'aide des données passées à la fonction d'ouverture. A chaque fois qu'une fenêtre est réutilisée, elle peut être remplie avec de nouvelles données. Lorsque la configuration est terminée, une notification de progrès 'setup' est émise par la promesse qui a fait l'ouverture.

Le gestionnaire de fenêtre appelle ensuite la méthode  qui récupère le nombre de millisecondes à attendre entre la fin de la configuration et l'appel de la méthode   de la fenêtre et exécute le résultat. Une notification de progression 'ready' est ensuite émise par la promesse d'ouverture de la compatibilité arrière.

Ouverte
When the window is set up and ready, WindowInstance's 'opened' promise is resolved, and the backwards-compatibility 'opening' promise is resolved with a backwards-compatibility 'opened' promise. La fenêtre est maintenant ouverte. A ce moment, vous pouvez placer le focus à l'intérieur de la fenêtre.

Fermeture en cours
The closing stage begins when the window manager’s  or the window’s   method is used to close a window. La promesse 'closing' de WindowInstance a été tenue. For backwards compatibility, the window manager emits a 'closing' event and the backwards-compatibility 'opened' promise is resolved with a backwards-compatibility 'closing' promise.

The window manager calls the  method, which gets the number of milliseconds to wait before calling the window’s   method and executing the result. There is rarely a need to override this method, though one might if a window requires a long time to teardown and you wish to disable the window controls in the meantime. When the hold process is complete, a 'hold' progress notification is emitted from the backwards-compatibility closing promise.

The window manager then calls the  method, which gets the number of milliseconds to wait between finishing the hold process and calling the window’s   method and executing the result. A 'teardown' progress notification is emitted from the backwards-compatibility closing promise.

Fermée
When the teardown process is complete, WindowInstance's 'closed' promise is resolved, the backwards-compatibility closing promise is resolved. Any data passed to the  method will be passed as a resolution value to WindowInstance's 'closed' promise and the backwards-compatibility closing promise. La fenêtre est maintenant fermée.

Exemple d'utilisation de WindowInstance
Si vous voulez simplement ouvrir une fenêtre et attendre qu'elle soit fermée, utilisez :