2017-02-21 1 views
0

J'ai une application RCP avec le nombre de vues. Il y a une vue "Bienvenue" et d'autres vues. Chaque fois que je sélectionne « Bienvenue » point de vue, d'autres vues sont fermées à l'aide du code,Comment fermer une vue dans une application RCP?

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView(viewID); 

(Remarque: La dépendance d'autres plug-in est ajouté au plug-in où « Bienvenue » vue est présent.)

De la même manière, je souhaite fermer la vue "Bienvenue" lorsque je sélectionne d'autres vues depuis la barre de contrôle ou la boîte de dialogue Afficher la vue. Le problème est, si j'utilise le même code que ci-dessus en ajoutant la dépendance, il provoque une dépendance cyclique dans mon application et des erreurs de lancement. Comment puis-je le faire sans provoquer de dépendance cyclique?

+0

C'est le code correct qui ne crée pas, en soi, de dépendance cyclique. Quels sont les messages exacts que vous recevez? Où essayez-vous d'utiliser cela? –

+0

@ greg-449: Je l'utilise dans la méthode createPartControl(). J'ajoute la dépendance des autres vues dans le plug-in où la vue 'Bienvenue' est présente. Maintenant Si j'ajoute la dépendance du plug-in de vue "Bienvenue" aux autres plug-ins pour masquer la vue "Bienvenue", cela provoque une dépendance cyclique. –

+0

Vous n'avez pas besoin d'ajouter de dépendances au plugin contenant la vue que vous essayez de fermer. Tout ce dont vous avez besoin est l'identifiant de la vue. La dépendance cyclique signifie que vous avez deux plugins qui dépendent l'un de l'autre - ceci n'est pas autorisé car cela signifie que le constructeur ne peut pas déterminer lequel construire en premier. –

Répondre

0

Ceci est le code correct pour fermer une vue.

Vous n'avez pas besoin de rendre le plug-in contenant la vue dépendante du plug-in qui effectue la fermeture. Tout ce dont vous avez besoin est l'identifiant de la vue.

La dépendance cyclique signifie que vous avez deux plug-ins A et B avec A en fonction de B et B selon A. Cela n'est pas autorisé car il est impossible de créer proprement les plug-ins. Vous devez modifier les dépendances pour supprimer le cycle.