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 :

Changement de vue dans une perspective.


Sujet :

Eclipse Platform

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut Changement de vue dans une perspective.
    Bonjour,
    Ne sachant pas trop mettre ce post (SWT ou RCP) je choisi de le poster sur les deux.

    Je développe actuellement une application RCP, je souhaite mettre en place un fonctionnement que j'ai du mal a coder.
    Voilà mon application lance par défaut une perspective qui contient deux vues. La première est un arbre représentant mes objets métiers. Il s'agit d'une application gérant les notes des élèves. En conséquence, dans mon abre on retrouve les éléments suivants:
    Ecole1
    |-> Classe1
    | |-> Elève1
    | |-> Elève2
    |-> Classe2
    | |-> Elève3
    Ecole2 ...

    Ce que je souhaite mettre en place et que je n'arrive pas est le mode opératoire suivant:
    Lorsque je fais un clicque droit sur l'item j'affiche un menu contextuel dans lequel je peux ajouter une nouvelle classe à l'école sélectionnée, je souhaite donc dynamiquement dans la deuxième vue de ma perspective afficher ma vue de création de classe. De même lorsque je fais un clicque droit sur l'item Classe1 je souhaite pouvoir créer un nouvel élève et par conséquent afficher cette fois la vue de création d'élèves.

    Je n'arrive pas à faire cela dynamiquement, si quelqu'un peut me donner des pistes pour réalise mon mode opératoire je suis vraiment preneur car là je suis bloqué, merci d'avance de votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Personne n'a d'idée sur mon problème ?
    Déjà es ce que le mode opératiore que je souhaite mettre en place est réalisable compte tenu de l'architecture RCP ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Pour afficher une autre vue depuis la vue actuelle:

    this.getSite().getPage().showView(ViewToShow.ID);

    Pour le menu contextuel regarde "MenuManager" createContextMenu

    Salu2

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Bonjour,

    Concernant le menu contextuel c'est ok je l'ai codé, par contre je crois avoir déjà essayé le:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getSite().getPage().showView(ViewToShow.ID);
    et le résultat est qu'il m'affiche effectivement ma vue mais en plus de celle que je veux substituer.
    En fait mon besoin est le suivant:
    J'ai donc 2 vues une à gauche qui contient un arbre représentant mes objets métier sur lequel je veux effectuer des actions et une deuxième à droite que je veux rendre substituable en fonction des actions que je choisis dans la première.
    En effet je veux par exemple créer une nouvelle école alors je veux que ma deuxième vue soit la vue de création d'école, si je veux modifier les données d'une élève, je veux alors que ma deuxième vue soit celle de modification d'élève ....
    Je souhaite vraiment que deux vues.
    J'espère être claire, si ce n'est pas le cas demandé moi des précision pour que vous puissiez répondre.

    Merci d'avance.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Pour info voici le code de ma perspective:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    final String editorArea = layout.getEditorArea();
    layout.setEditorAreaVisible(false);
    layout.setFixed(true);
    // Vue fixe toujours visible.
    layout.addStandaloneView(MaussangTreeView.ID,  false, IPageLayout.LEFT, 0.2f, editorArea);
    // Vue substituable
    layout.addStandaloneView(EcoleView.ID,  false, IPageLayout.RIGHT, 0.2f, MaussangTreeView.ID);
    Je cherche mais je ne trouve pas le moyen de changer ma vue substituable par une autre. Y a t-il moyen dans une action de récupérer la perspective et de fermer ma vue substituable et de la remplacer par une autre ?.

  6. #6
    Membre habitué
    Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 177
    Points : 145
    Points
    145
    Par défaut
    ya peut etre un moyen masi je ne sais pas si c'est la meilleure solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    getSite().getPage().hideView(getSite().getPage().showView("ID de la vue a enlever"));
    getSite().getPage().showView("id de la nouvelle vue");

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Bonjour,
    Cela fonctionne, par contre ce qui ne m'embête est que je veux que ma nouvelle vue ne puisse pas être fermée et que l'onglet de vue ne s'affiche pas le plus.
    Le top est que je puisse récupérer ma perspective dans mon action et que je puisse ajouter ma vue avec les propriété d'affichage qu'initialement.

    J'espère être clair si ce n'est pas le merci de me le dire afin que je puisse être plus clair.

  8. #8
    Membre habitué
    Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 177
    Points : 145
    Points
    145
    Par défaut
    oui je vois ce que tu veux , tiens une autre solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    IWorkbenchPage page = PlatformUI.getWorkbench).getActiveWorkbenchWindow().getActivePage();
     
    	try {
    	     page.openEditor(input, MyNameEditor.ID);
                 } catch (PartInitException e) {
                     System.out.println(e.getMessage());
                 }
    j'ai trouvé ceci ici : http://www.vogella.de/articles/RichC...clipseoverview

    bonne lecture

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Ok pour le openEditor mais je ne pense pas que ça m'aide vraiment.
    Sinon j'ai pensé à un truc:
    Créer un objet qui soit chargé de la mise à jour de ma vue substituable, cela me permettra d'utiliser le code de stachus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getSite().getPage().hideView(getSite().getPage().showView("ID de la vue a enlever"));
    getSite().getPage().showView("id de la nouvelle vue");
    Cet objet sera un singleton et connaitera la vue actuellement en place et ouvrira la nouvelle. De plus je vais essayer ce soir dans cette objet de garder une référence sur ma perpective afin de voir si je ne peux pas jouer sur les propriété d'affichage.
    Par contre ça me parrait bizarre qu'il n'existe pas une méthode du type getPerpective en lui passant l'id de cette dernière.

    Que pensez-vous de mon idée ?

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Ma solution fonctionne
    Je vais vous l'exposer ma solution car ça pourra peut être aider qqu'un.
    Juste pour recadrer, mon application à une seule perspective qui contient 2 vues une qui ne bouge pas et l'autre qui est substituable.
    Donc j'ai crée un singleton de gestion de l'enchainement de mes vues.
    Ce dernier à une référence sur ma perspective ainsi que l'identifiant de la vue en cours dans la partie substituable.
    Dans une action lorsque je veux fermer ma vue et la remplacer par une autres, je demande à mon Gestionnaire qui ferme la vue en cours par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    IViewPart view = page.findView(EcoleView.ID);
    page.hideView(view);
    et ensuite j'ouvre la nouvelle vue par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GestionnaireAffichage gest = GestionnaireAffichage.getInstance();
     	                    			Perspective perspective = gest.getPerspective();
     	                    			perspective.layout.addStandaloneView(ClasseView.ID,  false, IPageLayout.RIGHT, 0.2f, MaussangTreeView.ID);
    Cette solution fonctionne mais je me demande si RCP n'offre pas cette possibilité dans son framework et notemment pour récupérer une référence sur la perspective.
    Que pensez-vous de ma solution ???





    Sinon j'ai pensé à un truc:
    Créer un objet qui soit chargé de la mise à jour de ma vue substituable, cela me permettra d'utiliser le code de stachus:
    Code :


    getSite().getPage().hideView(getSite().getPage().showView("ID de la vue a enlever"));
    getSite().getPage().showView("id de la nouvelle vue");


    Cet objet sera un singleton et connaitera la vue actuellement en place et ouvrira la nouvelle. De plus je vais essayer ce soir dans cette objet de garder une référence sur ma perpective afin de voir si je ne peux pas jouer sur les propriété d'affichage.
    Par contre ça me parrait bizarre qu'il n'existe pas une méthode du type getPerpective en lui passant l'id de cette dernière.

    Que pensez-vous de mon idée ?

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

Discussions similaires

  1. RCP: Comment disposer les vues dans une perspective
    Par idefixx dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 02/02/2012, 17h30
  2. Ouverture d'une vue dans une autre perspective
    Par Munch dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 25/05/2010, 14h18
  3. Réponses: 3
    Dernier message: 07/08/2009, 09h59
  4. [RCP] Trouver une vue dans une autre perspective
    Par Nikk0 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 29/03/2007, 10h27
  5. Changements de colonnes dans une BDD MySQL
    Par arnaud_verlaine dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2003, 11h33

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