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 :

Créer un widget et propager les évènements


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut Créer un widget et propager les évènements
    Bonjour j'ai fait un widget à partir de composite.
    Ce widget contient un bouton et j'aimerais que le clique sur ce bouton soit re transmis par mon widget.
    Pouvez vous m'aider ? ou m'orienter vers la bonne doc ?
    Merci bcp.

  2. #2
    Membre éclairé
    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
    Par défaut
    Bonsoir,

    Peut être trouveras tu ton bonheur ici : http://courses.coreservlets.com/Cour...GWT-Events.pdf

    Maxime

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 41
    Par défaut
    Bonjour,
    Tu peux faire des listeners comme pour les applications desktop:
    Tous d'abord, dans ton code client, crée l'interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface CustomWidgetOkListener {
     
    	void okClicked(ClickEvent event);
     
    }
    Ensuite Modifie ta classe composite comme cela:

    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
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.event.dom.client.ClickHandler;
     
    public class CustomWidget extends Composite {
     
    	private final Collection<CustomWidgetOkListener> okListeners = new ArrayList<CustomWidgetOkListener>();
     
    	public CustomWidget(){
    		PushButton bttOk = new PushButton("ok");
    		bttOk.addClickHandler(new ClickHandler(){
    			@Override
    			public void onClick(ClickEvent event) {
    				fireOkListener(event);
    			}
    		});
    	}
     
    	public void adOkListener(CustomWidgetOkListener l){
    		this.okListeners.add(l);		
    	}
     
    	public void removeOkListener(CustomWidgetOkListener l){
    		okListeners.remove(l);		
    	}
    	protected void fireOkListener(ClickEvent event){
    		for(CustomWidgetOkListener listener : okListeners) {
    			listener.okClicked(event);
    		}
    	}
    }
    Puis Dans le panel qui contient ton custom widget, ajoute le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CustomWidget widget = new CustomWidget();
    widget.adOkListener(new CustomWidgetOkListener(){
    	@Override
    	public void okClicked(ClickEvent event) {
    		//action
    	}
    });
    J'espère que ca t'aidera.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut
    Merci JFmil53_2, ca ressemble beaucoup à ce que je veux faire.

    Et merci pour la doc, je la garde dans mes favoris.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut
    Il ne faut pas que ma class implement une interface particuliere ?

    [QUOTE=JFmil53_2;6456571]...
    Ensuite Modifie ta classe composite comme cela:

    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
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.event.dom.client.ClickHandler;
     
    public class CustomWidget extends Composite {
     
    	private final Collection<CustomWidgetOkListener> okListeners = new ArrayList<CustomWidgetOkListener>();
     
    	public CustomWidget(){
    		PushButton bttOk = new PushButton("ok");
    		bttOk.addClickHandler(new ClickHandler(){
    			@Override
    			public void onClick(ClickEvent event) {
    				fireOkListener(event);
    			}
    		});
    	}
     
    	public void adOkListener(CustomWidgetOkListener l){
    		this.okListeners.add(l);		
    	}
     
    	public void removeOkListener(CustomWidgetOkListener l){
    		okListeners.remove(l);		
    	}
    	protected void fireOkListener(ClickEvent event){
    		for(CustomWidgetOkListener listener : okListeners) {
    			listener.okClicked(event);
    		}
    	}
    }

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 41
    Par défaut
    Non pas besoin, regarde ici:

    http://rom.developpez.com/java-listeners/

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut
    Merci, c'est bon.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/05/2012, 10h42

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