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 :

Débutant RCP - Question sur l'architecture


Sujet :

Eclipse Platform

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Débutant RCP - Question sur l'architecture
    Bonjour,

    je commence une application RCP et j'ai un peu de mal à déterminer l'architecture globale de la chose avant de commencer le développement.
    Je m'explique grosso-modo :

    Je dois développer une application MDI. A partir de la barre de menus j'affiche une fenêtre, qui elle-même peut faire appel à d'autres fenêtres filles et ainsi de suite.

    Donc mes questions sont, sous RCP,

    dois-je créer une nouvelle perspective (soit changer la perspective et donc la vue) à chaque fois que je veux changer de fenêtre via la barre de menus ?

    Puis-je effectuer des enchaînements de fenêtre ( Shell si j'ai bien compris ) partir de la même vue ?

    J'espère mettre fait comprendre.

    En vous remerciant pour vos réponses

  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 : 340
    Points
    340
    Par défaut
    Citation Envoyé par LoloBebop
    Je dois développer une application MDI. A partir de la barre de menus j'affiche une fenêtre, qui elle-même peut faire appel à d'autres fenêtres filles et ainsi de suite.
    Une application MDI peut être imaginée en Eclipse avec une perspective de base qui contient plein de vues enfants.

    dois-je créer une nouvelle perspective (soit changer la perspective et donc la vue) à chaque fois que je veux changer de fenêtre via la barre de menus ?
    Non. Tu peux simplement changer la vue. (plusieurs vues dans une perspective)

    Puis-je effectuer des enchaînements de fenêtre ( Shell si j'ai bien compris ) partir de la même vue ?
    Oui. Un widget sera responsable d'instancier une action qui ouvrira une autre vue.
    RCP rulez!

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci pour ces réponses qui m'éclairent !!

    J'aurais quelques question. Je compte donc changer la vue. J'ai lu un article intéressant sur les créations de vue (http://www.eclipse.org/articles/view...wArticle2.html pour ceux qui ne connaissent pas et que ca intéresse)
    mais je n'ai pas trouvé comment remplacer une vue par une autre. Seulement ajouter une vue supplémentaire à la perspective en cours et cela ne me convient pas.

    Sinon, j'ai pour idée d'associer une action à chaque menuManager qui permettra d'instancier un objet de type Display puis un Shell; tout cela à partir de la classe ApplicationActionBarAdvisor ! Cela est-il envisageable ?
    Merci

  4. #4
    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 : 340
    Points
    340
    Par défaut
    Citation Envoyé par LoloBebop
    comment remplacer une vue par une autre
    Tu peux toujours fermer la première vue et par la suite ouvrir la deuxième au même endroit (dans un folder précis). Relativement facile à exécuter.

    Tu peux aussi utiliser un service de la plateforme qui t'informe qu'un changement dans la sélection du workbench est survenu. Et avoir un callback dans ta classe qui change ta vue en réponse à cet événement. (Beaucoup plus compliqué). Je ne me souviens pas exactement du service en question.

    Sinon, j'ai pour idée d'associer une action à chaque menuManager qui permettra d'instancier un objet de type Display puis un Shell; tout cela à partir de la classe ApplicationActionBarAdvisor ! Cela est-il envisageable ?
    Tu peux effectivement faire n'importe quoi (ou à peu près ) dans le run() d'une action qui est intégrée à un menuManager. Mais la difficulté sera d'instancier ton shell dans une vue précise pour qu'il y ait une intégration avec le workbench. (là j'avoue que j'ai aps trop bien compris )
    RCP rulez!

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Oui désolé si je me fais pas bien comprendre

    Déjà j'ai pas l'habitude de développer en Java, et là on me file un projet à faire sous RCP ! Donc je rame un peu

    J'ai lu les 3 tutoriaux en anglais du site Eclipse.org, regarder quelques articles et malgré tout ca (bien que je vois mieux comment marche RCP) j'ai un peu de mal à démarrer

  6. #6
    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 : 340
    Points
    340
    Par défaut
    Pas de trouble on est tous là pour t'aider.
    RCP rulez!

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Oui c'est gentil de consacrer du temps à un pauvre stagiaire qui galère pas mal () ^^

    Je dois migrer une application qui existe déjà (développée avec Windev) vers une autre de type RCP, tout en respectant la structure de l'ancienne :

    Une fenêtre de base (fenêtre-mère) dans laquelle plusieurs fenêtres viennent s'ouvrir et se fermer suivant l'humeur de navigation de l'utilisateur.

    Bon, après avoir lu plusieurs documentations et compris les principes de base du fonctionnement RCP (du moins je pense) je me suis dis "je vais bosser sur une perspective, y ajouter une vue qui sera la fenêtre mère et qui restera l'élément de fond. A partir de là je vais enchainer des fenêtres, à l'intérieur de cette vue, qui seront appelées à partir de la barre de menus ou d'une autre fenêtre déjà ouverte. Comme cela, je respecte bien l'aspect de la version développée sous Windev. Facile !!".

    Seulement voilà, au niveau du code je coince :

    1) Enchainer des fenêtres dans une seule vue me semble bien pénible à gérer.

    2) Au niveau code, je n'arrive même pas à en afficher une dans la vue. Je ne vois absolument pas comment faire

  8. #8
    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 : 340
    Points
    340
    Par défaut
    Citation Envoyé par LoloBebop
    "je vais bosser sur une perspective, y ajouter une vue qui sera la fenêtre mère et qui restera l'élément de fond. A partir de là je vais enchainer des fenêtres, à l'intérieur de cette vue, qui seront appelées à partir de la barre de menus ou d'une autre fenêtre déjà ouverte
    Tu vois, moi j'utiliserais la perspective comme fenêtre de fond et après mes vues s'ouvriraient et se fermeraient dans la perspective. Plus facile à faire et le workbench d'Eclipse sert justement à ça.

    Enchainer des fenêtres dans une seule vue me semble bien pénible à gérer
    Je suis du même avis que toi.

    Au niveau code, je n'arrive même pas à en afficher une dans la vue. Je ne vois absolument pas comment faire
    Quand tu veux construire une vue, la fonction principale qui est appelée à son ouverture dans ta classe dérivant de ViewPart c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    createPartControl(Composite parent)
    à l'intérieur de cette fonction tu dois créer ce que tu veux. Certains viewer peuvent être réutilisés comme un TextViewer ou un TableViewer. Sinon tu utilises les SWT pour créer des boutons, checkbox, etc.
    RCP rulez!

  9. #9
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380

  10. #10
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci bien pour vos réponses, j'ai déjà bien avancé

    J'aurais encore quelques questions (on est jamais satisfait)

    - Est-il possible d'afficher une image de fond à la perspective ? j'ai pas trouvé comment faire et lorsque toutes les vues sont fermées cela fait un peu vide

    - Une première vue en appelle une seconde. J'aimerais refaire appelle à la première vue à la fermeture de la seconde. Comment puis-je m'y prendre, soit garder en mémoire la première vue, tout en gardant une architecture propre au niveau de mes classes (je ne finirais pas le projet et je rendre quelque chose facile à reprendre en main).

    Merci d'avance

  11. #11
    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 : 340
    Points
    340
    Par défaut
    Citation Envoyé par LoloBebop
    - Est-il possible d'afficher une image de fond à la perspective ? j'ai pas trouvé comment faire et lorsque toutes les vues sont fermées cela fait un peu vide
    Je ne suis pas sûr, mais je ne crois pas non.

    - Une première vue en appelle une seconde. J'aimerais refaire appelle à la première vue à la fermeture de la seconde. Comment puis-je m'y prendre, soit garder en mémoire la première vue, tout en gardant une architecture propre au niveau de mes classes (je ne finirais pas le projet et je rendre quelque chose facile à reprendre en main).
    La vue reste en mémoire dans workbench même si elle est fermée et va se rouvrir dans le même état que quand elle s'est fermée. Pour ouvrir une vue utilise la fonction showView() dans IWorkbenchPage
    RCP rulez!

  12. #12
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Ok pour la perspective ! C'est dommage, cela pourrait être intéressant.
    D'accord pour les vues, c'est bien ce que je pensais. Ils suffit de gérer ensuite en fonction des différents évènements !

    En revanche, j'ai créé différentes vues mais lorsque que je les affiche, le contenu de ces vues n'est pas centré par rapport à la taille de la fenêtre. J'ai essayé de faire un GridLayout au niveau SWT d'y ajouter le composite de la vue afin de garder le contenu du composite centré quelque soit la taille de la fenêtre mais rien n'y fait.

    Donc soit j'ai mal compris la doc en anglais, soit mon statut de débutant en Java se confirme ^^

    Merci.

Discussions similaires

  1. [Débutant] Autre question sur Const
    Par Faiche dans le forum Débuter
    Réponses: 9
    Dernier message: 21/10/2008, 14h08
  2. [MOSS] question sur l'architecture du SI l'accueuillant
    Par lelutin dans le forum SharePoint
    Réponses: 5
    Dernier message: 10/11/2007, 17h47
  3. [débutant] 2 questions sur les formulaires
    Par pepper18 dans le forum IHM
    Réponses: 3
    Dernier message: 19/04/2007, 11h50
  4. [Débutant] Deux questions sur la conversion (cast)
    Par kloss dans le forum Langage
    Réponses: 7
    Dernier message: 18/02/2006, 19h46

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