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 :

DialogBox personnalisé + Handler Event


Sujet :

GWT et Vaadin Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut DialogBox personnalisé + Handler Event
    Bonjour,

    Je suis en train de travailler avec GWT et je souhaite créer ma propre DialogBox qui possèderait un bouton permettant de la fermer.

    Pour cela, j'ai une classe :
    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
    33
    34
    35
     
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.event.dom.client.ClickHandler;
    import com.google.gwt.user.client.Element;
    import com.google.gwt.user.client.Window;
    import com.google.gwt.user.client.ui.Button;
    import com.google.gwt.user.client.ui.DialogBox;
    import com.google.gwt.user.client.ui.HTML;
    import com.google.gwt.user.client.ui.HorizontalPanel;
     
    public class CustomDialogBox extends DialogBox implements ClickHandler {
     
    	Button close;
    	HTML caption = new HTML();
    	HorizontalPanel captionPanel = new HorizontalPanel();
     
    	public CustomDialogBox() {
    		close = new Button("x");
    		close.addClickHandler(this);
     
    		captionPanel.add(caption);
        	captionPanel.add(close);
        	captionPanel.setStyleName("caption");
     
        	Element td = getCellElement(0, 1);  // Get the cell element that holds the caption
        	td.setInnerHTML(""); // Remove the old caption
        	td.appendChild(captionPanel.getElement());
    	}
     
    	@Override
    	public void onClick(ClickEvent event) {
    		CustomDialogBox.this.hide();
    		Window.alert("click");
    	}
    }
    Le problème est que lorsque je clique sur le bouton, aucune des actions du onClick ne sont effectuées. Si je met le bouton dans le conteneur lui même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public CustomDialogBox() {
    		close = new Button("x");
    		close.addClickHandler(this);
     
    		this.add(close);
    	}
     
    	@Override
    	public void onClick(ClickEvent event) {
    		CustomDialogBox.this.hide();
    		Window.alert("click");
    	}
    Dans ce cas, l'alert passe bien mais le .hide() soit ne s'effectue pas soit ne fonctionne pas dans mon cas.

    Je souhaiterais savoir si quelqu'un sur ce forum aurait une idée de solution.

    Merci d'avance.

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par lilith_abaddon Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	@Override
    	public void onClick(ClickEvent event) {
    		CustomDialogBox.this.hide();
    		Window.alert("click");
    	}
    Cette ligne CustomDialogBox.this.hide(); est bizarre.
    Pourquoi pas simplement hide(); ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    C'est vrai que hide(); est plus logique.

    Par contre mon problème ne vient pas de là.

    Je ne sais pas pourquoi l'évènement click n'est pas envoyé quand le bouton est dans le caption de la dialog box.

  4. #4
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2011
    Messages : 51
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Il te manque la méthode setwidget(panel)

    public CustomDialogBox() {
    (...)
    captionPanel.setStyleName("caption");

    this.setWidget(captionPanel);

    (...)

    Maxime

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour la solution. Maintenant je récupère bien les évènements de la souris sur le bouton.

    Merci pour votre aide.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut dialog box personalisé
    je me permet de UP ce message car je suis confronté a une petite difficulté.

    Je souhaiterais faire apparaître une dialogbox à un endroit précis (de façon personnalisé) car pour l'instant mes dialogbox ne s'ouvre qu'au milieu de l'écran


    Merci !

Discussions similaires

  1. Contrôle personnalisé et event
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 24/06/2010, 23h20
  2. event handler et accès anonyme
    Par @melie dans le forum SharePoint
    Réponses: 5
    Dernier message: 25/08/2007, 20h17
  3. Réponses: 1
    Dernier message: 15/08/2007, 16h45
  4. Birt Event Handler
    Par medbass dans le forum BIRT
    Réponses: 8
    Dernier message: 07/08/2006, 15h51
  5. Problème avec event handler
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2005, 10h31

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