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]Début difficile - Ou est ma vue ?


Sujet :

Eclipse Platform

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut [RCP]Début difficile - Ou est ma vue ?
    Bonjour à tous,

    Je commence la programmation en Java et je débute donc aussi sur Eclipse 3.2. J'ai suivi un tutorial récupéré dans un bouquin (Eclipse RCP) qui vous guide pas à pas vers une application de Chat. J'essaye en vain d'afficher une vue dans ma perspective. Je vous indique les étapes que j'ai suivi.

    1) J'ai créé un nouveau projet plug-in en indiquant une application RCP basée sur le template RCPHello.
    2) J'ajoute une extension vers org.eclipse.ui.views puis crée une nouvelle vue avec sa classe. Dans le constructeur de cette classe, j'appelle le super-constructeur.
    3) J'ajoute la vue à la perspective ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void createInitialLayout(IPageLayout layout) {
    		layout.setEditorAreaVisible(false);
    		layout.addView(ContactsView.ID, IPageLayout.LEFT, 1.0f,
                                                  layout.getEditorArea());
    }
    ContactsView.ID est correctement initialisé.

    Et là, lorsque je lance l'application, aucune vue n'est présente dans ma fenêtre. Qu'est-ce que j'oublie ?

    Merci pour vos futures réponses.

  2. #2
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 625
    Points : 2 479
    Points
    2 479
    Par défaut
    salut,

    Déjà, dans ta classe CreateInitialLayout, il te manque des chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public void createInitialLayout(IPageLayout layout) 
    	{
    		String editorArea = layout.getEditorArea();
    		layout.setEditorAreaVisible(true);
     
    		IFolderLayout folder = layout.createFolder("Onglets", IPageLayout.LEFT, 0.5f, editorArea);
    		folder.addPlaceholder(ExempleView.ID + ":*");
    		folder.addView(ExempleView.ID);  
    	}
    Ensuite dans ton plugin.xml, tu dois rajouter ta vue si elle n'est pas déclarée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <extension
             point="org.eclipse.ui.views">
             <view
                name="ExempleView "
                class="exemple.ExempleView"
                id="ExempleView">
          </view>
       </extension>
    Avec ca, ca devrait coller

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Non, malheureusement cela ne marche toujours pas avec ce code. La seule différence est que tu mets la vue dans un folder et le folder dans la perspective.
    Et je rappelle que j'ai suivi pas à pas un bouquin qui vaut la peau des fesses. Alors s'il y a des erreurs de codes je le retourne illico
    Par contre, dans le plugin.xml ma vue était déclarée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <view
                class="org.eclipsercp.hyperbola.ContactsView"
                icon="icons/alt_window_16.gif"
                id="org.eclipsercp.hyperbola.views.contacts"
                name="Contacts"/>
    J'ai essayé de finir par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                name="Contacts">
          </view>
    mais cela ne change rien.

  4. #4
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 625
    Points : 2 479
    Points
    2 479
    Par défaut
    as tu bien verifié que l'ID de ta vue etait bien la meme que celle déclaré dans ton plugin.xml ?

  5. #5
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 625
    Points : 2 479
    Points
    2 479
    Par défaut
    as tu crée un "product" ?

  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 : 330
    Points
    330
    Par défaut
    Est-ce que ta perspective est bien présente comme celle par défaut dans ton objet ApplicationWorkbenchAdvisor?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String getInitialWindowPerspectiveId() {
    		return Perspective.PERSPECTIVE_ID;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class Perspective implements IPerspectiveFactory {
     
    <div style="margin-left:40px">public static final String PERSPECTIVE_ID = "PlayMaker.perspective";
    public void createInitialLayout(IPageLayout layout) {...}</div>
    ta perspective doit aussi être bien définie dans ton plugin.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <extension
             point="org.eclipse.ui.perspectives">
          <perspective
                name="Playmaker Perspective"
                class="playmaker.perspectives.Perspective"
                id="PlayMaker.perspective">
          </perspective>
       </extension>
    Edit: En passant le livre est très bon, je ne le retournerais pas à ta place, si tu veux apprendre RCP.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    J'ai revérifié l'ID et tout est OK. Par contre, "product" ne me parle pas plus que ça

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Jean-Philippe Shields
    Est-ce que ta perspective est bien présente comme celle par défaut dans ton objet ApplicationWorkbenchAdvisor?
    Oui, j'ai vérifié.

    Citation Envoyé par Jean-Philippe Shields
    ta perspective doit aussi être bien définie dans ton plugin.xml
    C'est bon aussi. Ci-dessous une copie de Plugin.xml.
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.2"?>
    <plugin>
     
       <extension
             id="application"
             point="org.eclipse.core.runtime.applications">
          <application>
             <run
                   class="org.eclipsercp.hyperbola.Application">
             </run>
          </application>
       </extension>
       <extension
             point="org.eclipse.ui.perspectives">
          <perspective
                name="Hyperbola Perspective"
                class="org.eclipsercp.hyperbola.Perspective"
                id="org.eclipsercp.hyperbola.perspective">
          </perspective>
       </extension>
       <extension
             point="org.eclipse.ui.views">
          <view
                class="org.eclipsercp.hyperbola.ContactsView"
                icon="icons/alt_window_16.gif"
                id="org.eclipsercp.hyperbola.views.contacts"
                name="Contacts">
          </view>
       </extension>
     
    </plugin>
    Je suis désolé de vous embêter comme ça, mais j'ai rééssayé plein de chose avant de poster ce message. J'ai même fini par effacer mon répertoire éclipse et par tout réinstaller. J'ai vérifié et revérifié si par rapport au bouquin je n'avais pas oublié quelque chose. En plus, je fais mon apprentissage à deux endroits (chez moi et au boulot) et j'ai le même problème sur les 2 installations. J'ai essayé un autre tutorial et j'ai pas eu de meilleurs résultats. Bon l'avantage, c'est qu'à force de tripatouiller Eclipse je vais finir par le comprendre mais ca serait tellement mieux si je pouvais m'en servir

  9. #9
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 625
    Points : 2 479
    Points
    2 479
    Par défaut
    Si avec ca on y arrive pas....

    http://wiki.improve.fr/wiki/moni/tutoriels


    C'est quoi le bouquin en question ?

  10. #10
    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
    Es-tu sûr que l'application appelle bien ta vue? En mettant un breakpoint dans la fonction createPartControl() de ta vue, et en débogguant, est-ce que tu l'atteinds?

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Jean-Philippe Shields
    Es-tu sûr que l'application appelle bien ta vue? En mettant un breakpoint dans la fonction createPartControl() de ta vue, et en débogguant, est-ce que tu l'atteinds?
    Non, effectivement le programme ne s'arrête pas sur le breakpoint. Je vais cherché de ce côté là ce soir à la maison car maintenant, je manque de temps.
    Merci à tous pour vos messages. Ce forum est super réactif. Je vous tiens au courant de mes recherches.

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut De plus en plus bizarre....
    J'ai changé de poste de travail et j'ai lancé une application que j'ai téléchargé. Elle a fontionné normalement. Le bizarre dans tous cela, c'est que j'ai lancé mon appli de test après cet essai et que la vue que je ne voyais pas avant est apparue miraculeusement. Vous voulez du encore plus bizarre, attendez la suite. J'avais copié l'appli de test du premier poste de travail sur une clef pour la ramener à la maison. Au boulot, l'appli ne s'arrêtait pas sur le breakpoint, et un messages que j'envoyais sur la console (placé dans le constructeur de ma vue) ne s'affichait pas. Chez moi, en plaçant donc une copie exacte du dossier de l'application, tout marche nickel (depuis une demi-heure seulement puisqu'avant c'était pareil).
    Quelqu'un a une idée ?

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Bonjour,
    J'ai essayé le tutorial signalé par Cpt Anderson en sautant la 2eme partie pour uniquement me centrer sur la vue à créer. Et cela a fonctionné normalement.
    Ensuite, j'ai regardé les différences entre les deux applis créées et lorsqu'il y en avait, je corrigeais l'appli qui ne fonctionne pas pour essayer de voir ma vue (et surtout comprendre ce qui se passe). J'arrive donc a 2 applis pratiquement identiques dont une n'affiche pas ma vue. La seule différence qui subsiste est une fonction surchargée 'initialize' dans la classe 'ApplicationWorkbenchAdvisor' qui me permet de mémoriser la position et la taille de la fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
        public void initialize(IWorkbenchConfigurer configurer) {
     
            super.initialize(configurer);
            configurer.setSaveAndRestore(true);
    Je l'ai donc supprimée. Et là, miracle, la vue apparait. En fait en supprimant juste la ligne 'configurer.setSaveAndRestore(true)', cela marche aussi. Quelqu'un peut-il me dire pourquoi ? D'autant plus que chez moi (sur mon 2eme poste de travail) je ne me rappelle pas avoir supprimé cette méthode pour que cela marche (je vérifierais quand même ce soir ...)

  14. #14
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    configurer.setSaveAndRestore(true);
    Cette fonction, comme son nom l'indique sert à sauvegarder l'état dans lequel l'application s'est fermée pour la dernière fois. Je commence à comprendre un peu mieux le problème auquel tu as fais face.

    Il est probable que ton appli s'est sauvegardée avec ta vue étant fermée après que tu l'aies fermée pour la première fois. Les fois suivantes que tu ouvrais ton appli, ta vue ne s'est jamais lancée à cause du setSaveAndRestore. Tu pourrais sûrement répéter cette manoeuvre en fermant ta vue et après ton application et en la rouvrant sur les postes où tu as copié ton appli (probablement juste le code et non pas tout le workspace).

    Il y a aussi une option intéressante pour toi dans Run -> Run... -> onglet main de ton application. Un check box nommé clear workspace data before launching. Coche le et relance ton appli, tu devrais voir ta vue s'ouvrir à tous les coup, même avec la fonction précédente à true.

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Effectivement, j'ai fais l'essai sur le poste de travail ou ma vue apparaissait correctement. J'ai donc fermé ma vue, puis fermé l'application et après redémarrage ma vue n'était plus là. En effaçant l'espace de travail, elle est revenue !
    Je ferais l'essai sur le deuxième poste lundi car il y a encore quelque chose qui me chiffonne. Lorsque ma vue n'apparaissait pas, j'avais encore les petits icones 'réduire' et 'agrandir' en haut à droite. Alors que sur ce poste, lorsque je ferme la vue, ils disparaissent aussi.
    Merci beaucoup pour toutes ces infos. Je vous dirais lundi si cela fonctionne sur l'autre poste.

  16. #16
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Bonjour à tous,
    Effectivement, j'ai le même fonctionnement sur le poste de mon boulot. En fait, les icones de réduction et d'agrandissement qui restaient visibles étaient dû à l'éditeur par défaut que j'avais laissé visible sur ce poste par rapport à l'autre poste où je l'avais rendu invisible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layout.setEditorAreaVisible(false/true);

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/03/2010, 17h29
  2. Des débuts difficiles en php5
    Par DJesus dans le forum Langage
    Réponses: 31
    Dernier message: 08/03/2007, 15h06
  3. Début difficile en Visual C++ 2005 .NET
    Par kinouseb dans le forum C++/CLI
    Réponses: 6
    Dernier message: 22/11/2006, 09h20
  4. [RCP] Remplir un TableViewer d'une Vue depuis une Action
    Par DarkHope dans le forum Eclipse Platform
    Réponses: 16
    Dernier message: 26/06/2006, 15h06
  5. [RCP] Supprimer l'onglet de la vue
    Par Wookai dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 27/07/2005, 17h27

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