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 :

Probleme lié au Richmodal Panel


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 14
    Par défaut Probleme lié au Richmodal Panel
    Bonjour,

    j'ai un problème sur l'affichage d'un richmodal panel.
    Je voudrais que celui-ci ne s'affiche que si mon formulaire contient des erreurs.
    Aujourd'hui, ce n'est pas le cas il s'ouvre a chaque clic sur le bouton <a4j:commandButton id="valideruser" value="Ajouter" ....

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
     
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:rich="http://richfaces.org/rich"
          xmlns:a4j="http://richfaces.org/a4j">
    <rich:panel >
    	<f:facet name="header">
    		<h:outputText value="Création d'un utilisateur" />
    	</f:facet>
     
    	<h:form id="creer_utilisateur">
    	<h:panelGrid columns="3" cellspacing="0" rowClasses="row1,row2" columnClasses="col1,col2,col3" width="75%">
    		<h:outputText styleClass="headerText" value="Attribut" />
    		<h:outputText styleClass="headerText" value="Valeur" />
    		<h:outputText styleClass="headerText" value="" />
     
    		UID
    <!-- 	<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.uid}" id="uid" disabled="true">
    		<rich:beanValidator/> 
    		</h:inputText>
    -->
    		<h:outputText value="" rendered="#{gestionDroitUtilisateurCourant.createdUser.noEntry}"/>
     		<h:outputText value="#{gestionDroitUtilisateurCourant.createdUser.uid}" rendered="#{!gestionDroitUtilisateurCourant.createdUser.noEntry}"/>
    		<rich:message for="uid">
            </rich:message>
     
    		Login
    <!--	<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTLogin}" id="login" disabled="true">
    		<rich:beanValidator/>
    		</h:inputText>
    -->		
    		<h:outputText value="" rendered="#{gestionDroitUtilisateurCourant.createdUser.noEntry}"/>
     		<h:outputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTLogin}" rendered="#{!gestionDroitUtilisateurCourant.createdUser.noEntry}"/>
    		<rich:message for="login">
            </rich:message>
     
    <!-- 		
    		Titre<h:inputText value="" id ="titre">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="titre">
            </rich:message>
    -->		
    		Nom
    		<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.sn}" id="sn" size="40">
    			<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="sn">
            </rich:message>
    		Prénom<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.givenName}" id="prenom" size="40">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="prenom">
            </rich:message>
     
    		Autres prénoms<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonAutresPrenoms}" id="autrePrenom" size="40">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="autrePrenom">
            </rich:message>
     
    		Civilité (M. Mme Mlle)<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.personalTitle}" id="civilite" size="5">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="civilite">
            </rich:message>
     
    		Sexe (M F)<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonSexe}" id="sexe" size="3">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="sexe">
            </rich:message>
     
    		Téléphone<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.telephoneNumber}" id="tel">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="tel">
            </rich:message>
     
    		Téléphone personnel<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.homePhone}" id="homePhone">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="homePhone">
            </rich:message>
     
    		Adresse<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonAdresse}" id="addr" size="40">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="addr">
            </rich:message>
     
    		Code postal<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonCodePostal}" id="codePostal" size="5">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="codePostal">
            </rich:message>
     
    		Ville<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonVille}" id="ville" size="40">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="ville">
            </rich:message>
     
    		Pays<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonPays}" id="pays" size="40">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="pays">
            </rich:message>
     
    		Fonctions<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonFonctions}" id="fct" size="40">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="fct" >
            </rich:message>
     
    		Date de naissance<h:inputText value="#{gestionDroitUtilisateurCourant.createdUser.ENTPersonDateNaissance}" id="date" size="10">
    		<rich:beanValidator/>
    		</h:inputText>
    		<rich:message for="date">
            </rich:message>
     
            Catégories 
    		<h:selectManyCheckbox layout="pageDirection" id="categorieUsersCreation" title="Tuteur" value="#{gestionDroitUtilisateurCourant.categorieSelected}" 
    								style="align:left;" required="true" requiredMessage="Vous devez choisir une catégorie d'utilisateur.">
    			<f:selectItem itemLabel="Tuteur" itemValue="Tuteur" />
    			<f:selectItem itemLabel="Responsable d'entreprise" itemValue="ResponsableEntreprise" />
    			<f:selectItem itemLabel="Personne hors établissement" itemValue="Pershorsexpe" />
    			<f:selectItem itemLabel="Logistique" itemValue="Logistique" />
    			<f:selectItem itemLabel="Direction" itemValue="Direction" />
    			<f:selectItem itemLabel="Animateur" itemValue="Animateur" />
    			<f:selectItem itemLabel="Administrateur d'établissement" itemValue="AdministrateurEtab" />
    		</h:selectManyCheckbox>
    		<rich:message for="categorieUsersCreation">
            </rich:message>
    		</h:panelGrid>
     
    		<!-- YOS - button CREER -->
    		<a4j:commandButton id="valideruser" value="Ajouter" actionListener="#{gestionDroitUtilisateurCourant.creerUtilisateur}" reRender="creer_utilisateur" 
    							title="Créer un utilisateur" alt="Créer un utilisateur" 
    							rendered="#{!gestionDroitUtilisateurCourant.afficherBtnSupprimerCreateUser}" 
    							oncomplete="javascript:Richfaces.showModalPanel('panel')" >
     
    			<f:setPropertyActionListener value="#{gestionDroitUtilisateurCourant.createdUser.BVSAuxPersonManager}" 
    											target="#{gestionDroitUtilisateurCourant.currentUser.BVSAuxPersonManager}"></f:setPropertyActionListener>											
    			<a4j:actionparam value="true" assignTo="#{checkControler.userCreated}"></a4j:actionparam>
     
    			<!-- YOS - Affichage de la fenetre MODAL -->			
    			<!-- rich:componentControl id="showpanel" for="panel" attachTo="valideruser" operation="show" event="onclick"/ -->
    			<!-- END YOS - Affichage de la fenetre MODAL -->
    		</a4j:commandButton>
     
    <h:outputText value="Valeur de USERCREATED_2  #{checkControler.userCreated}"/>
    <br/>	
    <h:outputText value="POUET" rendered="#{gestionDroitUtilisateurCourant.afficherBtnSupprimerCreateUser}"></h:outputText>
    <br/>	
    <h:outputText value="Valeur de afficherbtnSuppr #{gestionDroitUtilisateurCourant.afficherBtnSupprimerCreateUser}"/>
    <br/>			
    <!-- onclick="Richfaces.showModalPanel('panel');" -->
     
    		<a4j:status  startText="Création de l'utilisateur en cours..." stopText=""></a4j:status>
     
    		<!-- YOS - button TERMINER / NON necessaire car gerer par la fenetre MODAL 
    		<a4j:commandButton id="deleteformuser1" value="Terminer1" actionListener="# {gestionDroitUtilisateurCourant.deleteFormCreateUser}" 
    							title="Mise à vide des champs1" alt="Mise à vide des champs1" reRender="creer_utilisateur" 
    							rendered="#{gestionDroitUtilisateurCourant.afficherBtnSupprimerCreateUser}" >
    		</a4j:commandButton>
    		 END YOS -->				
     
    		<h:panelGrid columns="2">
    			<rich:message for="valideruser" infoClass="info" errorStyle="color:red;"></rich:message>
    			<h:graphicImage value="/images/icone_validation.png" rendered="#{checkControler.userCreated}" style=" width : 27px; height : 25px;"/>
    		</h:panelGrid>
    	</h:form>
     
    </rich:panel>
     
     
    <!-- YOS MODAL -->
    <h:form>
    	<rich:modalPanel id="panel" width="350" height="300"><!-- height="150" -->
            <f:facet name="header">
                <h:panelGroup>
                    <h:outputText value="Informations"></h:outputText>
                </h:panelGroup>
            </f:facet>
    		<!-- YOS / Pas besoin du CONTROLS on Hide la fenetre MODAL avec le btn TERMINER        
            <f:facet name="controls">
                <h:panelGroup>
                    <h:graphicImage value="/images/close.png" styleClass="hidelink" id="hidelink"/>
                    <rich:componentControl for="panel" attachTo="hidelink" operation="hide" event="onclick"/>
                </h:panelGroup>
            </f:facet>
    		END YOS -->
    <h:outputText value="Valeur de USERCREATED_3  #{checkControler.userCreated}"/>
    <br/>
    <h:outputText value="Valeur de afficherbtnSuppr #{gestionDroitUtilisateurCourant.afficherBtnSupprimerCreateUser}"/>
    <br/>
    <h:outputText value="Valeur param1 -> #{panel.param1}"/>
    <br/>
    <h:outputText value="Valeur facesContext.maximumSeverity -> #{facesContext.maximumSeverity}"/>
    <br/>
    		<h:outputText value="Vous devez "/><h:outputText style="font-weight:bolder;text-decoration:underline" value="noter"/>
    		<h:outputText value=" les informations ci-dessous pour les transmettre à la personne concernée."/>
            <br/><br/>
    		<h:panelGrid columns="2">
    			<rich:message for="valideruser" infoClass="info" errorStyle="color:red;"></rich:message>
    			<h:graphicImage value="/images/icone_validation.png" rendered="#{checkControler.userCreated}" style=" width : 27px; height : 25px;"/>
    		</h:panelGrid>
    		<br/>
    		<!-- YOS - BTN TERMINER -->
    		<h:panelGroup>
    			<a4j:commandButton id="deleteformuser" value="Terminer" actionListener="#{gestionDroitUtilisateurCourant.deleteFormCreateUser}" 
    							title="Mise à vide des champs" alt="Mise à vide des champs" reRender="creer_utilisateur">
    				<rich:componentControl for="panel" attachTo="deleteformuser" operation="hide" event="onclick"/>
    			</a4j:commandButton>
    		</h:panelGroup>
    		<!-- END YOS - BTN TERMINER -->			
        </rich:modalPanel>
    </h:form>	   
    <!-- END YOS MODAL -->	
    </ui:composition>

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux utiliser showWhenRendered de la modalPanel:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showWhenRendered="#{facesContext.maximumSeverity !=null}"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 14
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu peux utiliser showWhenRendered de la modalPanel:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showWhenRendered="#{facesContext.maximumSeverity !=null}"
    Bonjour,

    j'ai deja essayé cette methode mais ca ne marche pas

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 14
    Par défaut
    J'ai 2 FORM
    Un pour la fenetre parent
    Un pour la ModalPanel

    J'aimerais passer une valeur issue du form vers le modalPanel.

    Une idée ?

    Merci

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Moi j'utilise l'attribut oncomplete mais bon tu peux utiliser la proposition ci-dessus.
    Pour le passage de message, ca se fait automatiquement normalement, il suffit que tu mettes un rich:message dans ton modalPanel, coté Java quand tu instancieras un FacesMessage, le message passé à l'instanciation sera celui repris dans le modalPanel.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 14
    Par défaut
    L'encadrement avec <a4j:outputPanel ajaxRendered=true> ne fonctionne pas.
    --------------
    Peut être que mes problemes viennent du traitement de mes erreurs:

    ce qui a fait sur clic du bouton Ajouter: (actionListener="#{gestionDroitUtilisateurCourant.creerUtilisateur}")

    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
    	public void creerUtilisateur(javax.faces.event.ActionEvent a)
    			throws NamingException {
    		getvosuser = false;
    		String pass = null;
    		try {
    			System.out.println("JE SUIS DANS CREERUSER");
    			String identifiantid = (createdUser.getGivenName() + "." + createdUser.getSn()).toLowerCase();
    			createdUser.setBVSAuxPersonManager(currentUser.getBVSAuxPersonManager());
    			createdUser.setBVSAuxPersonStructRattachId(currentUser.getBVSAuxPersonStructRattachId());
    			createdUser.setENTPersonStructRattach(currentUser.getENTPersonStructRattach());
    			createdUser.setENTLogin(identifiantid);
    			createdUser.setBVSAuxPersonProfilsBVS(categorieSelected);
    			// YOS
    			createdUser.setENTPersonNomPatro(createdUser.getSn());
    			createdUser.setUid(identifiantid);
    			// END YOS
    			pass = LdapRequest.addENTUser(createdUser, currentUser.getDn());
    			FacesContext.getCurrentInstance().addMessage(
    					"creer_utilisateur:valideruser",
    					new FacesMessage(FacesMessage.SEVERITY_INFO,
    							"L'utilisateur a bien été crée avec le mot de passe : "+ pass + " et le login:"+ createdUser.getENTLogin(),
    							"L'utilisateur a bien été crée avec le mot de passe : "+ pass + " et le login:"+ createdUser.getENTLogin()));
    			setAfficherBtnSupprimerCreateUser(true);
    			System.out.println("VAL BtnSupprimer "+afficherBtnSupprimerCreateUser);
    		} catch (IOException e) {
    			FacesContext.getCurrentInstance().addMessage(
    					"creer_utilisateur:valideruser",
    					new FacesMessage(FacesMessage.SEVERITY_ERROR,
    							"L'utilisateur n'a pas pu crée ",
    							"L'utilisateur n'a pas pu crée "));
    			e.printStackTrace();
    		}
    	}
    Le traitement des erreurs du Form de la fenêtre Parent:

    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
    	//YOS
    	//@Pattern(regex = ("(\\d\\d/\\d\\d/\\d\\d\\d\\d)?"), message = "Date non conforme:jj/mm/aaaa")
    	@Pattern(regex = ("(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d"), message = "Date non conforme:jj/mm/aaaa")
    	private String ENTPersonDateNaissance;
    	/**
             * Nom patronimique de l'utilisateur.
             */
    	@Pattern(regex = "([A-Z])*", message = "Le nom d'usage doit être écrit en majuscule")
    	private String ENTPersonNomPatro;
    	/**
             * Nom de l'utilisateur.
             */
    	@Pattern(regex = "([A-Z])*", message = "Le nom patronimique doit être écrit en majuscule")
    	private String sn;
    	/**
             * Prénom de l'utilisateur.
             */
    	@Length(min = 1, message = "Le prénom doit être rempli")
    	private String givenName;
    	/**
             * Titre de la personne.
             */
    	@Pattern(regex = ("(M.)?|(Mme)?|(Mlle)?"), message = "Civilité:M. ou Mme ou Mlle")
    	private String personalTitle;

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    • entoure ton modalPanel par a4j:outputPanel avec ajaxRendered="true"

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      <a4j:outputPanel ajaxRendered="true">
      <rich:modalPanel />
      </a4j:outputPanel>
    • ou dans le commandButton ajoute l'id dans la modalPanel dans le reRender

Discussions similaires

  1. probleme de changement des panel au sein d'une fenetre
    Par switch1 dans le forum Composants
    Réponses: 2
    Dernier message: 04/03/2009, 13h17
  2. probleme gridview dans update panel
    Par hachdotnet dans le forum ASP.NET
    Réponses: 7
    Dernier message: 12/08/2008, 17h01
  3. probleme de dimension de panel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/07/2007, 10h34
  4. [c#] Probleme de positionnement de panel
    Par Shakta dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/07/2006, 18h07
  5. Probleme pour modifier le panel courant de ma Jframe
    Par Sylmandel dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 26/04/2006, 18h06

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