2017-05-09 3 views
0

Je développe une application RCP eclipse, qui utilise une perspective personnalisée. Cette perspective personnalisée présente certains éléments de base, tels que l'Explorateur de packages, l'éditeur de texte et deux de mes propres vues personnalisées (similaires les unes aux autres et placées côte à côte dans la moitié inférieure de la fenêtre).Eclipse RCP - Perspective personnalisée, lorsqu'elle est activée "La partie référencée n'existe pas encore:"

quand j'active la perspective, cette erreur se produit:

!ENTRY org.eclipse.ui 4 4 2017-05-08 20:15:29.777 
    !MESSAGE Referenced part does not exist yet: {myView2's view id}. 
    ContributedPartRenderer$2 {} 

Voici ma classe en perspective

public class myPerspective implements IPerspectiveFactory { 
public void createInitialLayout(IPageLayout layout) { 
    IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, (float) 0.5, myView2.VIEW_ID); 
    IFolderLayout top = layout.createFolder("top", IPageLayout.TOP, (float) 0.67, IPageLayout.ID_EDITOR_AREA); 

    bottom.addView(myView1.VIEW_ID); 
    bottom.addView(myView2.VIEW_ID); 
    top.addView(IPageLayout.ID_EDITOR_AREA); 

     } 
    } 

Et voici ma plugin.xml (partie relative à la perspective seulement).

 <extension 
    point="org.eclipse.ui.perspectives"> 
    <perspective 
     class="perspective.myPerspective" 
     id="perspective.myPerspective" 
     name="My Perspective"/> 
     </extension> 

    <extension 
    point="org.eclipse.ui.perspectiveExtensions"> 
    <perspectiveExtension targetID="perspective.myPerspective"> 
    <view 
      id="myView1.VIEW_ID" 
      relationship="left" 
      relative="bottom"/> 
    <view 
      id="myView2.VIEW_ID" 
      relationship="right" 
      relative="bottom"/> 
    </perspectiveExtension> 

Lorsque je crée « bas » du IFolderLayout, je pouvais mettre le myView1.VIEW_ID comme paramètre, et l'erreur dirais qu'il n'a pas encore été créé, plutôt que de ne pas avoir été myView2 créé encore. Quel que soit l'identifiant de la classe de vue, il y a des erreurs quand la perspective est ouverte, mais l'autre fonctionne bien.

Comment puis-je résoudre le problème de manière à ce que les deux vues se comportent normalement et soient créées et affichées comme elles le devraient dans la perspective personnalisée?

Répondre

0

Il semble que la valeur de VIEW_ID dans votre classe myView1 est incorrecte. Donner la déclaration de vue dans le plugin.xml il devrait être:

public static final String VIEW_ID = "myView1.VIEW_ID"; 
+0

Oui, dans mon code original, j'ajouter les deux points de vue à l'usine en perspective, juste une faute de frappe dans la question que je vais mettre à jour. –

+0

Alors maintenant, myView1 est dans le coin en bas à gauche (comme il se doit), mais le quadrant de myView2 est divisé verticalement avec cette partie de vue vide. Je pense que cela a quelque chose à voir avec la ligne créant le dossier? Devrais-je essayer de passer null à la création de IFolderLayout? Suggestions bienvenues! –

+1

Veuillez ne pas poser de questions de suivi dans les commentaires. Acceptez cette réponse et posez une nouvelle question montrant ce que vous obtenez et ce que vous voulez réellement. –