El paquete org.eclipse.jface.operations define interfaces para operaciones de ejecución prolongada que requieren indicadores de progreso o permiten que el usuario cancele la operación.
El tiempo de ejecución del núcleo de la plataforma define una interfaz común, IProgressMonitor, que se utiliza para informar del progreso al usuario mientras hay operaciones de ejecución prolongada en progreso. El cliente puede proporcionar un monitor como un parámetro en muchos métodos de la API de la plataforma cuando es importante mostrar el progreso al usuario.
JFace define interfaces más específicas para objetos que implementan la interfaz de usuario para un monitor de progreso.
IRunnableWithProgress es la interfaz para una operación de ejecución prolongada. El método run para esta interfaz tiene un parámetro IProgressMonitor que se utiliza para informar del progreso y comprobar si el usuario ha efectuado una cancelación.
IRunnableContext es la interfaz para los diferentes lugares de la UI en los que puede informarse del progreso. Las clases que implementan esta interfaz pueden elegir diferentes procedimientos para mostrar el progreso y ejecutar la operación. Por ejemplo, ProgressMonitorDialog implementa esta interfaz mostrando un diálogo de progreso. IWorkbenchWindow implementa esta interfaz mostrando el progreso en una línea de estado de la ventana del entorno de trabajo. WizardDialog implementa esta interfaz para mostrar operaciones de ejecución prolongada en la línea de estado del asistente.
Nota: La UI del entorno de trabajo proporciona soporte adicional para operaciones en WorkspaceModifyOperation. Esta clase simplifica la implementación de operaciones de ejecución prolongada que modifican el espacio de trabajo. Correlaciona IRunnableWithProgress y IWorkspaceRunnable. Consulte el javadoc para obtener información más detallada.
La clase ModalContext se proporciona para ejecutar una operación que es modal desde el punto de vista del código del cliente. Se utiliza dentro de las distintas implementaciones de IRunnableContext. Si el conector ha de esperar a que concluya una operación de ejecución prolongada antes de continuar con la ejecución, puede utilizarse ModalContext para que esto se lleve a cabo mientras se sigue manteniendo la respuesta de la interfaz del usuario.
Cuando ejecuta una operación en un contexto modal, puede efectuar fork para dicha operación en una hebra distinta. Si fork es falso, la operación se ejecutará en la hebra de llamada. Si fork es verdadero, la operación se ejecutará en una hebra nueva, se bloqueará la hebra de llamada y el bucle de eventos de la UI se ejecutará hasta que la operación finalice.
Para obtener más información sobre el bucle de eventos de la UI, consulte Aspectos de las hebras ara clientes.