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

Eclipse Platform Discussion :

Lier une action à un modèle dans une vue


Sujet :

Eclipse Platform

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Lier une action à un modèle dans une vue
    Bonjour à tous,

    La question est certainement triviale (en tout cas, elle l'est en Swing) mais pas moyen de trouver un semblant de réponse pour RCP...

    J'ai une application Eclipse RCP qui a une perspective contenant des vues. Dans une vue en particulier, il y a un Tree associé à un modèle. Maintenant, j'ai un menu avec un article de menu pour lequel j'ai defini une action,je voudrai que lorsque je clique sur cet article de menu, cela ajoute une donnée au modèle sous jacent du Tree. Comment peut-on faire ca simplement ?

    Par avance merci

    M.

  2. #2
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai eu le meme pb et j'ai trouvé une solution qui va peut etre t'aider
    il faut creer 2 classes et une interface:
    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
     
    import java.util.ArrayList;
    import org.eclipse.jface.viewers.SelectionChangedEvent;
    public class GestionnaireEvenement {
    	static ArrayList listeners;
    	static ArrayList listenersFocus;
     
    public GestionnaireEvenement(){
    	//plug = new Plugin();	
    }
    public void addValuesListener(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listeners==null)listeners=new ArrayList();
    	if(listeners.contains(aL))return;
    	listeners.add(aL);
    }
     
    public void removeValuesListener(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listeners==null)return;
    	listeners.remove(aL);
    }
     
    public void notifyValuesChange(SelectionChangedEvent aEvent)
    {
    	if(listeners==null)return;
    	int size = listeners.size();
    	for(int i=0;i<size;i++)
    	{
    		((testValuesListner)listeners.get(i)).ValuesChanged(aEvent);
    	}
    }
    //focus
    public void addValuesListenerFocus(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listenersFocus==null)listenersFocus=new ArrayList();
    	if(listenersFocus.contains(aL))return;
    	listenersFocus.add(aL);
    }
     
    public void removeValuesListenerFocus(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listenersFocus==null)return;
    	listenersFocus.remove(aL);
    }
     
    public void notifyValuesChangeFocus(String aEvent)
    {
    	if(listenersFocus==null)return;
    	int size = listenersFocus.size();
    	for(int i=0;i<size;i++)
    	{
    		((testValuesListner)listenersFocus.get(i)).ValuesChangedFocus(aEvent);
    	}
    }
    //ffocus
     
    };
     
     
    public class testValuesEvent {
    	public int[] values;
     
    	public testValuesEvent(int[] aV){values=aV;}
     
    }
     
    import org.eclipse.jface.viewers.SelectionChangedEvent;
    public interface testValuesListner {
    	void ValuesChanged(SelectionChangedEvent evt);
    	void ValuesChangedFocus(String evt);
    }
    avec ça il te suffit de placer dans ton code la ou tu veux que ton evenement soit déclencher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void setFocus() {
    		GestionnaireEvenement t = new GestionnaireEvenement();
    		t.notifyValuesChangeFocus((String)editingDomain.getResourceSet().toString());
    	}
    par exemple dans mon cas des que le focus est activé


    et dans la vue qui va agir grace a l'evenement

    public class IOView extends ViewPart implements testValuesListner{
    tu doit rajouter le implements dans ta vue
    et dans le constructeur de la vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void createPartControl(Composite parent) {
     
    		GestionnaireEvenement plug = new GestionnaireEvenement();
     
    		plug.addValuesListener(this);
    		plug.addValuesListenerFocus(this);
    et tu doit redefinir les methodes

    void ValuesChanged(SelectionChangedEvent evt);
    void ValuesChangedFocus(String evt);
    dans ta vue.

    voila en esperant que ça t'aidera.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai eu une reponse sur le newsgroup Eclipse a l'adresse suivante :
    http://www.eclipse.org/newsportal/ar...form.rcp#23766

    M.

    Citation Envoyé par PABOYARD@HOTMAIL.COM
    J'ai eu le meme pb et j'ai trouvé une solution qui va peut etre t'aider
    il faut creer 2 classes et une interface:
    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
     
    import java.util.ArrayList;
    import org.eclipse.jface.viewers.SelectionChangedEvent;
    public class GestionnaireEvenement {
    	static ArrayList listeners;
    	static ArrayList listenersFocus;
     
    public GestionnaireEvenement(){
    	//plug = new Plugin();	
    }
    public void addValuesListener(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listeners==null)listeners=new ArrayList();
    	if(listeners.contains(aL))return;
    	listeners.add(aL);
    }
     
    public void removeValuesListener(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listeners==null)return;
    	listeners.remove(aL);
    }
     
    public void notifyValuesChange(SelectionChangedEvent aEvent)
    {
    	if(listeners==null)return;
    	int size = listeners.size();
    	for(int i=0;i<size;i++)
    	{
    		((testValuesListner)listeners.get(i)).ValuesChanged(aEvent);
    	}
    }
    //focus
    public void addValuesListenerFocus(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listenersFocus==null)listenersFocus=new ArrayList();
    	if(listenersFocus.contains(aL))return;
    	listenersFocus.add(aL);
    }
     
    public void removeValuesListenerFocus(testValuesListner aL)
    {
    	if(aL==null)return;
    	if(listenersFocus==null)return;
    	listenersFocus.remove(aL);
    }
     
    public void notifyValuesChangeFocus(String aEvent)
    {
    	if(listenersFocus==null)return;
    	int size = listenersFocus.size();
    	for(int i=0;i<size;i++)
    	{
    		((testValuesListner)listenersFocus.get(i)).ValuesChangedFocus(aEvent);
    	}
    }
    //ffocus
     
    };
     
     
    public class testValuesEvent {
    	public int[] values;
     
    	public testValuesEvent(int[] aV){values=aV;}
     
    }
     
    import org.eclipse.jface.viewers.SelectionChangedEvent;
    public interface testValuesListner {
    	void ValuesChanged(SelectionChangedEvent evt);
    	void ValuesChangedFocus(String evt);
    }
    avec ça il te suffit de placer dans ton code la ou tu veux que ton evenement soit déclencher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void setFocus() {
    		GestionnaireEvenement t = new GestionnaireEvenement();
    		t.notifyValuesChangeFocus((String)editingDomain.getResourceSet().toString());
    	}
    par exemple dans mon cas des que le focus est activé


    et dans la vue qui va agir grace a l'evenement

    public class IOView extends ViewPart implements testValuesListner{
    tu doit rajouter le implements dans ta vue
    et dans le constructeur de la vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void createPartControl(Composite parent) {
     
    		GestionnaireEvenement plug = new GestionnaireEvenement();
     
    		plug.addValuesListener(this);
    		plug.addValuesListenerFocus(this);
    et tu doit redefinir les methodes

    void ValuesChanged(SelectionChangedEvent evt);
    void ValuesChangedFocus(String evt);
    dans ta vue.

    voila en esperant que ça t'aidera.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2014, 15h58
  2. [Drupal] Appel form ajout de contenu dans une colorbox ou directement dans une vue
    Par cpom dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 17/02/2012, 15h41
  3. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  4. Associer une action à un bouton dans une JDialog
    Par moomba dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 07/12/2008, 20h08
  5. Réponses: 3
    Dernier message: 06/09/2006, 09h06

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