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èssion '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
Lorsque la fenêtre est configurée et prête, la promesse 'opened' de WindowInstance est tenue, et la promesse de la compatibilité arrière 'opening' est tenue avec la promesse de compatibilité arrière 'opened'. La fenêtre est maintenant ouverte. A ce moment, vous pouvez placer le focus à l'intérieur de la fenêtre.

Fermeture en cours
Le palier de fermeture commence quand la méthode  du gestionnaire de fenêtre ou la méthode   de la fenêtre sont utilisées pour fermer une fenêtre. La promesse 'closing' de WindowInstance a été tenue. Pour la compatibilité arrière, le gestionnaire de fenêtre émet un événement 'closing' et la promesse de compatibilité arrière 'opened' est résolue avec une promesse de compatibilité arrière 'closing'.

Le gestionnaire de fenêtre appelle la méthode  qui récupère le nombre de millisecondes à attendre avant d'appeler la méthode   de la fenêtre et exécute le résultat. Il est rarement utile de redéfinir cette méthode, bien que cela soit possible si une fenêtre demande un certain temps avant de disparaître et que vous souhaitez désactiver ses contrôles entre temps. Quand le processus 'hold' est terminé, une notification de progression 'hold' est émise par la promesse de fermeture de la compatibilité arrière.

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

Fermée
Une fois que la fenêtre est détruite, la promesse 'closed' de WindowInstance est résolue, la promesse de compatibilité arrière de fermeture est tenue. Toute donnée passée à la méthode  sera passée en tant que valeur de résolution à la promesse 'closed' de WindowInstance et à la promesse de fermeture de la compatibilité arrière. 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 :