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

JSF Java Discussion :

[BINDING] Interation entre les composants?


Sujet :

JSF Java

  1. #1
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut [BINDING] Interaction entre les composants?
    Hello,

    J'ai lu le tutorial d'introduction au JSF disponible ici

    Dans le chapitre 8, il y a une partie que je n'ai pas bien comprise.
    Le code se trouve exactement au paragraphe 8.2 lorsque l'on ajoute le

    Code jsf : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:column>
    <html:selectBooleanCheckbox binding="#{bank.checkbox}"/>
    </html:column>

    On ajoute au ManagedBean Bank un UIComponent représentant la nouvelle checkBox et on ajoute la méthode suivante :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void removeSelectedCustomers(){
     int size = this.dataTable.getRowCount();
     List selectedCustomers = new ArrayList();
     for(int i=0; i < size; i++){
       this.dataTable.setRowIndex(i); (1)
       if(this.checkbox.isSelected()){ (2)
         selectedCustomers.add(this.customers.get(i));
       }
    }
    this.customers.removeAll(selectedCustomers);
    }

    A la ligne (1), on positionne la ligne courante dans le datatable (là pas de soucis)
    A la ligne (2), on verifie que cette ligne est cochée, et c'est la que je ne comprend pas le mécanisme. En ce qui concerne le composant représentant la checkbox il n'y a pas d'utilisation de l'index de ligne.
    Comment JSF fait le lien entre la ligne datatable et le checkBox?

    Merci d'avance pour votre aide!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Les ID de ligne sont ajoutés aux ID des composants des dataTable.
    C'est ce qui permet à JSF de savoir quelle composant se trouve sur la ligne X

    En espérant que ça réponse à ta question...

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    En fait, quand tu fais un setRowIndex(i), le composant datatable te laisse accéder à tous les composants se trouvant à la ligne i de ta table.

    Donc si tu as 3 lignes dans ton tableau, et donc 3 checkboxes, en te positionnant à la 2e ligne (setRowIndex(1)), tu n'auras accès qu'à la checkbox se trouvant sur cette ligne, et pas aux autres. Tu n'as donc qu'à savoir si elle est sélectionnée ou pas.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Merci pour vos réponses!

    Donc la datatable contient une instance de checkBox par ligne;
    Lorsque l'on positionne la ligne courante avec l'appelle de la méthode setRowId(i), la datatable change la référence de l'instance checkbox pour la faire pointer sur celle correspondante à la ligne sélectionnée.

    JSF sait reconnaitre le lien entre la datatable et la checkbox au travers du binding et de la relation de hiérarchie la datatable et la checkbox.

    Est ce que je suis dans le vrai?
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  5. #5
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 42
    Points : 43
    Points
    43
    Par défaut
    Je suis encore débutant, mais c'est ce que j'ai compris aussi et ça marche plutôt bien comme ça.

  6. #6
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Merci pour ton aide!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


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

Discussions similaires

  1. Manipulation de variables entre les composants
    Par Zeusviper dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 16/11/2009, 09h49
  2. espacement entre les composants
    Par thierry_b dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 10/07/2009, 12h09
  3. comment créer un espace entre les composant
    Par american dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 11/05/2009, 11h00
  4. analogie entre les composants Jsf et richfaces
    Par ouatouch_abdeljalil dans le forum JSF
    Réponses: 5
    Dernier message: 13/08/2008, 15h10
  5. Binding multiples entre des composants
    Par SaumonAgile dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/12/2007, 10h08

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