Operaciones de ejecución prolongada

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.

Ejecutables y progreso

El código de tiempo de ejecución del núcleo de la plataforma define una interfaz común, IProgressMonitor, que permite comunicar al usuario cómo avanzan 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 y IWorkspaceRunnable.  Consulte el javadoc para obtener más detalles.

Operaciones modales

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.

Copyright IBM Corporation y otros 2000, 2003.