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 :

[JFace] TreeViewer & ComboBox


Sujet :

SWT/JFace Java

  1. #1
    Membre confirm�
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par d�faut [JFace] TreeViewer & ComboBox
    Bonjour,

    L� je craque... Depuis quelques temps d�j� j'essai de faire en sorte que mon arbre (contenant n colonnes) laisse la possibilit� � l'utilisateur de modifier l'une de ces colonnes � l'aide d'une comboBox.
    Apr�s avoir quelques Snippets et autres bout de code j'en arrive a quelques choses comme �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
     
    	TreeColumn colVersion = new TreeColumn(tree, SWT.LEFT);
    			colVersion.setText("Version");
    			treeColLayout.setColumnData(colVersion, new ColumnWeightData(35, 50, true));
     
    			TreeViewerColumn vColVersion = new TreeViewerColumn(treeViewer, colVersion);
    			vColVersion.setEditingSupport(new EditingSupport(treeViewer) {
     
    				@Override
    				protected void setValue(Object element, Object value) {
    					...........
    				}
     
    				@Override
    				protected Object getValue(Object element) {
                                            .............
    				}
     
    				@Override
    				protected CellEditor getCellEditor(Object element) {
    					.......................
    				}
     
    				@Override
    				protected boolean canEdit(Object element) {
    					...................
    				}
    			});
    Et j'ignore absolument comment remplir ces petites m�thodes, sachant que les listes des items qui doivent appara�tre dans la comboBox vienne d'une classe (mettons A) et que l'item qui doit �tre s�lectionn� est aussi dans cette classe.

    L� je vous avoue que j'appr�cierais vraiment un bon coup de pouce

  2. #2
    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 : 55
    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
    Salut,

    Les diff�rentes m�thodes � impl�menter parlent d'elle-m�me :

    Imaginons que la classe A dont tu parles soit comme �a (bon j'utilise Personne comme nom, parce que A, bof...). Et que la propri�t� qu'on g�re dans cette colonne avec combo est le pr�nom.

    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
    public class Personne  {
     
         private String nom;
         private String prenom;
     
         public String getNom() {
               return nom;
         }
     
         public void setNom(String nom) {
               this.nom=nom;
         }
     
         public String getPrenom() {
               return prenom;
         }
     
         public void setPrenom(String prenom) {
               this.prenom=prenom;
         }
     
    }
    1) r�cup�rer la valeur de l'�l�ment pour la colonne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    protected Object getValue(Object element) {
                                            .............
    }
    Le code doit donc �tre tel que on retourne la valeur pour la colonne en question pour l'objet pass� en argument :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    protected Object getValue(Object element) {
         if ( element instanceof Personne ) { // parce qu'on peut avoir des objets différents dans l'arbre
              return ((Personne)element).getPrenom()); // parce que cette colonne afficher les prénoms, et que pour avoir le prénom d'une Personne, on appelle getPrenom()
         }
         else {
             return null; // dans les cas qu'on gère pas, on retourne null
         }
    }
    2) modifier la valeur apr�s saisie
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    @Override
    protected void setValue(Object element, Object value) {
    					...........
    }
    Le code doit donc �tre tel qu'on affecte la valeur pass�e en argument � l'objet pass� en argument, pour la propri�t� correspondant � la colonne :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    @Override
    protected void setValue(Object element, Object value) {
         if ( element instanceof Personne ) { // parce qu'on peut avoir des objets différents dans l'arbre
             if ( value instance String || value==null ) { // en fonction du type de la valeur saisie (qui dépend de l'éditeur)
                 ((Personne)element).setPrenom((String)value); // parce qu'on affecte le prénom d'une personne en appelant la méthode setPrenom()
             }
         }
    }

    3) indiquer si une valeur est �ditable

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    @Override
    protected boolean canEdit(Object element) {
         ...
    }
    Cette m�thode doit retourner true si on peut modifier le pr�nom de l'objet pass� en argument, ou false sinon

    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
    @Override
    protected boolean canEdit(Object element) {
         if ( element instanceof Personne ) {
             // ici on peut retourner true, ou tester une méthode qui dit si c'est éditable ou pas :
     
            Personne personne = (Personne)element;
     
            if  (personne.isReadOnly() ) {
                return false; // on ne peut pas éditer
            }
            else if ( !UnTrucQuiGereLesDroits.hasLeDroitDeModifier(personne) ) { // on peut gérer tout ce qu'on veut qui empêche ou permet l'édition
                return false;
            }
            else {
                 return true; // on a le droit de modifier le prénom de cette personne
            }
     
     
         }
         else {
             return false; // dans les autres cas, on dit que c'est pas éditable, comme ça on est tranquille : on ne risque pas de pouvoir modifier un truc qu'on avait pas prévu
         }
    }
    4) la m�thode qui dit quel �diteur on veut utiliser pour l'�l�ment pass� en argument pour cette colonne :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    @Override
    protected CellEditor getCellEditor(Object element) {
    					.......................
    }
    La on doit impl�menter ce qui permettra de g�n�rer l'�diteur qu'on veut pour le cas

    Au plus simple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @Override
    protected CellEditor getCellEditor(Object element) {
     
              if ( element instance Personne ) {
                     return new ...
              }
              else {
                    return null;
              }
     
    }
    Mais on peut tout � fait tester autre chose, pour avoir des �diteurs diff�renci�s selon d'autres propri�t�s de l'objet Personne (le genre (homme/femme) par exemple), ou des propri�t�s d'autres objets (par exemple, une pr�f�rence qui permet de dire qu'on veut un choix dans une liste restreinte (combo readonly), un choix dans une liste indicative (combo pas readonly), ou un choix libre (text).

    Ensuite, pour un �diteur de type combo, regarde :

    • soit ComboBoxCellEditor : utilise un CCombo, donc une combo avec des String, ce qui correspond au cas impl�ment� dans le setValue() ci-dessus
    • soit ComboBoxViewerCellEditor : qui correspond � un ComboViewer, donc pour g�rer des objets avec un mod�le (par exemple, on a une classe Prenom, avec une propri�t� genre, pour filtrer les pr�noms f�minins ou masculins (en fonction du genre de la personne)... dans ce cas le setValue() doit �videmment traiter le cas particulier (puisque c'est une instance de Prenom qui va �tre pass� en argument et non une instance de String).


    Par exemple,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    String[] listeDesPrenoms = DAO.getListeDePrenoms();
    return new ComboBoxCellEditor(tree, listeDesPrenoms,
            SWT.READ_ONLY);
    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.

  3. #3
    Membre confirm�
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par d�faut
    Merci joel pour avoir clarifi� ces m�thodes,

    Je pense avoir pu les impl�menter correctement mais j'obtiens une erreur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    org.eclipse.core.runtime.AssertionFailedException: assertion failed: Column 0 has no label provider.
    Vu qu'on utilise d�sormais un EditingSupport par colonne est-il n�cessaire d'avoir un label / content provider pour cet arbre ?? Ne serait-ce pas la raison de cette erreur ??
    Ou n'en faudrait-il pas un par colonne ??

  4. #4
    Membre confirm�
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par d�faut
    Bon j'ai r�solue une partie du probl�me en enlevant le label provider assign� � l'arbre et en ajoutant un CellProvider a chaque TreeViewerColumn.

    Maintenant l'arbre est bien rempli, mais si j'essai de modifier la colonne avec le ComboBoxCellEditor j'obtiens cette erreur:

    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
     
    org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
    	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110)
    	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96)
    	at org.eclipse.jface.viewers.ComboBoxCellEditor.doSetValue(ComboBoxCellEditor.java:227)
    	at org.eclipse.jface.viewers.CellEditor.setValue(CellEditor.java:857)
    	at org.eclipse.jface.viewers.EditingSupport.initializeCellEditorValue(EditingSupport.java:100)
    	at org.eclipse.jface.viewers.ColumnViewerEditor.activateCellEditor(ColumnViewerEditor.java:195)
    	at org.eclipse.jface.viewers.ColumnViewerEditor.handleEditorActivationEvent(ColumnViewerEditor.java:445)
    	at org.eclipse.jface.viewers.ColumnViewer.triggerEditorActivationEvent(ColumnViewer.java:680)
    	at org.eclipse.jface.viewers.ColumnViewer.handleMouseDown(ColumnViewer.java:664)
    	at org.eclipse.jface.viewers.ColumnViewer.access$0(ColumnViewer.java:660)
    	at org.eclipse.jface.viewers.ColumnViewer$1.mouseDown(ColumnViewer.java:89)
    	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:191)
    	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:4165)
    	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
    	at com.xxx.mbde.gettools.view.dialog.SubCompDialog.open(SubCompDialog.java:60)
    	at com.xxx.mbde.gettools.view.GetView.treeBox(GetView.java:330)
    	at com.xxx.mbde.gettools.view.GetView.access$12(GetView.java:328)
    	at com.xxx.mbde.gettools.view.GetView$ToolItemListener.widgetSelected(GetView.java:510)
    	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
    	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:4165)
    	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
    	at com.valeo.mbde.gettools.view.GetView.execute(GetView.java:232)
    	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
    	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
    	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
    	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
    	at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
    	at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
    	at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
    	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:4165)
    	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
    	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
    	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:344)
    	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:622)
    	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
    	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
    Et alors pour le coup, j'ai aucune id�e de ce qui ne va pas....

  5. #5
    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 : 55
    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
    C'est parce que le ComboBoxCellEditor fonctionne avec pour valeur "�dit�e" l'index de la cha�ne dans le tableau, pas la valeur de la cha�ne. Je trouve �a abscons personnellement, et je n'utilise personnellement toujours que des ComboViewer, jamais directement de Combo ou CCombo. Au moins, on a un semblant de MVC.

    Ou essaye �a (je n'ai pas test�, normalement, on ne devrait pas �tendre de composant JFace, mais il n'y a pas de contr�le donc �a devrait passer).

    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
    public class StringComboBoxCellEditor extends ComboBoxCellEditor {
     
    	public StringComboBoxCellEditor() {
    		super();
    	}
     
    	public StringComboBoxCellEditor(Composite parent, String[] items) {
    		super(parent, items);
    	}
     
    	public StringComboBoxCellEditor(Composite parent, String[] items, int style) {
    		super(parent, items, style);
    	}
     
     
    	@Override
    	protected void doSetValue(Object value) {
    		if ( value instanceof String ) {
    			super.doSetValue(indexOf(value, getItems()));
    		}
    		else {
    			super.doSetValue(-1);
    		}
    	}
     
    	private static int indexOf(Object value, String[] array) {
     
    	     int index = -1;
    	    for (int i=0; index==-1 && i<array.length; i++) {
    	    	if ( (array[i] == value) || (array[i] != null && array[i].equals(value)) ) {
    	            index = i;
    	        }
    	    }
     
    	    return index;
    	}
     
    	@Override
    	protected Object doGetValue() {
    		int index = (Integer)super.doGetValue();
    		if ( index==-1 ) {
    			return null;
    		}
    		else {
    			return getItems()[index];
    		}
    	}
     
    }
    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. #6
    Membre confirm�
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par d�faut
    Je travail dessus, mais par simple curiosit� j'ai regard� comment j'aurais fais avec un ComboBoxViewerCellEditor.
    Et il me semble que j'aurai �t� bloqu� lors de la cr�ation de cet �diteur, puisqu'il utilise la m�thode setInput(input), et chez moi cet input d�pend de la ligne s�lectionn�e... Non ?

  7. #7
    Membre confirm�
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par d�faut
    Et une fois de plus je parle avant de r�fl�chir.....

    Je met i�i la classe qui �tend Editing Support et qui fonctionne bien !!
    Si jamais quelqu'un d'autre lutte un jour !

    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
    public class ComboEditingSupport extends EditingSupport{
     
    	private ComboBoxViewerCellEditor cellEditor = null;
     
    	public ComboEditingSupport(ColumnViewer viewer) {
    		super(viewer);
    		cellEditor = new ComboBoxViewerCellEditor((Composite) getViewer().getControl(), SWT.DROP_DOWN | SWT.READ_ONLY);
    		cellEditor.setLabelProvider(new LabelProvider());
    		cellEditor.setContentProvider(new ArrayContentProvider());
     
    	}
     
    	@Override
    	protected CellEditor getCellEditor(Object element) {
    		if (element instanceof DimComp) {
    			cellEditor.setInput(((DimComp)element).getReleases());
    			return cellEditor;
    		}
    		return null;
    	}
     
    	@Override
    	protected boolean canEdit(Object element) {
    		return true;
    	}
     
    	@Override
    	protected Object getValue(Object element) {
    		if (element instanceof DimComp) {
    			return ((DimComp)element).getSelectedRelease();
    		}
    		return null;
    	}
     
    	@Override
    	protected void setValue(Object element, Object value) {
    		if (element instanceof DimComp) {
    			if (value instanceof String || value==null) {
    				((DimComp)element).setSelectedRelease((String)value);
    			}
    		}
    	}
     
    }

  8. #8
    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 : 55
    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
    Pas obligatoirement. Si la liste de valeurs d�pend d'un choix dans une autre colonne. Par exemple, le cas je s�lectionne un pays dans une colonne, et je veux s�lectionner une ville de ce pays uniquement dans l'autre : dans ce cas, on peut utiliser un ViewerFilter et n'avoir qu'un seul input. Cependant, si on veut �viter de charger par exemple une table contenant des millions d'enregistrements, il faudra passer dans l'input. Dans les deux cas, on doit pouvoir r�agir au changement de la valeur pour appeler soit setInput(), soit setFilters(). Tu peux t'appuyer sur un ICellEditorListener pour r�agir au changement dans la premi�re colonne.

    [EDIT]Tu t'es r�pondu avant que je termine ma r�ponse[/EDIT] effectivement, c'est encore un autre cas : si les choix sont directement li�s � l'�l�ment s�lectionn�.
    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.

Discussions similaires

  1. [JFace] TableViewer et ComboBox
    Par luffy64 dans le forum SWT/JFace
    R�ponses: 2
    Dernier message: 17/09/2014, 15h14
  2. Treeview dans Combobox
    Par matdur dans le forum Windows Presentation Foundation
    R�ponses: 2
    Dernier message: 06/01/2010, 00h14
  3. [jface]TreeViewer "non d�cor�"?
    Par pssst dans le forum SWT/JFace
    R�ponses: 3
    Dernier message: 27/03/2009, 10h03
  4. [JFace] TreeViewer : selection "vide"
    Par Mucho dans le forum SWT/JFace
    R�ponses: 9
    Dernier message: 30/05/2007, 18h21
  5. [C#][.Net 2.0] donner focus � Combobox, apr�s click sur treeview
    Par Harry_polin dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 17/02/2006, 22h27

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