Plugin Eclipse - onglets dans un onglet [Résolu]

cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 26 févr. 2008 à 11:39 - Dernière réponse : cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention
- 26 févr. 2008 à 12:21
Bonjour,

J'essaye de créer une série d'onglets dans un onglet avec les widgets PDE. Ils se créent apparement sans erreur, mais ne sont pas visibles.

La ViewPart :

public class myView extends ViewPart {

    private TabItem ongletConteneur;

    @Override
    public void createPartControl(Composite parent) {
      
        // Définition du layout (FormLayout)
        parent.setLayout(new FillLayout());
       
        // Définition du TabFolder
        TabFolder tabFolder = new TabFolder(parent, SWT.NONE );
        tabFolder.setLayoutData(parent.getLayout());

        // Définition de l'onglet conteneur (TabItem)
        this.ongletConteneur =  new TabItem(tabFolder, SWT.BORDER);
        this.ongletConteneur.setText("Conteneur");
        this.ongletConteneur.setControl(this.tab = new CompositeTab(tabFolder,SWT.NONE));
    }  
}

Le composant qui contient les onglets :

public class CompositeTab extends Composite {

    private TabItem onglet1;
    private TabItem onglet2;

    public CompositeTab (final Composite parent, final int style) {
        
        super(parent, style);
        
        // Définition du layout (FormLayout)
        this.setLayout(new FormLayout());

        // Définition du TabFolder
        TabFolder tabFolder = new TabFolder(parent, SWT.NONE );
        tabFolder.setLayoutData(parent.getLayout());

        FormData formData = new FormData();
   
        this.onglet1 =  new TabItem(tabFolder, SWT.BORDER);
        this.onglet1.setText("onglet1");
        this.onglet1.setControl(new OngletContenu(tabFolder,SWT.NONE));
       
        this.onglet2 =  new TabItem(tabFolder, SWT.BORDER);
        this.onglet2.setText("onglet2");
        this.onglet2.setControl(new OngletContenu(tabFolder,SWT.NONE));
    }
}

Les onglets contenus :

public class OngletContenu extends Composite {
   
    /**
     * @param parent
     * @param style
     */
    public OngletContenu (final Composite parent, final int style) {
       
        super(parent, style);
       
        // Définition du layout (FormLayout)
        this.setLayout(new FormLayout());

        FormData formData = new FormData();       
    }
}

Qu'est-ce que j'ai bien pu oublié ou raté ?

Merci.
Afficher la suite 

1 réponse

Répondre au sujet
cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 26 févr. 2008 à 12:21
+3
Utile
Trouvé :o) :

Pas besoin de la dernière classe. Il fallait créer un TabFolder comme contrôle du TabFolder parent.

La ViewPart :

public class myView extends ViewPart {

    private TabItem ongletConteneur;

    @Override
    public void createPartControl(Composite parent) {
      
        // Définition du layout (FormLayout)
        parent.setLayout(new FillLayout());
       
        // Définition du TabFolder
        TabFolder tabFolder = new TabFolder(parent, SWT.NONE );
        tabFolder.setLayoutData(parent.getLayout());

        // Définition de l'onglet conteneur (TabItem)
        this.ongletConteneur =  new TabItem(tabFolder, SWT.BORDER);
        this.ongletConteneur.setText("Conteneur");
        this.ongletConteneur.setControl(new CompositeTab(tabFolder,SWT.NONE));

        // Définition du conteneur d'onglets contenus ;o)
        TabFolder tabFolderContenus = new TabFolder(tabFolder, SWT.NONE );
        tabFolderContenus.setLayoutData(parent.getLayout());
        
        TabItem onglet1 = new TabItem(tabFolderContenus, SWT.BORDER);
        onglet1.setText("onglet1");
        onglet1.setControl(new CompositeTab (tabFolderContenus,SWT.NONE));
        TabItem onglet2 = new TabItem(tabFolderContenus, SWT.BORDER);
        onglet2.setText("onglet2");
        onglet2.setControl(new CompositeTab (tabFolderContenus,SWT.NONE));
        
        // Defintion du contrôle de l'onglet conteneur
        this.ongletConteneur.setControl(tabFolderContenus);
     
    }  
}

Les onglets contenus :

public class CompositeTab extends Composite {

    public CompositeTab (final Composite parent, final int style) {
        
        super(parent, style);
        
        // Définition du layout (FormLayout)
        this.setLayout(new FormLayout());

    }
}

fiouuuu !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_AlexN

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.