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 :

RCP récupérer les éléments d'une autre vue


Sujet :

Eclipse Platform

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 310
    Points : 132
    Points
    132
    Par défaut RCP récupérer les éléments d'une autre vue
    bonjour,


    dans mon applicatio RCP j'ai deux vue. dans une des deux on peut selectionner des itmes et dans la seconde on peut effectuer des actions sur les elements selectionner dans la premier vue.


    je cherche a savoir comment faire a partir de ma seconde vue (celle qu contient les actions) recuperer les elements selectionner dans la premiere vue


    j'ai essaye de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IViewDescriptor[] listview = PlatformUI.getWorkbench().getViewRegistry().getViews();
    et de caster l'element de ce tableau qui correspond àl'ID de ma vue en une instance de ma vue
    mais apparement le cast serait sans effet

    je souhaiterais savoir donc si c'est le bon "chemin" pour selectionner une vue depuis une autre ?et si non comment s'y prendre

    merci

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484

  3. #3
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    merci beaucoup ce lien m'a vachement bien aidé en particulier l'exemple a la fin.

    je penssai pas que que la transmission d'information se faisait à l'aide de listener
    je voyais ça de manière plus "statique".


    merci encore pour ton aide.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    2 choses:
    - créer des dépendances entre les vues, ça a vite tendance à devenir rock-n-roll à gérer, donc à éviter, il faut passer par un intermédiaire.
    - de même pour le fait de demander sa valeur à un controle; il faut inverser la situation: c'est le controle qui doit donner sa valeur.

    explication en code généralisé, dans la vue 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    viewer.addSelectionChangedListener(new ISelectionChangedListener(){
    			public void selectionChanged(SelectionChangedEvent event) {
    				IStructuredSelection selection = (IStructuredSelection) event.getSelection();				
    					GlobalContext.INSTANCE.setSelectedObjects(selection.toList());
    			}
    		});
    Le listener ne déclenche rien directement, il se contente de remonter l'info à un niveau plus global, pour les objets que ça intéresserait.

    (là c'est pour une multi selection, donc si jamais il faut adapter)


    et dans la vue 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List list = GlobalContext.INSTANCE.getSelectedObjects();
    on récupère la valeur et on en fait ce qu'on veut.


    ensuite pour que la vue 2 soit mise à jour par la selection dans la vue 1, il faut passer par le wrapper(observable) dont je parlais sur l'autre post,
    et donc dans le selection listener ça donne plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GlobalContext.INSTANCE.getObjectListWrapper().setElement(selection.toList())
    la réaction en chaine:
    - le listener met à jour le wrapper
    - le wrapper notifie ses observer
    - parmi ces observer il y a la vue 2
    - pour le wrapper en question, l'update de la vue2 récupère la valeur dans le wrapper et après ...

    ps: je me rends compte que je ne réponds pas précisément à ton message, mais plutôt au sujet: "RCP recuperer les element d'une autre vue"

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

Discussions similaires

  1. Récupérer les variables d'une autre fenêtre
    Par chuky dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 20/05/2012, 20h24
  2. Récupérer les éléments d'une énumération
    Par The eye dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/01/2007, 09h45
  3. Comment récupèrer les éléments d'une JList
    Par Orian dans le forum Composants
    Réponses: 13
    Dernier message: 10/09/2006, 11h53
  4. Réponses: 5
    Dernier message: 22/02/2006, 17h32
  5. Comment récupérer les éléments d'un autre programme ?
    Par Henri_13 dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 29/11/2005, 00h16

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