Pergunta

Estou escrevendo um assistente para um aplicativo Eclipse RCP.Depois de fazer algum processamento em um arquivo e receber algumas informações do usuário, não quero permitir que o usuário volte para fazer alterações.Neste ponto, eles devem aceitar ou rejeitar as alterações que estão prestes a fazer no sistema.

O que não consigo encontrar é uma chamada de método que me permita substituir os botões exibidos ou a capacidade do usuário de pressionar o botão Voltar.Eu preferiria que não estivesse lá ou pelo menos estivesse desativado.

Alguém encontrou uma maneira de fazer isso usando o Assistente JFace e Página do Assistente?

Em termos de usabilidade, estou quebrando as convenções do assistente?Devo considerar uma abordagem diferente para o problema?

Foi útil?

Solução

Você pode retornar nulo do método getPreviousPage() na implementação da página do assistente.

Outras dicas

Expandindo a resposta de Jodonell:

Desativar o botão Voltar é mais difícil do que deveria, devido ao comportamento não intuitivo na implementação padrão de WizardPage.getPreviousPage().Você pode chamar setPreviousPage( null ) e getPreviousPage() ainda retornará a página anterior.Você precisa substituir a implementação de getPreviousPage() para desativar o botão Voltar:

public abstract class MyWizardPage extends WizardPage {
    private boolean backButtonEnabled = true;

    public void setBackButtonEnabled(boolean enabled) {
        backButtonEnabled = enabled;
        getContainer().updateButtons();
    }

    @Override
    public IWizardPage getPreviousPage() {
        if (!backButtonEnabled) {
            return null;
        }
        return super.getPreviousPage();
    }
}

Veja minha postagem no blog para mais algumas dicas e truques do assistente JFace:

http://nsawadsky.blogspot.com/2011/07/jface-wizard-tips-and-tricks.html

Do ponto de vista da interface do usuário, isso parece bastante ruim.Seus usuários ficarão frustrados se cometerem um erro e quiserem voltar e corrigi-lo e você não permitir.Acho que seria muito melhor alterar o aplicativo para permitir o retrocesso, em vez de procurar formas de evitá-lo.

Não há como fazer isso usando APIs padrão do assistente JFace.Minha equipe conseguiu isso escrevendo um WizardDialog personalizado.Fizemos isso em um aplicativo Eclipse RCP e não em um plugin Eclipse.Desativar o botão Voltar é quebrar as convenções, mas nossos analistas de negócios realmente queriam a funcionalidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top