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 :

Ajouter un TabFolder a posterio


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut Ajouter un TabFolder a posterio
    Bonjour,

    Je voudrais, dans mon plugin propertypage ajouter un tabfolder a posterio, mais je galère un peu avec ses histoires de contenants, contenus .. layout tout ça !

    Voici mon code, qui consite à ajouter dans une propertypage 3 composites :
    le 1er contenant un label et 2 radios boutons
    le 2eme contenant une zone text, un bouton et un label
    le 3eme contenant 3 tableaux

    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
    84
    85
     
    public void createPartControl(Composite parent) {
     
    // fenetre principale		
    FormToolkit toolkit = new FormToolkit(parent.getDisplay());
    ScrolledForm form = toolkit.createScrolledForm(parent);
    // layout principal		
    form.getBody().setLayout(new GridLayout());
     
     
    // 1er layout contenant ...		
    Composite hd = toolkit.createComposite(form.getBody());
    GridLayout gl = new GridLayout();
    gl.numColumns = 3;
    hd.setLayout(gl);
    Label l = toolkit.createLabel(hd, Messages.getString("FormHexa.Label1"));
    GridData gd = new GridData();
    l.setLayoutData(gd);
    Button buttonV3 = toolkit.createButton(hd, Messages.getString("FormHexa.V3"), SWT.RADIO);
    gd = new GridData();
    buttonV3.setSelection(true);
    buttonV3.setLayoutData(gd);
    Button buttonV4 = toolkit.createButton(hd, Messages.getString("FormHexa.V4"), SWT.RADIO);
    gd = new GridData();
    buttonV4.setLayoutData(gd);
     
    Composite hdHexa = toolkit.createComposite(form.getBody());
    gl = new GridLayout();
    gl.numColumns = 3;
    gl.marginLeft = 100;
    hdHexa.setLayout(gl);
    final Label msgError;
     
    tHexa = toolkit.createText(hdHexa, Messages.getString("FormHexa.ExValueReg1"),SWT.WRAP);
    gd = new GridData();
    tHexa.setLayoutData(gd);
     
    final Button bValue = toolkit.createButton(hdHexa, Messages.getString("FormHexa.ValueField"), SWT.PUSH);
    gd = new GridData();
    bValue.setLayoutData(gd);
     
    msgError = toolkit.createLabel(hdHexa, Messages.getString("FormHexa.Error1"));
    msgError.setVisible(false);
    msgError.setForeground(msgError.getDisplay().getSystemColor(SWT.COLOR_RED));
    gd = new GridData();
    msgError.setLayoutData(gd);
     
    // 2eme layout		
    Composite hd1 = toolkit.createComposite(form.getBody());
    gl = new GridLayout();
    gl.numColumns = 3;
    hd1.setLayout(gl);
     
    // composite dns ma 1ere colonne
    Composite hdCol1 = toolkit.createComposite(hd1);
    tCol1 = new Table(hdCol1,SWT.NO_SCROLL|SWT.SINGLE);
    hdCol1.setLayout(gl);
    TableColumn tc;
    tc = new TableColumn(tCol1, SWT.RIGHT);
    tc.setWidth(115);
    tc.setResizable(false);
    tc.setText("CORE_CFG.PCACHE");
     
    // composite dns ma 2eme colonne
    Composite hdCol2 = toolkit.createComposite(hd1);
    tCol2 = new Table(hdCol2,SWT.NO_SCROLL);
    tCol2.setLinesVisible(true);
    hdCol2.setLayout(gl);
    tc = new TableColumn(tCol2, SWT.LEFT);
    tc.setWidth(21);
    tc.setResizable(false);
     
    // composite dns ma 3eme colonne
    Composite hdCol3 = toolkit.createComposite(hd1);
    tCol3 = new Table(hdCol3,SWT.NO_SCROLL);
    //tCol3.setLinesVisible(true);
    hdCol3.setLayout(gl);
    tc = new TableColumn(tCol3, SWT.CENTER);
    tc.setWidth(250);
    tc.setResizable(false);
     
    setTable1(tCol1);
    setTable2(tCol2);
    setTable3(tCol3);
    }
    Mais apres avoir ecrit tout ça, je me suis aperçu qu'il me fallait des onglets pour mettre d'autres choses qui prendraient trop de place si je mets tout sur la même page.
    Du coup je voudrais mettre tout ça (les 3 composites) dans un TabFolder et prévoir 2 autres tabfolder pour mettre des tableaux à venir.

    comment faire pour ajouter un tabfolder à tout ça ?
    Merci d'avance toutes les pistes sont les bienvenues !


  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Un seul CTabFolder te suffira. Par contre, il te faudra 3 CTabItem.

    Dans un premier temps, tu crées un composite qui contient toutes les informations que tu veux afficher dans ton premier onglet. Il sera donc le père de tous tes sous-composites.

    Ensuite tu crées ton CTabItem :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Lors de la création du CTabItem, on passe le CTabFolder en paramètre pour désigner qu'il est le père
    monTabItem = new CTabItem(monTabFolder, SWT.NONE);
    //Ajout du nom de l'onglet
    monTabItem .setText("Nom de l'onglet");
    //Ajout du contenu de l'onglet
    monTabItem .setControl(monCompositeGlobal);
    Puis tu crées un autre CTabItem pour chaque onglet supplémentaire que tu souhaites créer.

  3. #3
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    ah oui et du coup dans mon onglet ajouter lLE composite, puisqu'il ne peut contenir que 1 seul control.
    Je vais voir, merci

  4. #4
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    Apres quelques bidouilles, ça marche bien !
    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. [VB6] [ADO] Pb ajout enregistrement table liée
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/10/2002, 11h49
  4. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48
  5. Ajouter une aide
    Par Mailgifson dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/06/2002, 13h32

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