Opérations à long-terme

Le package org.eclipse.jface.operations définit des interfaces pour les opérations à long terme qui nécessitent des indicateurs de progression ou qui permettent à l'utilisateur d'annuler l'opération. Ces interfaces sont utilisées pour l'implémentation des boîtes de dialogue de progression du plan de travail et celle des vues.

En général, les plugs-ins utilisent le support du plan de travail fourni dans IProgressService pour l'exécution d'opérations à long terme, de sorte que tous les plug-ins auront une présentation cohérente de la progression. Voir Support concurrent du plan de travail pour une description complète des supports disponibles pour les boîtes de dialogue de progression et les vues. Le reste de la description détaille l'infrastructure des opérations JFace utilisée par le plan de travail.

Exécutables et progression

L'exécution de la plate-forme définit une interface commune, IProgressMonitor, qui est utilisée pour signaler la progression à l'utilisateur lorsque des opérations d'exécution longues sont en cours. Le client peut fournir un moniteur comme paramètre dans de nombreuses méthodes d'API de la plate-forme lorsqu'il est important de montrer la progression à l'utilisateur.

JFace définit des interfaces plus spécifiques pour les objets qui implémentent l'interface utilisateur pour un moniteur de progression. 

IRunnableWithProgress est l'interface pour une opération à long terme. La méthode run pour cette interface dispose d'un paramètre IProgressMonitor utilisé pour rapporter la progression et l'éventuelle annulation par l'utilisateur.

IRunnableContext est l'interface pour les différents endroits de l'interface utilisateur où la progression peut être rapportée. Les classes qui implémentent cette interface peuvent choisir d'utiliser des techniques différentes pour montrer la progression et l'exécution de l'opération. Par exemple, ProgressMonitorDialog implémente cette interface en affichant une boîte de progression. IWorkbenchWindow implémente cette interface en affichant la progression sur la ligne d'état de la fenêtre du plan de travail. WizardDialog implémente cette interface pour montrer les opérations à long terme sur la ligne d'état de l'assistant.

Remarque :  l'interface utilisateur du plan de travail fournit un support supplémentaire des opérations via WorkspaceModifyOperation. Cette classe simplifie l'implémentation des opérations à long terme qui modifient l'espace de travail. Elle mappe IRunnableWithProgress et IWorkspaceRunnable.  Pour plus de détails, reportez-vous à javadoc.

Opérations modales

La classe ModalContext est fournie pour exécuter une opération modale de la perspective du code client. Elle est utilisée dans les différentes implémentations de IRunnableContext. Si votre plug-in doit attendre la fin d'une opération longue avant de poursuivre son exécution, ModalContext peut être utilisé pour accomplir cette tâche tout en gardant l'interface utilisateur réactive.

Lorsque vous exécutez une opération dans un contexte modal, vous pouvez choisir de dupliquer (fork) l'opération dans une autre unité d'exécution. Si la valeur de fork est "false", l'opération sera exécutée dans l'unité d'exécution appelante. En revanche, si la valeur de fork est "true", l'opération s'exécutera dans une nouvelle unité d'exécution, l'unité appelante sera bloquée et la boucle d'événements de l'interface utilisateur s'exécutera jusqu'à ce que l'opération s'achève.

Pour plus d'informations sur la boucle d'événements de l'interface utilisateur, reportez-vous à la section Remarques relatives au traitement multiple.