Bonjour,
Je débute en jsf et donc en interface graphique via prime faces (xhtml).
J'arrive à mes fins mais petit à petit et depuis quelques jours je sèche sur internet à la recherche d'une solution à mon interrogation.
Comment passer un paramètre d'une page XHTML à une page JSF.
Je m'explique :
Ma page XHTML affiche une liste de cycles de formation (statut et millésime), un statut peut être créé, supprimé, fermé, ouvert, archivé...
Lorsqu'on clique sur le cycle dont on veut voir le détail, une autre fenetre s'ouvre pour afficher des boutons que je veux griser en fonction du statut initial.
Ex : cycle n°1 statut à C (créé), je fais détail et je voudrai griser les boutons fermer, archiver et ne laisser que ouvrir et supprimer.
Si je change de cycle (ex cycle n°2) statut à F (fermé), je veux pouvoir griser alors les boutons supprimer, et archiver, et ne laisser accessible que les boutons ouvrir et archiver.
Et ce suivant chaque règle de gestion définie.
En clair, je passe par une méthode dans mon bean qui s'appelle affichage bouton et qui en fonction de mon statut doit permettre l'affichage à jour des bons boutons.
voilà une copie du code, alors si l'un de vous se sent l'ame d'un bon samaritain....
merci d'avance pour les tuyaux.
gérerCycle.xhtml :
et GererCycleMng :
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 <ui:define name="content"> <h:form id="form"> <p:fieldset legend="Gestion des cycles"> <p:toolbar> <p:toolbarGroup align="left" style="height:30px"> <p:commandButton id="nouveauButton" oncomplete="nouveauCycle.show()" ajax="true" styleClass="styleSagaieButton" icon="icone-button-nouveau" value="#{msg['btn.new']}"/> <p:commandButton id="exportExcel" ajax="false" styleClass="styleSagaieButton" icon="icone-button-excel" value="Export Excel"> <p:dataExporter type="xls" target="cycles" fileName="ListeCycle" pageOnly="false" /> </p:commandButton> </p:toolbarGroup> </p:toolbar> <p:dataTable id="cycles" var="cycle" value="#{gererCycleMng.cycleList}" filteredValue="#{gererCycleMng.filtrecycleList}" paginator="true" paginatorPosition="bottom" scrollHeight="500" scrollable="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="10,50,100" currentPageReportTemplate=" ({startRecord}-{endRecord} sur {totalRecords})" emptyMessage="Aucun cycle à afficher" rowIndexVar="rowIndex" > <p:column width="15" exportable="false" style="Background-color:#188DF3"> #{rowIndex+1} </p:column> <p:column exportable="false" width="20"> <p:commandButton id="selectButton" styleClass="iconDatatable" icon="ui-icon-search" update=":detail:cycleDetail" action="#{gererCycleMng.affichageBouton()}" oncomplete="detailCycle.show()" ajax="true"> <f:setPropertyActionListener value="#{cycle}" target="#{gererCycleMng.cycleIHM}" /> <f:param name="statutCycleEnCours" value="{#cycle.statut}"/> </p:commandButton> <p:tooltip for="selectButton" value="Cliquez pour afficher le détail et modifier" showEffect="fade" hideEffect="fade" /> </p:column> <p:column headerText="#{msg['statut.libelle']}" width="125" sortBy="#{cycle.statut}" filterBy="#{cycle.statut}"> <h:outputText value="#{cycle.statut}" /> </p:column> <p:column headerText="#{msg['millesime.libelle']}" width="125" filterBy="#{cycle.millesimeDebut}" sortBy="#{cycle.millesimeDebut}" > <h:outputText value="#{cycle.millesimeDebut}" /> </p:column> </p:dataTable> </p:fieldset> </h:form> <p:dialog widgetVar="nouveauCycle" modal="true" header="Nouveau Cycle" appendToBody="true" closable="false" resizable="false"> <h:form id="cycle"> <p:panel id="detailCycle" > <h:panelGrid columns="2" style="border-style:none" cellspacing="10" columnClasses="styleSagaieLibelle,styleSagaieComposant"> <p:outputLabel for="court" styleClass="labelSagaie" value="#{msg['statut.libelle']} en création" /> <h:inputText id="court" value="#{gererCycleMng.cycleIHM.statut}" disabled="true" ></h:inputText> <p:outputLabel for="long" styleClass="labelSagaie" value="#{msg['millesime.libelle']} *" /> <h:inputText id="long" value="#{gererCycleMng.cycleIHM.millesimeDebut}" size="50"></h:inputText> </h:panelGrid> </p:panel> <br/> <h:panelGroup style="display:block; text-align:right;"> <p:commandButton id="OkButton" styleClass="styleSagaieButton" icon="icone-button-valider" value="#{msg['btn.submit']}" update="detailCycle,:form:cycles" disabled="false" actionListener="#{gererCycleMng.creerCycleAnnuel()}" oncomplete="nouveauCycle.hide()"/> <p:commandButton id="AnnulerButton" oncomplete="nouveauCycle.hide()" actionListener="#{gererCycleMng.nettoyer()}" styleClass="styleSagaieButton" icon="icone-button-cancel" value="#{msg['btn.cancel']}" update="detailCycle "/> </h:panelGroup> </h:form> </p:dialog> <p:dialog id="bla" header="Gestion du cycle" widgetVar="detailCycle" modal="true" appendToBody="true" height="300" width="620" closable="false" resizable="false" > <h:form id="detail"> <p:panel id="cycleDetail" style="height:200px" > <h:panelGrid columns="2" style="border-style:none" cellspacing="10" columnClasses="styleSagaieLibelle,styleSagaieComposant"> <h:outputLabel for="statut" value="#{msg['statut.libelle']}" /> <h:inputText id="statut" value="#{gererCycleMng.cycleIHM.statut}" disabled="true"></h:inputText> <h:outputLabel for="millesime" value="#{msg['millesime.libelle']}" /> <h:inputText id="millesime" value="#{gererCycleMng.cycleIHM.millesimeDebut}" disabled="true"></h:inputText> </h:panelGrid> <br/> <h:outputLabel value="#{msg['choix.libelle']}" /> <br/> <br/> <h:panelGrid columns="5" style="border-style:none" cellspacing="10" > <p:commandButton id="DeleteStatut" value="#{msg['btn.delete']}" styleClass="styleSagaieButton" icon="icone-button-supprimer" actionListener="#{gererCycleMng.supprimerCycle()}" disabled="#{gererCycleMng.supprimer}" onclick="detailCycle.hide()" update=":form:cycles"> </p:commandButton> <p:commandButton id="OuvrirStatut" value="#{msg['btn.ouvrir']}" styleClass="styleSagaieButton" icon="icone-button-ouvrir" actionListener="#{gererCycleMng.modifierCycle('O')}" disabled="#{gererCycleMng.ouvrir}" onclick="detailCycle.hide()" update=":form:cycles"> </p:commandButton> <p:commandButton id="FermerStatut" value="#{msg['btn.close']}" styleClass="styleSagaieButton" icon="icone-button-cancel" actionListener="#{gererCycleMng.modifierCycle('F')}" disabled="#{gererCycleMng.fermer}" onclick="detailCycle.hide()" update=":form:cycles"> </p:commandButton> <p:commandButton id="ArchiverStatut" value="#{msg['btn.archiver']}" styleClass="styleSagaieButton" icon="icone-button-archiver" actionListener="#{gererCycleMng.modifierCycle('A')}" disabled="#{gererCycleMng.archiver}" onclick="detailCycle.hide()" update=":form:cycles"> </p:commandButton> <p:commandButton id="DesarchiverStatut" value="#{msg['btn.desarchiver']}" styleClass="styleSagaieButton" icon="icone-button-desarchiver" actionListener="#{gererCycleMng.modifierCycle('D')}" disabled="#{gererCycleMng.desarchiver}" onclick="detailCycle.hide()" update=":form:cycles"> </p:commandButton> </h:panelGrid> </p:panel> <br/> <h:panelGroup style="display:block; text-align:right;"> <br/> <p:commandButton id="Annuler" value="#{msg['btn.cancel']}" styleClass="styleSagaieButton" icon="icone-button-cancel" actionListener="#{gererCycleMng.nettoyer()}" oncomplete="detailCycle.hide();"> </p:commandButton> </h:panelGroup> </h:form> </p:dialog> </ui:define> </ui:composition>
entre autre :
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 public String getStatutParam (FacesContext fc){ Map<String,String> param = fc.getExternalContext().getRequestParameterMap(); return param.get("monParamStatut"); } public void affichageBouton(){ FacesContext fc = FacesContext.getCurrentInstance(); this.monParamStatut = getStatutParam(fc); //switch (cycleIHM.getStatut()) { switch (monParamStatut) { case "C": // le cycle annuel existe déjà en base de données et que son statut a pour valeur "C", // l'aiguillage doit être choisi entre les valeurs "S" ou "O" ; supprimer = false; ouvrir = false; fermer = true; archiver= true; desarchiver = true; break; case "O": // le cycle annuel existe déjà en base de données et que son statut a pour valeur "O", // l'aiguillage doit être choisi entre les valeurs "S" ou "F" ; supprimer = false; ouvrir = true; fermer = false; archiver= true; desarchiver = true; break; case "F": // le cycle annuel existe déjà en base de données et que son statut a pour valeur "F", // l'aiguillage doit être choisi entre les valeurs "O" ou "A" ; supprimer = true; ouvrir = false; fermer = true; archiver= false; desarchiver = true; break; case "A": // le cycle annuel existe déjà en base de données et que son statut a pour valeur "A", // l'aiguillage ne peut avoir que la valeur "D". supprimer = true; ouvrir = true; fermer = true; archiver= true; desarchiver = false; break; case "D": //le cycle est désarchivé supprimer = true; ouvrir = true; fermer = false; archiver= false; desarchiver = true; break; default: break; } }
mercimerci merci
Partager