El paquete org.eclipse.jface.operations define interfaces para las operaciones de ejecución prolongada que requieren indicadores de progreso o permiten que el usuario cancele la operación. Estas interfaces se utilizan en la implementación de los diálogos y vistas de progreso del entorno de trabajo.
En general, los conectores deben utilizar el soporte del entorno de trabajo proporcionado en IProgressService para ejecutar largas operaciones, de manera que todos los conectores tendrán una presentación coherente del progreso. Consulte Soporte de concurrencia de entorno de trabajo para obtener un análisis completo del soporte disponible de diálogos y vistas de progreso. El resto de este análisis resalta los detalles de la infraestructura de operaciones JFace que el entorno de trabajo utiliza.
El entorno de ejecución de la plataforma define una interfaz común, IProgressMonitor, utilizada para comunicar al usuario el progreso de las operaciones de ejecución prolongada en curso. El cliente puede proporcionar un supervisor como parámetro en muchos métodos de las API de la plataforma cuando es importante mostrar el progreso al usuario.
JFace define interfaces más específicas para los objetos que implementan la interfaz de usuario de un monitor de progreso.
IRunnableWithProgress es la interfaz destinada a las operaciones de larga ejecución. El método run de esta interfaz tiene un parámetro IProgressMonitor que sirve para informar del progreso y comprobar si el usuario ha efectuado una cancelación.
IRunnableContext es la interfaz destinada a los diversos lugares de la UI en los que puede informarse del progreso. Las clases que implementan esta interfaz pueden optar por utilizar técnicas diferentes 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 la línea de estado de la ventana del entorno de trabajo. WizardDialog implementa esta interfaz para mostrar las operaciones de larga ejecución en la línea de estado del asistente.
Nota: la UI del entorno de trabajo proporciona soporte adicional para las operaciones en WorkspaceModifyOperation. Esta clase simplifica la implementación de operaciones de larga ejecución que modifican el área de trabajo. Efectúa la correlación entre IRunnableWithProgress e IWorkspaceRunnable. Consulte el javadoc para obtener más detalles.
Se proporciona la clase ModalContext para ejecutar una operación que sea 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 larga ejecución 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 optar por bifurcar (método fork) la operación en una hebra distinta. Si fork es falso, la operación se ejecutará en la hebra llamante. Si fork es verdadero, la operación se ejecutará en una hebra nueva, se bloqueará la hebra llamante, y el bucle de eventos de la UI se ejecutará hasta que la operación termine.
Para obtener más información sobre el bucle de eventos de la UI, consulte
Aspectos de las hebras para los
clientes.