IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Changer de vue


Sujet :

SWT/JFace Java

  1. #41
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    tu peux me donner la stacktrace stp ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  2. #42
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Voici la stacktrace :

    java.lang.NullPointerException
    at org.eclipse.jface.dialogs.DialogPage.setVisible(DialogPage.java:470)
    at com.eclipse.rcp.jlistconf.view.Parametrages.showPage(Parametrages.java:262)
    at com.eclipse.rcp.jlistconf.view.Parametrages.nextPressed(Parametrages.java:193)
    at com.eclipse.rcp.jlistconf.view.Parametrages.buttonPressed(Parametrages.java:174)
    at com.eclipse.rcp.jlistconf.view.Parametrages$3.widgetSelected(Parametrages.java:149)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at com.eclipse.rcp.jlistconf.Application.start(Application.java:20)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

  3. #43
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    ok, ce qu'il manque c'est le control dans la page

    il n'est créé qu'à la demande, modifie showPage de cette matnière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public void showPage(IWizardPage page) {
    		if (page != currentPage) {
    			IWizardPage old = currentPage;
    			currentPage = page;
                            Control pageControl=currentPage.getControl();
                            if ( pageControl==null ) {
                                 currentPage.createControl(container);
                                 pageControl = currentPage.getControl();
                            }
    			layout.topControl =  pageControl;
     
    			if( old != null ) {
    				old.setVisible( false );
    			}
    			currentPage.setVisible( true );
    			container.layout();
    			update();
    		}
    	}
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #44
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Ok je n'ai plus l'exception. Par contre d'après mes tests la page change mais les composants restent les mêmes.

  5. #45
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    à la place de container.layout() dans showPage essaye juste de faire

    getShell().layout(true, true);
    juste pour voir
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #46
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Ca affichait la seconde page mais en dessous de la première (lorsque je clique sur next). Au final tous les composants sont sur la même page.

  7. #47
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    y'a un problème de layout quelque part, faut que tu me redonnes le code de ta méthode createPartControl(Composite parent) de ta vue
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #48
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Ouai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public void createPartControl(Composite parent) {
     
    		viewcomposite = new Composite (parent, SWT.NONE);
    		viewcomposite.setLayout(new GridLayout());
    		container = new Composite(viewcomposite, SWT.NONE);
    		layout = new StackLayout();
    		container.setLayout(layout);
    		myWizard = new MyWizard(container){
    			@Override
    			public IWizardContainer getContainer() {
    				return Parametrages.this;
    			}
    		};
    		myWizard.addPages();
    		parent.addDisposeListener( new DisposeListener() {
     
    			public void widgetDisposed(DisposeEvent e) {
    				myWizard.dispose();
    			}
     
    		} );
     
    		showStartingPage();
    		GridData buttonBarGD = new GridData(GridData.FILL_HORIZONTAL);
    		buttonBarGD.grabExcessVerticalSpace = true;
    		buttonBarGD.horizontalIndent = 640;
    		createButtonBar(viewcomposite).setLayoutData(buttonBarGD);
    	}

  9. #49
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    tout est ok dans cette méthode.

    donc le problème vient de ta création de page, je vois pas autre chose

    tu as des classes (une par page, donc par étape) qui étendent directement WizardPage ou mieux une classe du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public abstract class AbstractWizardPage extends WizardPage {
    }
    avec une méthode du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public void createControl(Composite parent) {
     
                   // attention : il est important de ne pas modifier le layout de parent, puisqu'il s'agit du composite référencé par container dans la vue, donc un composant qui doit rester layouté par un stacklayout
     
    		Composite control = new Composite( parent, SWT.NONE );
     
                    // par défaut, on met un FillLayout, mais la méthode createPageControls peut modifier ce layout en fonction de ses besoins
                    control.setLayout(new FillLayout());
     
                    // on délègue la construction des composants de la page à une sous méthode
    		createPageControls( control );
     
    		// mandatory
    		setControl( control );
     
    	}
     
    protected abstract void createPageControls(Composite pageComposite);
    et dans l'implémentation,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class MyPage1 extends AbstractWizardPage {
     
          ...
     
          protected void createPageControls(Composite pageComposite) {
     
                      // ici on peut modifier le layout global de la page, par exemple un TableColumnLayout
                      // pageComposite.setLayout(new TableColumnLayout());
     
                      table = new Table(pageComposite,...);
     
                      ...
     
          } 
     
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #50
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Bhe ouai :s

    Par exemple pour ma première page j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    public class MyPageOne extends WizardPage {
     
     
      private Text textLieu = null;
    	private Text textMat = null;
    	private Label labelListMat = null;
    	private Table tableMat = null;
    	private Composite parent = null;
      private Composite container;
      private ParametrageControllerWPageOne parametrageControllerWPageOne = null;
     
     
     
      public MyPageOne(Composite container) {
     
        super("First Page");
        parametrageControllerWPageOne = new ParametrageControllerWPageOne(this);
        this.container = container;
     
      }
     
     
     
      public void createControl(Composite parent) {
     
    	  System.out.println("1er Page");
    	  setTitle("Sélection du lieu de l'affaire");
     
    	  setDescription("Wizard jListConf. Sélection de l'affaire");
    	  this.parent = this.container;
     
    		GridLayout layout = new GridLayout();
    		container.setLayout(layout);
    		layout.numColumns = 3;
    		layout.marginLeft = 300;
     
    		Label labelTitre = new Label(container,SWT.NONE);
    		labelTitre.setText("Sélection du lieu de l'affaire et des matrices de test");
    		labelTitre.setFont(new Font(null,"Arial",14,0));
    		GridData titreGD = new GridData(GridData.FILL_HORIZONTAL);
    		titreGD.horizontalSpan = 3;
    		titreGD.heightHint = 70;
    		labelTitre.setLayoutData(titreGD);
     
    		Label labelLieu = new Label(container, SWT.NONE);
    		labelLieu.setText("Lieu de l'affaire : ");
    		labelLieu.setFont(new Font(null,"Arial",10,0));
    		labelLieu.setToolTipText("Indiquer le dossier racine de l'affaire");
    		textLieu = new Text(container, SWT.BORDER);
    		textLieu.setText("Chemin de l'affaire");
    		textLieu.setFont(new Font(null,"Arial",10,0));
    		textLieu.setEditable(false);
    		GridData affaireGD = new GridData(GridData.CENTER);
    		affaireGD.widthHint = 300;
    		textLieu.setLayoutData(affaireGD);
    		Button btnLieuAffaire = new Button(container, SWT.NONE);
    		btnLieuAffaire.setText("...");
    		btnLieuAffaire.addSelectionListener(new AffaireSelectionListenerW(parametrageControllerWPageOne));
     
    		Label labelMat = new Label(container, SWT.NONE);
    		labelMat.setText("Lieu des matrices de test : ");
    		labelMat.setFont(new Font(null,"Arial",10,0));
    		labelMat.setToolTipText("Indiquer le dossier racine des matrices de test");
    		textMat = new Text(container, SWT.BORDER);
    		textMat.setText("Chemin des matrices de test");
    		textMat.setFont(new Font(null,"Arial",10,0));
    		textMat.setEditable(false);
    		affaireGD.widthHint = 300;
    		textMat.setLayoutData(affaireGD);
    		Button btnLieuMat = new Button(container, SWT.NONE);
    		btnLieuMat.setText("...");
    		btnLieuMat.addSelectionListener(new MatSelectionListenerW(parametrageControllerWPageOne));
     
        // Required to avoid an error in the system
     
    		setControl(container);
        setPageComplete(false);
     
      }
     
    ...
     
    }

  11. #51
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    this.parent = this.container;
     
    		GridLayout layout = new GridLayout();
    		container.setLayout(layout);
    		layout.numColumns = 3;
    		layout.marginLeft = 300;
    this.container, c'est le container de ton wizard

    tu changes son layout en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GridLayout layout = new GridLayout();
    		container.setLayout(layout);
    et il faut pas : c'est le container de toutes les pages, il a son propre layout (un stacklayout, parce qu'il a plusieurs pages à afficher alternativement) et il contient des pages qui ont chacune leur layout,
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #52
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    après tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label labelTitre = new Label(container,SWT.NONE);
    tu créés ton label directement dans le wizard, pas dans la page

    il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label labelTitre = new Label(parent,SWT.NONE);
    ou parent est l'argument de la méthode createControl

    tu peux faire bien sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Composite comp = new Composite(parent,SWT.NONE);
    Label labelTitre = new Label(comp,SWT.NONE);

    c'est parce que tu les créés dans container que tous tes composants de toutes tes pages finissent par apparaître les uns en dessous des autres dans le container
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #53
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Ah d'accord.

    Du coup j'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     public void createControl(Composite parent) {
     
    	  System.out.println("1er Page");
    	  setTitle("Sélection du lieu de l'affaire");
     
    	  setDescription("Wizard jListConf. Sélection de l'affaire");
    	  this.parent = parent;
     
    	  	comp = new Composite(parent, SWT.NONE);
    		GridLayout layout = new GridLayout();
    		comp.setLayout(layout);
    		layout.numColumns = 3;
    		layout.marginLeft = 300;
     
    		Label labelTitre = new Label(comp,SWT.NONE);
    		labelTitre.setText("Sélection du lieu de l'affaire et des matrices de test");
    		labelTitre.setFont(new Font(null,"Arial",14,0));
    		GridData titreGD = new GridData(GridData.FILL_HORIZONTAL);
    		titreGD.horizontalSpan = 3;
    		titreGD.heightHint = 70;
    		labelTitre.setLayoutData(titreGD);
     
    		Label labelLieu = new Label(comp, SWT.NONE);
    		labelLieu.setText("Lieu de l'affaire : ");
    		labelLieu.setFont(new Font(null,"Arial",10,0));
    		labelLieu.setToolTipText("Indiquer le dossier racine de l'affaire");
    		textLieu = new Text(comp, SWT.BORDER);
    		textLieu.setText("Chemin de l'affaire");
    		textLieu.setFont(new Font(null,"Arial",10,0));
    		textLieu.setEditable(false);
    		GridData affaireGD = new GridData(GridData.CENTER);
    		affaireGD.widthHint = 300;
    		textLieu.setLayoutData(affaireGD);
    		Button btnLieuAffaire = new Button(comp, SWT.NONE);
    		btnLieuAffaire.setText("...");
    		btnLieuAffaire.addSelectionListener(new AffaireSelectionListenerW(parametrageControllerWPageOne));
     
    		Label labelMat = new Label(comp, SWT.NONE);
    		labelMat.setText("Lieu des matrices de test : ");
    		labelMat.setFont(new Font(null,"Arial",10,0));
    		labelMat.setToolTipText("Indiquer le dossier racine des matrices de test");
    		textMat = new Text(comp, SWT.BORDER);
    		textMat.setText("Chemin des matrices de test");
    		textMat.setFont(new Font(null,"Arial",10,0));
    		textMat.setEditable(false);
    		affaireGD.widthHint = 300;
    		textMat.setLayoutData(affaireGD);
    		Button btnLieuMat = new Button(comp, SWT.NONE);
    		btnLieuMat.setText("...");
    		btnLieuMat.addSelectionListener(new MatSelectionListenerW(parametrageControllerWPageOne));
     
        // Required to avoid an error in the system
     
    		setControl(comp);
        setPageComplete(false);
     
      }
    Bon par contre plus rien de s'affiche. Du moins la première page.

  14. #54
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Bon par contre plus rien de s'affiche. Du moins la première page.
    tu veux dire rien ne s'affiche sauf la première page ?

    ou rien ne s'affiche de la première page ?

    je vois pas trop pourquoi rien ne s'afficherait,

    bon tu met 300px de marge, ça fait beaucoup, mais je suppose que tu affiche ton workbench sur plus de 300px de large (sinon forcément tous tes composants sont en dehors de ta fenêtre).

    par contre je vois que tu recycle affaireGD sur textLieu et textMat : il faut absolument utiliser des instances différentes de GridData pour des composants différents (il y a un cache dans GridData que GridLayout exploite)

    essaye d'enlever tous tes hints déjà pour voir si tes composants ne sortent pas de la partie visible de ta vue
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #55
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Non, toujours pareil rien ne s'affiche sur la première page.

  16. #56
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    en général, quand quielquechose ne s'affiche pas c'est qu'il y a un problème de layout quelquepart

    c'est très difficile à déboguer ou à tracer.

    bon à priori tu passes bien par ta méthode createControl de ta page, puisque que à un moment tu as eu quelque chose d'affiché.

    moi quand c'est comme ça, je rajoute un background différent sur chacun des composites que je créé, pour voir à partir de quel niveau le layout n'est pas bon

    commence par en mettre sur les composites crées dans ta vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compositeTruc.setBackground(compositeTruc.getDisplay().getSystemColor(SWT.COLOR_xxx));(
    avec des couleurs différentes bien marquées (SWT.COLOR_RED, SWT.COLOR_BLUE par exemple) tu verras rapidement quel composite n'est pas bien layouté
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  17. #57
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Donc le container "container" qui doit contenir les éléments des pages est bien créée mais elle est vide.

    Par contre dans createControl j'ai colorié comp en jaune et il n'apparait pas.
    Pourtant j'y rentre bien vu que j'affiche "1er Page"

  18. #58
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    si tu passes en debug, avec un breakpoint dans la méthode showPage, au début de ce bloc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Control pageControl=currentPage.getControl();
                            if ( pageControl==null ) {
                                 currentPage.createControl(container);
                                 pageControl = currentPage.getControl();
                            }
    tu dois pouvoir voir :
    - si tu passes bien là
    - ce que vaut pageControl
    - si createControl est appelé
    - si pageControl vaut null ou pas après l'appel de currentPage.createControl(container)
    - si topControl de layout prend bien comme valeur la référence pageControl
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  19. #59
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Le truc c'est que maintenant le bouton next est grisé du coup je ne peux pas cliquer dessus et donc entrer dans showpage à cet endroit là.

  20. #60
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    tu as au moins la première page qui s'affiche, puisqu'on a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IWizardPage startingPage = myWizard.getStartingPage();
    		if (startingPage == null) {
    		} else {
    			startingPage.createControl(parent);
    			showPage(startingPage);
    		}


    code que tu as dû déplacé de createPartControl(Composite parent) de ta vue vers ta méthode

    ensuite si le bouton next est grisé c'est que tu as fait un setPageComplete(false) après ta construction de page, ce qui est bien (si tu as des informations obligatoires en saisie dans cette page)

    ensuite tu dois géré la détection de la saisie (en mettant des évenements sur des Text (et peut être ta table si tu y mets des éditeurs), et appeler setPageComplete(true) ou setPageComplete(false) en fonction du fait que tous tes champs sont remplis ou non, et ton bouton next sera grisé ou pas en fonction

    pour tes tests tu peux forcer setPageComplete(true) au début, comme tu n'exploites aucune saisie, ça te permet de faire défiler toutes tes pages jusqu'à la fin pour vériifier que tout est ok
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Changer la vue de source de données d'un cube
    Par phenomeno dans le forum SSAS
    Réponses: 1
    Dernier message: 30/10/2012, 15h40
  2. [RCP]Comment changer de vue avec mon plugin ?
    Par Cpt Anderson dans le forum Eclipse Platform
    Réponses: 14
    Dernier message: 15/12/2010, 12h43
  3. BIG HELP : changer de vue
    Par romeo9423 dans le forum MFC
    Réponses: 2
    Dernier message: 19/05/2007, 19h23
  4. changer de vue et de doc
    Par LesLemmings dans le forum MFC
    Réponses: 10
    Dernier message: 07/05/2007, 12h02
  5. SDI - changer de vue en cliquant sur un bouton
    Par Psykotik dans le forum MFC
    Réponses: 3
    Dernier message: 29/11/2005, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo