Question

J'écris un assistant pour une application Eclipse RCP.Après avoir effectué un traitement sur un fichier et pris en compte certaines entrées de l'utilisateur, je ne veux pas laisser l'utilisateur revenir en arrière pour apporter des modifications.À ce stade, ils doivent soit accepter, soit rejeter les changements qu’ils s’apprêtent à apporter au système.

Ce que je n'arrive pas à trouver, c'est un appel de méthode qui me permet de remplacer les boutons qui s'affichent ou la capacité de l'utilisateur à appuyer sur le bouton de retour.Je préférerais qu'il ne soit pas là ou au moins qu'il soit désactivé.

Quelqu'un a-t-il trouvé un moyen de le faire en utilisant le Assistant JFace et Page Assistant?

Du point de vue de la convivialité, est-ce que je brise les conventions des assistants ?Dois-je envisager une approche différente du problème ?

Était-ce utile?

La solution

Vous pouvez renvoyer null à partir de la méthode getPreviousPage() dans l'implémentation de votre page d'assistant.

Autres conseils

Développer la réponse de Jodonell :

La désactivation du bouton Précédent est plus difficile qu'elle ne devrait l'être, en raison du comportement non intuitif de l'implémentation par défaut de WizardPage.getPreviousPage().Vous pouvez appeler setPreviousPage( null ) et getPreviousPage() renvoie toujours la page précédente.Vous devez remplacer l'implémentation de getPreviousPage() afin de désactiver le bouton de retour :

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();
    }
}

Consultez mon article de blog pour quelques autres trucs et astuces de l'assistant JFace :

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

Du point de vue de l'interface utilisateur, cela semble plutôt mauvais.Vos utilisateurs seront frustrés s'ils font une erreur et veulent revenir en arrière et la corriger et que vous ne les laissez pas.Je pense qu'il serait bien préférable de modifier l'application pour permettre le retour en arrière plutôt que de chercher des moyens de l'empêcher.

Il n'existe aucun moyen de le faire à l'aide des API standard de l'assistant JFace.Mon équipe a accompli cela en écrivant un WizardDialog personnalisé.Nous l'avons fait sur une application Eclipse RCP et non sur un plugin Eclipse.La désactivation du bouton de retour rompt avec les conventions, mais nos analystes commerciaux voulaient vraiment cette fonctionnalité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top