Operações de Longa Execução

O pacote org.eclipse.jface.operations define interfaces para as operações de longa execução que precisam de indicadores de progresso ou permitem que o usuário cancele a operação.

Executáveis em progresso

O tempo de execução do núcleo da plataforma define uma interface comum,IProgressMonitor, que é utilizada para informar o progresso ao usuário enquanto as operações de longa execução estiverem em progresso. O cliente pode fornecer um monitor como um parâmetro em muitos métodos API de plataforma quando for importante mostrar o progresso ao usuário.

O JFace define as interfaces mais específicas para objetos que implementam a interface do usuário para um monitor de progresso. 

IRunnableWithProgress é uma interface para uma operação de longa execução.  O método executar para esta interface possui um parâmetroIProgressMonitor que é utilizado para informar o progresso e verificar o cancelamento feito pelo usuário.

IRunnableContext é uma interface para locais diferentes na UI onde o progresso pode ser informado.  As classes que implementam essa interface podem escolher utilizar técnicas diferentes para mostrar o progresso e a operação em execução.  Por exemplo, ProgressMonitorDialog implementa essa interface mostrando um diálogo de progresso.  IWorkbenchWindow implementa essa interface mostrando o progresso na linha de status da janela do workbench.  WizardDialog implementa essa interface para mostrar as operações de longo tempo de execução dentro da linha de status do assistente.

Nota:  a UI do workbench fornece suporte adicional às operações emWorkspaceModifyOperation.  Essa classe simplifica a implementação das operações de longa execução que modificam a área de trabalho.  Isso mapeia entreIRunnableWithProgress eIWorkspaceRunnable.  Consulte o javadoc para obter mais detalhes.

Operações de modo

A classe ModalContext é fornecida para executar uma operação de modo a partir da perspectiva do código do cliente. É utilizada dentro de implementações diferentes do IRunnableContext.  Se seu plug-in precisar aguardar a conclusão de uma operação de longo tempo de execução antes de continuar a execução, oModalContext pode ser utilizado para acoplar isso enquanto ainda mantiver a interface do usuário respondendo.

Quando escutar uma operação em um modo complexo, é possível escolher bifurcar a operação em um encadeamento diferente. Se o bifurcamento for falso, a operação será executada no encadeamento chamado.  Se o bifurcamento for verdadeiro,  a operação será executada em um novo encadeamento; o encadeamento chamado será bloqueado e o loop do evento da UI será executado até que a operação termine.  

Para obter mais informações sobre o loop de evento da UI, consulte Problemas de encadeamento para clientes.