Tableau constitué via un properties
Bonjour à tous !
Voilà mon petit soucis (en dehors du fait que je suis un newbie totalement noob en java j'entends :? )
J'ai un menu dans une jsp constitué via un fichier de properties, le tout prend la forme d'un arbre. Ca a ce style :
Citation:
Titre Menu
+ Menu1
+ Menu2
+ Menu3
+ Menu4
+ Menu5
Quand on clique sur le signe "plus" ça déploie un sous-menu évidemment associé au menu principal. La modification que je dois faire, c'est m'arranger pour que dans certain cas (en fonction des privilèges utilisateurs notamment) les options de menu soient accessibles ou non. Mettons que l'utilisateur en cours ne peut utiliser que les menus 2, 3 et 5, j'aimerais que mon résultat à l'écran soit celui-ci :
Citation:
Titre Menu
+ Menu2
+ Menu3
+ Menu5
Pour le moment je me propose de laisser de côté la partie "privilège utilisateur" pour voir comment modifier la mise en forme de ce menu.
Comme je viens de débuter, que je suis une grosse bille en Java (mon domaine à la base c'était plutôt le COBOL) je réclame l'aide des sachants que vous êtes !
Le properties se présente ainsi :
Code:
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
| // Liste des applications
listeApplications=Menu1;Menu2;Menu3;Menu4;Menu5
//Définition de chacune des applications :
// -le libellé pour la page d'accueil
// - le nom des classes correspondant à une table
menu1.libelle=Menu1
menu1.listeTables=com.nomAppli.model.Menu1.sousMenu1;com.nomAppli.model.Menu1.sousMenu2;com.nomAppli.model.Menu1.sousMenu3
menu2.libelle=Menu2
menu2.listeTables=com.nomAppli.model.Menu2.sousMenu1;com.nomAppli.model.Menu2.sousMenu2;com.nomAppli.model.Menu2.sousMenu3
menu3.libelle=Menu3
menu3.listeTables=com.nomAppli.model.Menu3.sousMenu1;com.nomAppli.model.Menu3.sousMenu2
menu4.libelle=Menu4
menu4.listeTables=com.nomAppli.model.Menu4.sousMenu1;com.nomAppli.model.Menu4.sousMenu2;com.nomAppli.model.Menu4.sousMenu3;com.nomAppli.model.Menu4.sousMenu4
menu5.libelle=Menu5
menu5.listeTables=com.nomAppli.model.Menu5.sousMenu1
//Définition de chacune des tables
// -le libellé pour la page d'accueil
com.nomAppli.model.Menu1.sousMenu1=sous menu 1.1
com.nomAppli.model.Menu1.sousMenu1=sous menu 1.2
com.nomAppli.model.Menu1.sousMenu1=sous menu 1.3
com.nomAppli.model.Menu2.sousMenu1=sous menu 2.1
com.nomAppli.model.Menu2.sousMenu1=sous menu 2.2
com.nomAppli.model.Menu2.sousMenu1=sous menu 2.3
com.nomAppli.model.Menu3.sousMenu1=sous menu 3.1
com.nomAppli.model.Menu3.sousMenu1=sous menu 3.2
com.nomAppli.model.Menu4.sousMenu1=sous menu 4.1
com.nomAppli.model.Menu4.sousMenu1=sous menu 4.2
com.nomAppli.model.Menu4.sousMenu1=sous menu 4.3
com.nomAppli.model.Menu4.sousMenu1=sous menu 4.4
com.nomAppli.model.Menu5.sousMenu1=sous menu 5.1 |
La partie du controller qui créé l'arbre du menu est - je suppose du moins - celle-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| private Arbre createArbre() throws AppliControllerException {
Racine racine = new Racine("Titre Menu1", "Titre Menu2");
Arbre arbre = new Arbre(racine);
Collection<String> listeApplications = recupererListe("listeApplications");
getSessionContext().set("listeApplications", (Serializable) listeApplications);
Collection<String> listeTables = new ArrayList<String>();
for (String application : listeApplications) {
String libelleApplication = propertiesService.getPropriete(application + AppliConstantes.LIBELLE, AppliConstantes.PARAMETRAGE_FILE_NAME);
Collection<String> listeTablesCetteApplication = recupererListe(application + ".listeTables");
listeTables.addAll(listeTablesCetteApplication);
racine.add(new Noeud(application, libelleApplication));
}
getSessionContext().set("listeTables", (Serializable) listeTables);
return arbre;
} |
Et éventuellement la JSP si vous en avez besoin :
Code:
1 2 3 4 5 6 7 8 9
| <sipp:arbre arbre="${arbre}" id="arbre" isRacineOuverte="true" actionAjax="Accueil/miseAjour">
<sipp:noeud icone="puce" type="compte"></sipp:noeud>
<c:forEach items="${listeApplications}" var="appli" >
<sipp:noeud icone="fleche_enchainement" type="${appli}"></sipp:noeud>
</c:forEach>
<c:forEach items="${listeTables}" var="table" >
<sipp:noeud icone="dossier_ferme" type="${table}" action="${urls[table]}"></sipp:noeud>
</c:forEach>
</sipp:arbre> |
Bref si vous savez comment procéder et m'expliquer comment faire vous aurez toute ma reconnaissance ! :calim2: