2017-05-02 3 views
1

J'ai créé un nouvel assistant en utilisant le point d'extension org.eclipse.ui.newWizard. Il crée un nouveau fichier sous le package sélectionné.Arrêt conditionnel de l'affichage de l'org.eclipse.ui.newWizard

Maintenant, j'ai besoin d'afficher un message d'erreur et Ne pas afficher l'assistant si l'utilisateur ne sélectionne pas un package. Ma méthode getSelectedPackage() renvoie le package currunt si cette option est sélectionnée, sinon renvoie null.

Tout fonctionne comme prévu sauf performCancel(). Il affiche le message d'erreur, puis la boîte de dialogue de l'assistant.

Quelqu'un peut-il me suggérer comment arrêter d'afficher l'assistant de manière conditionnelle?

public class NewTestScriptWizard extends Wizard implements INewWizard { 

public NewTestScriptWizard() { 
    super(); 
    setNeedsProgressMonitor(true); 
    if(getSelectedPackage()== null){ 
     MessageDialog 
       .openError(getShell(), "Error","You must select a package to create a new file"); 
    performCancel(); 
    } 
} 

Répondre

1

Il est impossible d'arrêter la création de l'assistant à ce stade. performCancel ne fait rien lorsqu'il est appelé comme ça.

La seule chose à faire est d'afficher un message d'erreur dans la première page de l'assistant (avec setMessage ou setErrorMessage) et définir la page incomplète (avec setPageComplete(false) afin que cancel ne peut être pressé.

+0

Merci @ greg pour ton commentaire comme toujours! –