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.
L'exécution principale de la plateforme définit une interface commune IProgressMonitor, utilisée pour rapporter à l'utilisateur la progression des opérations à long terme. Le client peut fournir un moniteur comme paramètre dans de nombreuses méthodes d'API de la plateforme 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 aux opérations dans WorkspaceModifyOperation. Cette classe simplifie l'implémentation des opérations à long terme qui modifient l'espace de travail. Elle mappe entre IRunnableWithProgress et IWorkspaceRunnable. Pour plus d'informations, reportez-vous à la documentation Java.
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.