2010-04-23 5 views
0

J'ai un plugin dans une application eclipse rcp. J'ai besoin de détecter un scénario chaque fois qu'une perspective particulière est fermée ou si l'application est fermée et en fonction du résultat, il se peut que je doive annuler la fermeture de l'application ou de la perspective. Si j'avais accès à la classe WorkbenchAdvisor de l'application, ce serait trivial. Comme un plugin pour cette application, comment puis-je détecter l'événement et comment puis-je dire à l'application principale/conseiller que j'ai besoin d'avoir la fermeture annulée?Comment interrompre Eclipse RCP shutdown

Répondre

1

Avez-vous envisagé d'installer un IWorkbenchListener et d'étendre la méthode preShutdown? Il semble que vous puissiez mettre votre veto à un arrêt en utilisant ce mécanisme.

+0

Cela fonctionne très bien pour capturer l'arrêt du workbench lorsque l'application se ferme et peut en effet être ce que je suis coincé avec. Je ne peux rien trouver pour détecter et bloquer la fermeture d'une perspective. Je peux utiliser un IPerspectiveListener3 pour détecter la fermeture, mais cela ne permet pas de l'annuler. – Doug

0

Je pense que vous voulez faire est impossible. Si un plug-in peut empêcher une application rcp de s'arrêter (ou l'inverse), cela peut être un sérieux problème de sécurité. De plus, l'état de l'application ne serait pas clair car il pourrait avoir libéré certaines ressources.

Si une application souhaite donner le contrôle de la terminaison d'un programme à un plug-in, elle doit définir un point d'interface/d'extension qui peut être utilisé.