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

GWT et Vaadin Java Discussion :

Fermeture D'une application GWT-ext


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut Fermeture D'une application GWT-ext
    Bonjours,

    J'aimerais savoir si il existe une méthode qui s'exécute automatiquement a la fermeture de l'application.
    Un peu dans le même genre que ModuleOnLoad() qui s'exécute au lancement sauf qu'il faudrait que ca s'exécute a la fermeture.

    Merci d'avance pour votre aide

    Cordialement

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    En html de base, il y a onUnload qui est à la fermeture ce que onLoad est à l'ouverture.

    En gwt, la méthode onModuleLoad du module est appelé sur l'évenement onLoad de la page html du module.

    En gwt toujours, j'ai un module qui implémente l'interface ClosingHandler donc sa méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        /*
         * @see com.google.gwt.user.client.Window.ClosingHandler#onWindowClosing(com.google.gwt.user.client.Window.ClosingEvent)
         */
        public void onWindowClosing(ClosingEvent event)
        {
            // callActionOnUnload.execute();
        }
    Bien entendu, ne pas oublier d'enregistrer l'écouteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public void onModuleLoad()
        {
            Window.addWindowClosingHandler(this);
     
            // callActionOnLoad.execute();
        }
    Ici, c'est fait dans onModuleLoad() et c'est this car l'objet en paramètre doit etre un ClosingHandler, celui qui contient la méthode onWindowClosing et dans mon exemple, c'est le module lui-même.

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut re
    Merci pour votre réponse,

    Je suis débutant alors pardonné ma question,

    Dois-je créer une interface qui implémente ClosingHandler ?

    Quand j'ecris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void onModuleLoad() { 
     
        	// grey style of the Application
    		CSS.swapStyleSheet("theme","js/ext/resources/css/xtheme-       gray.css");
    		loginWindow = new GWTLoginWindow(this);
    		loginWindow.show();
    		Window.addWindowClosingHandler(this);
     
        }
    J'ai cette erreur :
    The method addWindowClosingHandler(GWTA2T2LiveManager) is undefined for the type Window
    Que dois-je faire ?

    cordialement

  4. #4
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class GWTA2T2LiveManager implements ClosingHandler
    et implémenter les méthodes qui manquent.

    ou faire ca dans une classe a part

  5. #5
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Dois-je créer une interface qui implémente ClosingHandler ?

    1) C'est ton module qui peut implémenter ClosingHandler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public class TonModule
    implements   EntryPoint, ClosingHandler

    Que dois-je faire ?

    2) pour ton erreur, c'est probablement parce que dans ton module, c'est la classe Window de ext qui doit être importer.

    si tu ne t'en sers pas dans ta classe de ton module, remplace import com.extjs.gxt.ui.client.widget.Window; par import com.google.gwt.user.client.Window;

    si tu t'en sers dans ta classe de ton module, écris :
    com.google.gwt.user.client.Window.addWindowClosingHandler(this)

  6. #6
    Membre averti
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut re
    Voici ou j'en suis :

    Mon Interface ClosingHandler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    package com.genesys.A2T2.client;
     
    public interface ClosingHandler {
     
    	public void onWindowClosing(ClosingEvent event);
     
     
    }
    Une Erreur apparait sur le " Closing event" :

    ClosingEvent cannot be resolved to a type
    Mon module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class GWTA2T2LiveManager implements EntryPoint,ClosingHandler  {
     
     
    	public static final String VERSION = "0.9.0.1" ;
    	private Panel  main = new Panel();
    	private GWTLineContainerPanel containerPanel;
    	private GWTLineProprietesPanel proprietesPanel;
    	private GWTConsolePanel consolePan;
    	private GWTActivateLinePanel activatePanel;
    	public static A2T2LiveManager liveManager = new A2T2LiveManager();
    	private TabPanel tabPanel;
    	public static  HashMap<String, String> hm = new HashMap<String, String>(); 
    	private FormPanel lastReturn ;
    	private TextField textFieldReturn;
    	private TextField fieldSend ;
    	private Panel sendPan = new Panel();
    	private int rangeNb;
    	private int lineAvailable;
    	private String login;
    	private GWTLoginWindow loginWindow;
    	private GWTExitWindows exitWindow;
     
     
        public void onModuleLoad() { 
     
        	// grey style of the Application
    		CSS.swapStyleSheet("theme","js/ext/resources/css/xtheme-gray.css");
    		loginWindow = new GWTLoginWindow(this);
    		loginWindow.show();
    		com.google.gwt.user.client.Window.addWindowClosingHandler(this);
     
        }
    Il y a toujours la même erreur que précédemment :

    The method addWindowClosingHandler(GWTA2T2LiveManager) is undefined for the type Window
    Que dois-je faire maintenant ?

    Merci pour votre aide

    Cordialement

  7. #7
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Tu n'as pas à écrire d'interface ClosingHandler, elle existe déjà !
    Il te suffit de l'implémenter comme tu as fait.

    Eclipse devrait te proposer les classes à importer (ClosingHandler, ClosingEvent, ...) si tu fais un CTRL-SHIFT-O

    Il faut que tu es au final :

    import com.google.gwt.user.client.Window;
    import com.google.gwt.user.client.Window.ClosingEvent;
    import com.google.gwt.user.client.Window.ClosingHandler;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fermeture d'une application éxterne
    Par Matt2094 dans le forum Langage
    Réponses: 8
    Dernier message: 22/03/2006, 15h11
  2. Forcer la fermeture d'une application
    Par Bissada dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2005, 21h42
  3. fermeture d'une application après un temp d'inactivité?
    Par sitdown dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/08/2005, 15h44
  4. Détection de la fermeture d'une application
    Par vanitom dans le forum MFC
    Réponses: 6
    Dernier message: 19/08/2005, 18h11
  5. [Event]Annuler la fermeture d'une application
    Par willowII dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 16/11/2004, 09h28

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