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 :

Evènement lors de la fermeture de l'application


Sujet :

Eclipse Platform

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut Evènement lors de la fermeture de l'application
    Bonjour,
    Je suis en train de développer une application Eclipse et je me confronte à un problème concernant la fermeture de cette application.
    Voici mon Handler qui se lance à la fermeture de l'application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class ExitHandler {
    	@Execute
    	public void execute(IWorkbench workbench,
    			@Named(IServiceConstants.ACTIVE_SHELL) Shell shell){
    		if (MessageDialog.openConfirm(shell, "Confirmation",
    				"Do you want to exit?")) {
    			workbench.close();
    		}
    	}
    }
    Ca marche parfaitement si l'utilisateur fait "File -> Exit".
    En revanche, ça ne marche pas si il clique sur la croix rouge ou fait Alt+F4.

    Ma question est donc comment faire pour que le handler soit appelé pour ces 2 dernières actions ?

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux facilement exécuter du code lors l'arrêt de l'application RCP, en intervenant sur le WorkbenchAdvisor, dans les méthodes preShutDown() et postShutDown().


    EDIT : j'oubliais, si tu veux interférer avec l'UI, il te faudra, de façon similaire, intervenir sur le WorkbenchWindowAdvisor, sur les méthodes preWindowShellClose() et postWindowClose().
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Je te remercie de ta réponse.
    Le truc c'est que je suis Eclipse 4.3, et je n'arrive pas à trouver l'équivalent..

    Et il me semble que ta solution n'est valable qu'en 3.7, non ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ah oui, c'est en Eclipse 3 effectivement, ma solution.

    Eclipse 4, je ne connais que de loin, mais jamais utilisé. Je crois qu'il il y a un système de gestion de cycle de vie (LifeCycle) : il y a peut être un moyen d'écouter le cycle de vie de l'application...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    J'ai bien peur d'être obligé de passer par là.
    J'espérais qu'il y avait une méthode plus simple qui permettait d'appeler le Handler directement.
    Genre un truc à déclarer dans le application.e4xmi.

    Si jamais je trouve je reviendrai poster ma solution.

    Merci de ton aide et de ton temps en tout cas !

  6. #6
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Alors, j'ai testé vite fait. Tu peux effectivement te brancher au LifeCycle, mais l'événement qui pourrait t'intéresser @PreDestroy arrive trop tard...
    Du coup, pas sûr de savoir comment tu peux faire.
    À moins d'avoir un Activator pour ton application, ce qui te simplifiera le travail.

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Je n'ai malheureusement pas d'Activator..
    Mais je trouve ça dingue qu'il n'y ait rien dans l'application.e4xmi qui permette de faire ça !

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/06/2012, 20h36
  2. Access Violation lors de la fermeture d'une application
    Par Jean-Jacques Engels dans le forum EDI
    Réponses: 1
    Dernier message: 22/06/2011, 12h33
  3. nullreferenceexception lors de la fermeture de l'application
    Par calipanpan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/06/2008, 21h47
  4. [EasyPHP] Pb lors de la fermeture de mon application avec ou sans fermeture de Easy Php
    Par Lolie11 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/06/2007, 10h38
  5. Evènement sur le body lors de la fermeture d'une fenêtre
    Par Yaz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/09/2005, 17h54

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