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.
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.
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.