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

Seam Java Discussion :

Icefaces et CheckBox


Sujet :

Seam Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 74
    Par défaut Icefaces et CheckBox
    bonjour à tous,

    J'ai un ptit problème un peu énervant. Je n'ai pas trouvé de problème similaire, et la "componentSuite" de IceFaces ne m'a pas éclairé non plus

    J'ai une IHM d'identification avec une boîte de choix avec des utilisateurs, une zone de saisie pour le mot de passe. Et une case à cocher pour indiquer si on veut rentrer dans une IHM d'administration ou pas.

    côté SessionBean, j'ai un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Stateful
    @Name("userManager")
    public class UtilisateurManagerBean implements UtilisateurManager{	
    	private Utilisateur user;
    	private List<Utilisateur> listUsers;
    	private boolean demarrerEnModeAdmin;
    avec getters et setters public dans l'interface et la classe.

    La liste des utilisateurs est bien initialisée, et la boîte de choix est bien remplie.

    Mais la case à cocher semble sans effet.

    J'ai essayé plusieurs choses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ice:panelGroup 
           rendered="#{userManager.voirDemarrerEnModeAdmin}"> 
       <ice:outputText>Demarrer en mode admin </ice:outputText>
       <ice:selectBooleanCheckbox
               id="dema" 
    	   value="#{userManager.demarrerEnModeAdmin}"/>
        </ice:panelGroup>
    ... en espérant que demarrerEnModeAdmin varie automatiquement avec les changements de valeur de la case à cocher. Mais non

    J'ai essayé en rajoutant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    partialsubmit="true"
    immediate="true"
    mais pas mieux. Même moins bien car la page est reconstruite, et quand je coche la case à cocher, le mot de passe saisi est effacé.

    alors, j'ai essayé que le changement de valeur de la case à cocher appelle une méthode du sessionBean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <ice:panelGroup 
          rendered="#{userManager.voirDemarrerEnModeAdmin}"> 
       <ice:outputText>Demarrer en mode admin </ice:outputText>
       <ice:selectBooleanCheckbox 
             id="dema" 
             valueChangeListener="#{userManager.changeMode}"
    	 value="#{userManager.demarrerEnModeAdmin}"/>
    </ice:panelGroup>
    côté java :

    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
    public void changeMode(ValueChangeEvent event){
     
    		String strmode = (String) event.getNewValue() ;
    		System.out.println("DEBUT : changeMode");
    		System.out.println("changeMode : " + strmode);
     
    		demarrerEnModeAdmin = !demarrerEnModeAdmin;
     
    		if(demarrerEnModeAdmin){
    			System.out.println("demarrerEnModeAdmin = true");
    		}
    		else{
    			System.out.println("demarrerEnModeAdmin = false");
    		}
    		System.out.println("FIN : changeMode");
    	}
    Et malgré ce code, je n'ai pas du tout de trace sur la console serveur.


    Une bonne âme saurait-elle m'éclairer ?

    merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Par défaut
    Salut,

    tu peux envoyer ce qui s'affiche dans la console du serveur, car on ne sait jamail il y a peut être une petite erreur qui y est affichée.

    De plus, ajoute partialSubmit="true" et immediate="true"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 74
    Par défaut
    salut,

    merci de te pencher sur mon problème

    En fait, il ne se passe rien dans la console serveur lorsque je coche la case à cocher !
    La variable associée (demarrerEnModeAdmin) n'est pas mise à jour, même si la méthode changeMode(...) est appelée.
    Je le constate quand je clique sur le bouton connexion qui a des traces et affiche la valeur de la variable.


    C'est un peu différent si je rajoute partialSubmit="true" et immediate="true" :
    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:14:33,879 INFO  [STDOUT] DEBUT : UtilisateurManagerBean()
    17:14:33,879 INFO  [STDOUT] FIN : UtilisateurManagerBean()
    17:14:33,911 INFO  [STDOUT] DEBUT : getListUser()
    17:14:33,926 INFO  [STDOUT] FIN : getListUser()
    17:14:33,957 INFO  [STDOUT] DEBUT : initUser()
    17:14:33,957 INFO  [STDOUT] 3
    17:14:33,957 INFO  [STDOUT] nomuser
    17:14:33,957 INFO  [STDOUT] loginuser
    17:14:33,957 INFO  [STDOUT] admin
    17:14:33,957 INFO  [STDOUT] voirDemarrerEnModeAdmin = true
    17:14:33,957 INFO  [STDOUT] FIN : initUser()
    17:14:34,004 INFO  [STDOUT] DEBUT : getListUser()
    17:14:34,020 INFO  [STDOUT] FIN : getListUser()
    17:14:34,020 INFO  [STDOUT] DEBUT : getListUser()
    17:14:34,020 INFO  [STDOUT] FIN : getListUser()
    On a alors des traces du fait de la reconstruction de la page :
    - on passe dans le constructeur du bean
    - on passe dans getListUser() qui remplit la boîte de choix des utilisateurs
    - on passe dans initUser() qui initialise l'utilsateur sélectionné dans la boîte de choix
    (car :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ice:selectOneMenu value="#{userManager.user.login}" 
                                  valueChangeListener="#{userManager.changeUser}" 
                                  partialSubmit="true" >
                <f:selectItems value="#{userManager.getListUser()}"/>
    et changeUser() appelle initUser() )
    - et on passe encore deux fois dans getListUser(). euh... je sais pas trop pourquoi... ce n'est pas des appels directs en tout cas...

    Mais si c'est possible, je voudrais bien éviter l'utilisation de partialSubmit="true" car ça efface le mot de passe saisi lorsqu'on coche la case...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 74
    Par défaut
    J'ai changé mon fusil d'épaule...

    Maintenant je mets 2 boutons sur l'IHM, et selon les autorisations de l'utilisateur sélectionné dans la boîte de choix, il ne voit qu'un seul ou deux boutons.
    ça ne marche pas non plus...

    En fait, je pense que c'est le rendered="true" qui fait quelquechose de spécial...
    car si je ne joue pas à désactiver ou rendre invisible le bouton en fonction de l'utilisateur sélectionné, ça fonctionne bien !

    Si malgré tout quelqu'un peut m'expliquer comment faire pour pallier ce problème de modif dynamique des "droits" d'un composant IHM, ce ne serait pas de refus

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 222
    Par défaut
    Salut,

    Pour que les boutons soit visible ou invisible, met les dans une balise panelGroup comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ice:panelGroup rendered="#{tonBean.visibleBouton1}">
         <ice:commandBouton value="bouton1" action="#{tonBean.action}"/>
    </ice:panelGroup>
     
    <ice:panelGroup rendered="#{tonBean.visibleBouton2}">
         <ice:commandBouton value="bouton2" action="#{tonBean.action}"/>
    </ice:panelGroup>
    Je pense que ça devrait fonctionner, enfin j'espère.

    Bon courage

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 74
    Par défaut
    merci bard123. malheureusement ça ne marche pas mieux comme ça.
    C'est pas trop grave...
    J'essaierai de passer par UIInput ou UIOutput pour forcer l'initialisation...

    Si je trouve une soluce, je la mettrai ici...

Discussions similaires

  1. [IceFaces] Select All checkbox
    Par pmartin8 dans le forum JSF
    Réponses: 3
    Dernier message: 15/05/2012, 16h22
  2. icefaces et alignement de checkbox
    Par *alexandre* dans le forum JSF
    Réponses: 5
    Dernier message: 03/10/2008, 14h51
  3. Checkbox
    Par rgarnier dans le forum XMLRAD
    Réponses: 11
    Dernier message: 06/03/2003, 10h48
  4. Couleur d'un CheckBox
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/07/2002, 14h48
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

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