Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre du Club

    Inscrit en
    mars 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : mars 2009
    Messages : 83
    Points : 62
    Points
    62

    Par défaut Progress Monitor pour un wizard

    Bonsoir

    Je cherche à utiliser une progress bar dans un wizard. Ce que je voudrais, c'est que la progress bar soit globale au wizard et avance en fonction du nombre de pages parcourues.

    J'ai pas mal cherché sur Internet mais je n'ai trouvé d'exemples que pour ajouter une progress bar au sein d'une page à la fois.

    Du coup, je suis en train de me demander s'il est possible d'utiliser le système de progress bar déjà implémenté dans le wizard pour ce que je veux faire ou bien si je dois faire autrement.

    J'ai vu qu'il existe une méthode :

    Code :
    1
    2
    3
    public void run(boolean fork,
                    boolean cancelable,
                    IRunnableWithProgress runnable)
    pour la classe wizardDialog mais je n'ai pas trouvé comment l'utiliser pour obtenir ce que je veux.

    Merci pour votre aide

  2. #2
    Membre du Club

    Inscrit en
    mars 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : mars 2009
    Messages : 83
    Points : 62
    Points
    62

    Par défaut

    Salut

    J'ai eu confirmation que le mécanisme de progressMonitor du wizard n'était pas utilisable pour suivre l'ensemble de ses pages. J'ai donc contourné le problème en ajoutant un widget progressbar dans mes page et en calculant l'avancement pour chaque page par rapport à sa position dans la liste des pages du wizard

    Dans la méthode createControls de ma classe WizardPage :

    Code :
    1
    2
    3
    4
    5
    6
    7
     
    ProgressBar bar = new ProgressBar(mainSashForm, SWT.NULL);
    int maximum = getWizard().getPageCount();
    bar.setMaximum(maximum);
    bar.setMinimum(0);
    bar.setSelection(getPagePosition());
    bar.setSize(800, 20);
    et le code de la méthode getPagePosition() :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private int getPagePosition() {
    	int position = 0;
    	IWizardPage[] pages = getWizard().getPages();
    	IWizardPage currentPage = this;
    	for (int i = 0; i < pages.length ; i++) {
    		if (pages[i].equals(currentPage)) {
    			position = i+1;
    			break;
    		}
    	}
    	return position;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •