rich:tree avec info sur noeud
Salut,
Je crée un rich:tree à partir d'une liste d'objet. Chaque objet de cette liste contient une liste d'objet. Ceci sur trois niveau. Mon rich:tree représente ces trois niveaux.
Jusqu'ici tout va bien.
Mon problème est que chaqu'un de mes objets (sur chaqu'un des niveaux) contient un attribut statue. Mon but serais d'avoir une couleur de noeud, ou une icone différente suivant l'attribet statue.
Voici la fonction qui me génère le treenode pour mon rich:tree :
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
| public TreeNode<String> getTreeNode() {
TreeNode<String> rootNode = new TreeNodeImpl<String>();
TreeNodeImpl<String> nodeImp = new TreeNodeImpl<String>();
TreeNodeImpl<String> nodeImp2 = new TreeNodeImpl<String>();
TreeNodeImpl<String> nodeImp3 = new TreeNodeImpl<String>();
for (Group gp : this.getLstGroup()) {
nodeImp = new TreeNodeImpl<String>();
nodeImp.setData(gp.getName());
for (SousGroup pc : gp.getLstSousGroup()) {
nodeImp2 = new TreeNodeImpl<String>();
nodeImp2.setData(pc.getName());
for (Job jb : pc.getLstFeuilles()) {
nodeImp3 = new TreeNodeImpl<String>();
nodeImp3.setData("feuille "+jb.getNo());
nodeImp2.addChild(jb.getJobNo(), nodeImp3);
}
nodeImp.addChild(pc.getNo(), nodeImp2);
}
rootNode.addChild(gp.getNo(), nodeImp);
}
return rootNode;
} |
Et voici le xhtml :
Code:
1 2 3 4 5 6
| <rich:tree style="width:100%; text-align: left"
ajaxSubmitSelection="true"
nodeSelectListener="#{JobByTreeManagement.processSelection}"
switchType="client" value="#{JobByTreeManagement.treeNode}" var="item"
ajaxKeys="#{null}">
</rich:tree> |
Quelqu'un connait-il la solution svp ?
Merci
et on trouve soit meme la reponse
Bon, après de longue recherche et d'inombrable test, j'ai enfin trouvé la réponse. J'en fais profité ceux que sa interesse.
Pour ce faire, j'ai créé une classe interne nommé NodeObject. Cette classe a deux variables name et status. Lorsque je construis mes objets treenode ils prennent nodeObject a la place de String ( TreeNode<NodeObject> et TreeNodeImpl<NodeObject>)
Finalement, je peux acceder au contenu de lobjet comme ils suis :
<rich:tree style="width:100%; text-align: left"
ajaxSubmitSelection="true"
nodeSelectListener="#{JobByTreeManagement.processSelection}"
switchType="client" value="#{JobByTreeManagement.treeNode}"
var="item" ajaxKeys="#{null}">
<rich:treeNode>
<h:outputText value="#{item.name}" style="color:#{item.status}" />
Finalement, une fois u la reponse ce n'est plus compliqué.
LeDoc,
Avec de la patience, du courage et de la percévérence, rien n'est impossible
</rich:treeNode>
</rich:tree>