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 :

Associer ComboBoxCellEditor et TableViewer


Sujet :

SWT/JFace Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 38
    Points
    38
    Par défaut Associer ComboBoxCellEditor et TableViewer
    Bonsoir,

    Est-il possible d'utiliser ComboBoxCellEditor dans TableViewer car depuis plusieurs heures j'essaye de le faire mais rien n'y fait je n'y arrive pas...

    Voici le code que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Table maTable = new Table(parent, SWT.MULTI | SWT.H_SCROLL
    				| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
            maTable.setHeaderVisible(true);
            maTable.setLinesVisible(true);
            TableViewer myViewer = new TableViewer(maTable);
            //myViewer.setLabelProvider(...);
            myViewer.setContentProvider(new ArrayContentProvider());
     
    String[] valeur = new String[] { "val", "val2" };
    TableViewerColumn col = new TableViewerColumn(myViewer, SWT.LEFT);
    final TableColumn controlColumn = col.getColumn();
    controlColumn.setText("Col");
    col.setEditingSupport(new ComboBoxCellEditor(maTable,valeur));
    Je suis un peu perdu. Merci d'avance pour votre réponse.

    Bonne soirée.

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    En même temps, un ComboBoxCellEditor n'hérite pas de EditingSupport donc, tu ne peux pas l'utiliser comme ça (tu dois sûrement avoir des erreurs de compilations).
    Il te faut créer un objet EditingSupport qui va utiliser un ComboBoxCellEditor comme objet d'édition.
    La version courte donne:
    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
            final Table maTable = new Table(parent, SWT.MULTI | SWT.H_SCROLL
    				| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
            maTable.setHeaderVisible(true);
            maTable.setLinesVisible(true);
            TableViewer myViewer = new TableViewer(maTable);
            //myViewer.setLabelProvider(...);
            myViewer.setContentProvider(new ArrayContentProvider());
     
            final String[] valeur = new String[] { "val", "val2" };
            TableViewerColumn col = new TableViewerColumn(myViewer, SWT.LEFT);
            final TableColumn controlColumn = col.getColumn();
    controlColumn.setText("Col");
     
            col.setEditingSupport(new EditingSupport(maTable) {
     
                    @Override
                    protected boolean canEdit(final Object element) {
                        return true;
                    }
     
                    @Override
                    protected CellEditor getCellEditor(final Object element) {
                        return new ComboBoxCellEditor(maTable, valeur);
                    }
     
                    @Override
                    protected Object getValue(final Object element) {
                        // Traitement à faire pour donner la valeur.
                        return null;
                    }
     
                    @Override
                    protected void setValue(final Object element, final Object value) {
                        // Traitement à faire pour mettre à jour la valeur.
                    }
     
                });
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,

    Merci pour votre réponse mais çà ne marche pas non plus...
    Eclipse veut que je change le type de Table maTable en ColumViewer maTable...

    Vraiment embêtant ce problème...

    Merci d'avance !

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Au temps pour moi, j'ai pas fais attention en recopiant... C'est ton Viewer qu'il te faut utiliser dans la création de ton ComboBoxCellEditor, donc, ce n'est pas maTable, mais myViewer qu'il te faut passer comme argument:
    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
    Table maTable = new Table(parent, SWT.MULTI | SWT.H_SCROLL
    				| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
            maTable.setHeaderVisible(true);
            maTable.setLinesVisible(true);
            final TableViewer myViewer = new TableViewer(maTable);
            //myViewer.setLabelProvider(...);
            myViewer.setContentProvider(new ArrayContentProvider());
     
            final String[] valeur = new String[] { "val", "val2" };
            TableViewerColumn col = new TableViewerColumn(myViewer, SWT.LEFT);
            final TableColumn controlColumn = col.getColumn();
    controlColumn.setText("Col");
     
            col.setEditingSupport(new EditingSupport(maTable) {
     
                    @Override
                    protected boolean canEdit(final Object element) {
                        return true;
                    }
     
                    @Override
                    protected CellEditor getCellEditor(final Object element) {
                        return new ComboBoxCellEditor(myViewer , valeur);
                    }
     
                    @Override
                    protected Object getValue(final Object element) {
                        // Traitement à faire pour donner la valeur.
                        return null;
                    }
     
                    @Override
                    protected void setValue(final Object element, final Object value) {
                        // Traitement à faire pour mettre à jour la valeur.
                    }
     
                });
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,

    Ca ne marche malheureusement pas...

    J'ai changé new EditingSupport(maTable) par new EditingSupport(myViewer) mais j'ai un problème car Eclipse ne veut pas que ComboBoxCellEditor prenne 2 éléments en arguments.

    Merci d'avance.

Discussions similaires

  1. ComboBoxCellEditor dans un tableViewer
    Par *alexandre* dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 26/10/2007, 14h53
  2. [VB6] [Install] Associer une icone à un raccourci
    Par petitgognol dans le forum Installation, Déploiement et Sécurité
    Réponses: 7
    Dernier message: 30/10/2002, 20h20
  3. [Delphi] Association composants-projet
    Par Pierre Castelain dans le forum Composants VCL
    Réponses: 6
    Dernier message: 31/07/2002, 16h20
  4. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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