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?
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. –
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! –
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. –