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 :

ClickEvent non déclenché GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut ClickEvent non déclenché GWT
    Bonjour,

    je programme sous eclipse avec gwt et je veux récupérer un event correspondant au clickdroit.
    Cependant l’événement n'est créer que lorsque j'appuie sur le bouton gauche de la souris (le bouton droit ou celui de la molette ne déclenche rien).
    Je précise que j'ai désactiver l'affichage du menu contextuel lorsqu’on appui sur le droit avec <body oncontextmenu="return false">, je pense que c'est là d'où vient le problème..

    Voilà la partie de mon code, merci pour vos réponses

    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
     
     
    class MyHandler implements ClickHandler{
     
    		Image i;
     
    public void onClick(ClickEvent event) {
     
     
    			i = ((Image) event.getSource());
     
    			i.addClickHandler(new ClickHandler(){
    		        public void onClick(ClickEvent event) {
     
    		      if(event.getNativeButton() == NativeEvent.BUTTON_RIGHT){ ........

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    avril 2002
    Messages
    13 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : avril 2002
    Messages : 13 935
    Points : 22 988
    Points
    22 988
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est normal en JavaScript le "click" ne concerne que le bouton gauche.
    Pour détecter tous les clicks il faudrait ajouter des MouseDownHandler/MouseUpHandler et détecter le click (même élément, même position).



    a++

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ok merci

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Une autre petite question concernant un problème dans le même projet, j'ai écrit ce bout de code qui fonctionne pas parfaitement :

    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
     
    			zoom.addClickHandler(new ClickHandler(){
    				public void onClick(ClickEvent event) {
    		        	zoom();
    		            jpg.addClickHandler(new ClickHandler(){
    						public void onClick(ClickEvent event) {
    							clickZoom();
    						};
    				    });
    		        };
    		    });
     
    			dezoom.addClickHandler(new ClickHandler(){
    				public void onClick(ClickEvent event) {
    		        	deZoom();
    		        	jpg.addClickHandler(new ClickHandler(){
    						public void onClick(ClickEvent event) {
    							clickDezoom();
    						};
    				    });
    		        };
    		    });
    la fonction zoom/deZoom sert, après avoir cliqué sur le bouton de zomm/dezoom, à afficher un curseur différent quand on survole l'image et la fonction clickZoom/clickDezoom à changer la taille de l'image quand on clique dessus. Les objets zoom/dezoom et jpg représentent respectivement des PushButton et une image de type Image (version GWT).

    Le problème est que je dois cliquer deux fois sur le bouton zoom ou dézoom pour que l'image soit bien zoomé ou dézoomé quand je clique dessus.

    Merci pour vos réponses.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : juin 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    up!

  6. #6
    Membre à l'essai
    Inscrit en
    février 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Donne nous ton code pour la prochaine question, ce sera plus facile


    Sinon, lorsque tu fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    zoom.addClickHandler(new ClickHandler(){
      public void onClick(ClickEvent event) {
        zoom();
        jpg.addClickHandler(new ClickHandler(){
          public void onClick(ClickEvent event) {
            clickZoom();
          };
        });
    };
    Tu ajoutes un clickHandler sur le zoom qui va :
    1. Changer le curseur
    2. Ajouter un clickHandler sur l'image


    A chaque clic sur le bouton, tu va donc ajouter un clickHandler supplementaire, qui va zoomer ou dezoomer lorsqu'on va cliquer sur l'image. =>C'est un problème, puisque lorsque tu va cliquer 1 fois sur l'image, il va zoomer ou dezoomer autant de fois que tu as cliqué sur les deux autres boutons.

    Le plus simple serait de poser trois clickHandler au début de ton application :
    1. 1 click handler sur le ZoomBouton, qui va changer un boolean a true pour dire : la prochaine fois qu'on clic sur l'image, il faut zoomer
    2. 1 click handler sur le dezoomBouton, qui va changer un boolean a false pour dire : la prochaine fois qu'on clic sur l'image, il faut dezoomer
    3. 1 click handler sur l'image (et 1 seul, que tu ajoutes au debut), qui va regarder la valeur du boolean, et s'il est a vrai, il zoom, s'il est a faux, il dezoom.


    Au niveau du code, cela donnerait ça : (attention, il n'est pas testé je n'ai pas d'ide sous la main, ce sont uniquement les grandes lignes)

    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
     
        //par defaut, on considere qu'on va zoomer
        private boolean doitOnZoomer = true;
     
        public void onModuleLoad(){
          boutonZoom.addClickHandler(new ClickHandler(){
            @Override
            public void onClick(ClickEvent event) {
              //si on clic sur ce bouton, on retient juste qu'on va devoir zoomer au prochain clic
              doitOnZoomer = true;           
            }
          });
          boutonDezoom.addClickHandler(new ClickHandler(){
            @Override
            public void onClick(ClickEvent event) {
              //si on click sur ce bouton, on retient juste qu'on va devoir dezoomer au prochain clic
              doitOnZoomer = false;           
            }
          });
     
          monImage.addClickHandler(new ClickHandler(){
            @Override
            public void onClick(ClickEvent event) {
              //on regarde si on doit zoomer ou dezoomer, et on agit en c
              if(doitOnZoomer) {
                clickZoom();
              } else {
                clickDezoom();
              }
            };
         });
    }


    Juste pour information, de manière plus générale, lorsque tu poses un clickHandler, tu recupères un HandlerRegistration (La javadoc : http://www.gwtproject.org/javadoc/la....ClickHandler) qui contient une méthode "removeHandler()" (Javadoc : http://www.gwtproject.org/javadoc/la...emoveHandler()

    C'est ce HandlerRegistration qui permet d’arrêter "d’écouter" les événements sur l'objet.


    Si cela ne résout pas ton soucis, transmet nous ton code source, et on creusera un peu plus

    Bonne chance !

Discussions similaires

  1. Evenement non déclenché ?
    Par Manov dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 10/09/2007, 11h28
  2. Réponses: 4
    Dernier message: 09/05/2007, 22h34
  3. Gestion d'exception non déclenchée
    Par Duan dans le forum Delphi
    Réponses: 4
    Dernier message: 01/03/2007, 16h15
  4. mouseMoved -> pertes ou événements non déclenchés
    Par karibouk dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 16/10/2006, 16h55
  5. Gestionnaires d'évènements non déclenchés
    Par Sylvain James dans le forum XMLRAD
    Réponses: 7
    Dernier message: 19/04/2006, 19h14

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