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 de fenêtre


Sujet :

GWT et Vaadin Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Par défaut Fermeture de fenêtre
    Bonjour,

    je développe actuellement une application sous gwt 2.5

    Voici mon problème:
    J'ai un bouton qui permet à l'utilisateur d'ouvrir une fenêtre, jusque la tout va bien, la fenetre s'ouvre correctement.
    Mon problème est lors de la fermeture, j'ai mis les deux méthodes Window.addWindowClosingHandler et Window.addCloseHandler et le soucis c'est que ces deux méthodes agissent sur ma fenêtre principale et non celle que j'ai ouverte. Est-il possible de faire la même chose mais pour capturer la fermeture de la fenêtre que je viens d'ouvrir?




    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
    @UiHandler("monBouton")
    void onClickBoutton(ClickEvent e){
    	Window.open("monUrl","newWindowName","menubar=no,location=no,resizable=no,scrollbars=no" );
    	Window.addWindowClosingHandler(new Window.ClosingHandler() {
    		@Override
            public void onWindowClosing(ClosingEvent event) {
                event.setMessage("You sure?");
            }});
     
        Window.addCloseHandler(new CloseHandler<Window>() {
     
        	@Override
    		public void onClose(CloseEvent<Window> event) {
        		System.out.println("je fonctionne !!!");
    		}});
    }
    Merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    salut,

    Moi, je le ferais avec un PopupPanel, cela demande recoder ta page en mode GWT, mais cela permet de contrôler ta nouvelle fenêtre ...

    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
     
     
    @UiHandler("monBouton")
      void onClickBoutton(ClickEvent e){
        PopupPanel popupPanel = new PopupPanel();
        popupPanel.setWidget(tonWidget);
        popupPanel.show();
        popupPanel.center();
        popupPanel.addCloseHandler(new CloseHandler<PopupPanel>() {
     
          @Override
          public void onClose(CloseEvent<PopupPanel> event) {
            // ton code        
          }
        });
      }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Par défaut
    Merci de ta réponse néanmoins, je débute un peu en gwt, quand tu met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        popupPanel.setWidget(tonWidget);
    tonWidget correspond a l'appel de Window.open ??

    Si ce n'est pas ca comment je fais pour lui spécifier l'url à atteindre ?

  4. #4
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    Non, popupPanel.show() va etre plus ton Window.open

    Le popuppanel est un SimplePanel, ce qui veut dire que tu peux rajouter un seul et unique widget à l'intérieur (contrairement à FlowPanel ou HTMLPanel qui sont des complexPanel, tu peux rajouter plusieurs widgets)

    tu définit ton widget que tu vas afficher via le popuppanel via la fonction setWidget. PopupPanel lui va du coup afficher son widget comme une popup ...
    Un peu de code sera plus explicite ...

    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
    @UiHandler("monBouton")
      void onClickBoutton(ClickEvent e) {
        final PopupPanel popupPanel = new PopupPanel();
        FlowPanel tonWidget = new FlowPanel();
        tonWidget.add(new InlineLabel("toktoktok"));
        Button closeButton = new Button();
        closeButton.setText("close");
        closeButton.addClickHandler(new ClickHandler() {
     
          @Override
          public void onClick(ClickEvent event) {
            if (Window.confirm("You sure?")) {
              popupPanel.hide();
            }
          }
        });
     
        tonWidget.add(closeButton);
        popupPanel.setWidget(tonWidget);
        popupPanel.show();
        popupPanel.center();
      }

    Je pense que avec ceci tu auras ce que je ferais par rapport à ton problème

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Par défaut
    j'ai essayer ca fonctionne mais ca ne résout pas totalement mon problème, ce que je veux c'est ouvrir une page web.
    Du coup dans ton code j'ai rajouté une ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	    Frame frame = new Frame("l'url que je veux atteindre");
    	    monWidget.add(new InlineLabel("toktoktok"));
    	    monWidget.add(frame);

    Le soucis c'est que je site auquel je veux avoir accès n'accepte pas l'encapsulation, d'ou mon utilisation première de Window.open...

    Pense tu qu'il y est un autre moyen de faire ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut
    Je ne comprends ce que tu veux dire par encapsulation ??
    Le soucis c'est que je site auquel je veux avoir accès n'accepte pas l'encapsulation, d'ou mon utilisation première de Window.open...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Par défaut
    Regarde ce post : http://www.developpez.net/forums/d12...conteneur-gwt/


    je veux faire la même chose a par que le site que je vise fait la même chose que google soit impossible à encapsuler.
    Donc pour palier ce problème j'ai voulu lancer une nouvelle page web via la commande Windows.open(urlDeMonSite)

    Et ensuite ce que je voudrais faire c'est déclencher une méthode lorsque cette nouvelle page se ferme et c'est la que je n'y arrive pas.

Discussions similaires

  1. [Javascript][VBScript]Détection de Fermeture de Fenêtre
    Par JohnBlatt dans le forum Windows
    Réponses: 1
    Dernier message: 24/01/2007, 16h09
  2. fermeture de fenêtre
    Par fontaigo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/04/2006, 21h17
  3. [WD9] Evénement de fermeture de fenêtre
    Par EpOnYmE187 dans le forum WinDev
    Réponses: 3
    Dernier message: 14/12/2005, 10h50
  4. ouverture et fermeture de fenêtre
    Par froggies dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 11h36
  5. opération sur fermeture de fenêtre
    Par java_math dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/06/2004, 22h52

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