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 :

Afficher les éléments de la suggestbox au clic


Sujet :

GWT et Vaadin Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut Afficher les éléments de la suggestbox au clic
    Bonjour,

    j'aimerais pouvoir afficher les elements de ma sugestbox lorsque je clique dans la textbox. par défaut il faut rentrer au minimum une lettre...comment puis je faire ?

    merci

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Je n'ai pas encore trouvé comment faire..si quelqu'un peut m'aider..
    ma demande est elle claire? compliqué ?

    Merci

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    j'ai exactement le même probleme et pareil pas de solution, si qq'un l'a je suis preneur aussi

    merci

  4. #4
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Bonjour, je n'ai pas trop le temps d'essayer mais je ferai la chose suivante :

    - Regarder dans le code de la classe SuggestBox (ou une de ces parentes) comment gwt gère l'affichage de la liste en fonction des caractères saisies. Peut être un KeyListener qui écoute les évènements clavier et qui affiche la liste ???

    - Si c'est bien le cas, vous ajouter un FocusListener pour écouter la prise du focus par la suggestbox (voir un MouseListener si ça ne fonctionne pas avec le focusListener) et vous executez le même code que dans le KeyListener ...

    @+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 64
    Points
    64
    Par défaut
    pour information la suggestBox fournit est final donc il vous faut réécrire des choses mais cela ce fait rapidement, et en effet rajouter une gestion du mouseClick.
    Regarderr la méthode : addKeyboardSupport de SuggestBox

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    Je vais peut être passer pour un newbies mais comment je peux faire pour réécrire le code de la classe SuggestBox ?

    Merci

  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
    Points : 4 265
    Points
    4 265
    Par défaut
    Si cela peut se faire via l'ajout d'un listener, pas besoin d'héritage.

    Néanmoins, lorsqu'on veut dériver une classe final, il faut utiliser le pattern adapter.

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    Je ne vois vraiment pas comment je peux faire en ajoutant un listerner sur ma suggestbox...comment executer le code du keyListener de la classe suggestBox ?

    voici la methode du keylistener

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
      private void addKeyboardSupport() {
        box.addKeyboardListener(new KeyboardListenerAdapter() {
     
          public void onKeyDown(Widget sender, char keyCode, int modifiers) {
            // Make sure that the menu is actually showing. These keystrokes
            // are only relevant when choosing a suggestion.
            if (suggestionPopup.isAttached()) {
              switch (keyCode) {
                case KeyboardListener.KEY_DOWN:
                  suggestionMenu.selectItem(suggestionMenu.getSelectedItemIndex() + 1);
                  break;
                case KeyboardListener.KEY_UP:
                  suggestionMenu.selectItem(suggestionMenu.getSelectedItemIndex() - 1);
                  break;
                case KeyboardListener.KEY_ENTER:
                case KeyboardListener.KEY_TAB:
                  suggestionMenu.doSelectedItemAction();
                  break;
              }
            }
          }
     
          public void onKeyUp(Widget sender, char keyCode, int modifiers) {
            // After every user key input, refresh the popup's suggestions.
            refreshSuggestions();
          }
     
          private void refreshSuggestions() {
            // Get the raw text.
            String text = box.getText();
            if (text.equals(currentText)) {
              return;
            } else {
              currentText = text;
            }
     
            if (text.length() == 0) {
              // Optimization to avoid calling showSuggestions with an empty
              // string
              suggestionPopup.hide();
              suggestionMenu.clearItems();
            } else {
              showSuggestions(text);
            }
          }
        });
    Merci

  9. #9
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Avec box comme SuggestBox, un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    box.addClickListener(new ClickListener()
    {
    	onClick(Widget sender) 
            {
                    // essayer a)
                    // box.showSuggestions("");
     
                    // ou b)
                    // ((SuggestBox) sender).showSuggestions("");
            }
    });
    ou bien :
    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
     
    box.addFocusListener(new FocusListenerAdapter()
    {
    	onFocus(Widget sender) 
            {
                    // essayer a)
                    // box.showSuggestions("");
     
                    // ou b)
                    // ((SuggestBox) sender).showSuggestions("");
            }
     
    	onLostFocus(Widget sender) 
            {
                    // essayer a)
                    // box.suggestionPopup.hide();
                    // box.suggestionMenu.clearItems();
     
                    // ou b)
                    //  ((SuggestBox) sender).suggestionPopup.hide();
                    //  ((SuggestBox) sender).suggestionMenu.clearItems();
            }
     
    });

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par benwit Voir le message
    Avec box comme SuggestBox, un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    box.addClickListener(new ClickListener()
    {
    	onClick(Widget sender) 
            {
                    // essayer a)
                    // box.showSuggestions("");
     
                    // ou b)
                    // ((SuggestBox) sender).showSuggestions("");
            }
    });
    ou bien :
    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
     
    box.addFocusListener(new FocusListenerAdapter()
    {
    	onFocus(Widget sender) 
            {
                    // essayer a)
                    // box.showSuggestions("");
     
                    // ou b)
                    // ((SuggestBox) sender).showSuggestions("");
            }
     
    	onLostFocus(Widget sender) 
            {
                    // essayer a)
                    // box.suggestionPopup.hide();
                    // box.suggestionMenu.clearItems();
     
                    // ou b)
                    //  ((SuggestBox) sender).suggestionPopup.hide();
                    //  ((SuggestBox) sender).suggestionMenu.clearItems();
            }
     
    });
    pas d'acces aux methodes showSuggestions() et aux attributs suggestionPopup ou suggestionMenu , c'ést ça le problème...

  11. #11
    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
    Points : 4 265
    Points
    4 265
    Par défaut
    Ils font ******** chez google de mettre en private les méthodes, de mettre en finale la classe et de ne pas avoir prévu le cas qui t'intéresse ...

    Je viens de regardé ce que font ces méthodes dont tu as besoin et le problème, c'est que le composant n'est pas prévu pour afficher tous les résultats ...

    La seule solution que je vois ce soir est de reprendre leur code pour créer un autre composant. C'est un peu y aller à la hache mais lorsqu'on ferme les portes ...

  12. #12
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    Bon ba je crois que je vais laisser tomber ce truc...moi qui croyait justement qu'avec GWT on pouvait redéfinir comme on le souhaitait les classes et méthodes...

    merci quand meme

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Points : 154
    Points
    154
    Par défaut
    C'est clair qu'ils font ***** chez Google... J'ai déjà dû refaire une classe stack panel uniquement pour passer certaines fonction en public... Quel interet ? Au pire ils mettent en protected !

    Je recoderai pas la classe uniquement pour cette fonctionnalité

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 10
    Points : 13
    Points
    13
    Par défaut il y a une lib qui le fait très bien
    Bonjour à tous,

    Il y a une lib que j'ai développé pour avoir le contrôle total sur la suggest box et les select box (combo box). Elle est aujourd'hui déployée sur un projet à haute disponibilité à l'échelle nationale, autant vous dire que les petits bugs ont été supprimés.
    http://code.google.com/p/advanced-suggest-select-box/

    Le tutoriel est ecrit en anglais mais les exemples de code sont assez parlants.
    http://code.google.com/p/advanced-su...i/Introduction

    C'est la version 1.0 qui est déployée, j'ai ajouté récemment des fonctionnalités demandées par la communauté dans les implémentations par défaut comme le support de l'icone (et amelioré le design du tableau).

    Une version qui supporte la multiple selection à la facon du mail de facebook est en cours de développement, les sources sont déjà dans le svn, il faut juste corriger qq bugs.

    N'hésitez pas à me faire vos remarques,
    Zied Hamdi

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/04/2009, 18h05
  2. afficher les éléments d'une liste
    Par jane40 dans le forum Débuter
    Réponses: 1
    Dernier message: 18/01/2009, 22h22
  3. Réponses: 4
    Dernier message: 26/08/2008, 19h35
  4. Réponses: 2
    Dernier message: 05/05/2007, 17h37
  5. Réponses: 2
    Dernier message: 27/12/2005, 20h09

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