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 Java Discussion :

[RCP][débutant] Comment passer un objet d'une vue à une autre


Sujet :

Eclipse Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut [RCP][débutant] Comment passer un objet d'une vue à une autre
    Petite description de la mini application en cours de développement :

    J'ai 2 vues :
    - SearchView : une vue correspondant à un formulaire de recherche
    - ResultView : une vue correspondant à l'affichage de la recherche

    à la validation du bouton de recherche de la vue SearchView, j'appelle un WebService en lui passant en paramètre tous les critères de recherche entrés par l'utilisateur. En réponse, ce Web Service me renvoie un objet correspondant aux résultats de cette recherche (QueryResultList).

    Tout de suite après avoir reçu cette objet, j'instancie une nouvelle vue de résultat (ResultView) :

    IViewPart currentResultView = site.getPage().showView(ResultView.ID, "result_" + System.currentTimeMillis(), IWorkbenchPage.VIEW_VISIBLE)

    coment je fais pour "transmettre" à currentResultView mon objet de résultat (QueryResultList) ?

  2. #2
    Membre averti Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Points : 330
    Points
    330
    Par défaut
    Regarde les services de la plateforme Eclipse: SelectionProvider et SelectionListener. Certains articles portant sur ce sujet ont été publiés sur le site http://www.eclipse.org dans la section articles.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut http://www.developpez.net/forums/showthread.php?p=1180023#post1180023
    En fait, j'avais déjà lu une de tes réponses sur le post : http://www.developpez.net/forums/sho...d.php?t=183498 et à propos de SelectionProvider/SelectionListener tu avais donné le lien suivant : http://www.eclipse.org/articles/Arti...s/article.html

    Seulement là, ce n'est pas une question de "sélection", je n'ai aucun Viewer dans ma vue SearchView ...

    Du coup, je ne vois pas vraiment comment le SelectionProvider/selecttionListener peut m'aider

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Je ne sais plus exactement comment mais il me semble qu'il est possible de recuperer un object view d'apres son ID, dans ce cas la il suffit de creer une sorte de guetteur dans ta vue de recherche et le tour est joué.
    Sinon une solution moche mais qui fonctionne : utilise ton singleton plugin comme intermediaire.

    Au sujet de service de selection, je recommande aussi. Il est vrai que j'avais mal lu au debut (et c'est peut etre le cas de Jean-Philippe Shields) : je pensais que t'afficherais une liste de resultats et lors d'un click sur un des items, tu voulais l'afficher. Dans ce cas la, le service de selection aurait été parfaitement approprié mais cela n'est pas le cas.

    Cependant, rien ne t'empeche d'utiliser le service de selection sans un viewer : il suffit de creer toi meme tes evenements ("Tu les lances à la main." ).

    EDIT : En fait il faut simplement consulter l'API ou la FAQ si on est pas doué (je suis le premier visé). Dixit la FAQ :
    To pass instance-specific data to the view, you will need to cast the resulting IViewPart down to the concrete view class and call your own setData method.
    Et en regardant l'API, on svoit effectivement que les fonctions showView.. ne renvoie pas un void mais un IViewPart...

  5. #5
    Membre averti Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Points : 330
    Points
    330
    Par défaut
    J'ai aussi déjà vu certaines personnes utiliser l'interface IPartListener2 et les fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void partOpened(IWorkbenchPartReference partRef)
              Notifies this listener that the given part has been opened.
    void partVisible(IWorkbenchPartReference partRef)
              Notifies this listener that the given part is visible.
    pour intercepter l'ouverture d'une part et la garder en référence. Dans le style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void partOpened(IWorkbenchPartReference partRef) {
    if (partRef instance of MyViewPart)
        this.myView = partRef;
    }
    Même si ça peut faire le travail, c'est pas vraiment "beau" et ça lie les 2 vues directement ce qui peut éventuellement nuire à l'extensibilité de ton application.

Discussions similaires

  1. comment passer un objet d'un servlet à un autre servlet
    Par tatou3a dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 26/02/2009, 16h39
  2. Réponses: 3
    Dernier message: 20/07/2007, 12h23
  3. Réponses: 4
    Dernier message: 20/06/2007, 18h34
  4. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 19h28

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