Rich:tree avec info sur les noeuds
Résolu
LeDoc
-
LeDoc -
LeDoc -
Bonjour,
J'ai un problème de développeur novice. Je m'explique. Je suis en traint de développer un portail web en java avec hibernate et richface entre autre.
Je construis un rich:tree pour afficher des informations contenues dans des liste d'objet (j'ai une liste de groupe et chaque groupe contient une liste, aisi de suite sur trois niveaux).
Voice la méthode qui me pernet de construire mon objet treenode à passer dans la balise rich:tree :
( nom du fichier : JobByTreeManagement.java)
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 : getLstGroup()) {
nodeImp = new TreeNodeImpl<String>();
nodeImp.setData(gp.getName());
for (Process pc : gp.getLstProcess()) {
nodeImp2 = new TreeNodeImpl<String>();
nodeImp2.setData(pc.getName());
for (Job jb : pc.getLstJob()) {
nodeImp3 = new TreeNodeImpl<String>();
nodeImp3.setData("job "+jb.getJobNo());
nodeImp2.addChild(jb.getJobNo(), nodeImp3);
}
nodeImp.addChild(pc.getProcessNo(), nodeImp2);
}
rootNode.addChild(gp.getGroupNo(), nodeImp);
}
return rootNode;
}
Donc j'appelle cette méthode depuis mon xhtml dans ma balise rich:tree :
<rich:tree style="width:100%; text-align: left"
ajaxSubmitSelection="true"
nodeSelectListener="#{JobByTreeManagement.processSelection}"
switchType="client" value="#{JobByTreeManagement.treeNode}" var="item"
ajaxKeys="#{null}">
</rich:tree>
Mon problème est le suivant : chaqu'un de mes objet contient une varriable (nommé couleur). Je voudrais afficher mes noeuds de mon arbre dans la couleur spécifié.
Si quelqu'un pouvait m'aider, ce serais sympe,
LeDoc
J'ai un problème de développeur novice. Je m'explique. Je suis en traint de développer un portail web en java avec hibernate et richface entre autre.
Je construis un rich:tree pour afficher des informations contenues dans des liste d'objet (j'ai une liste de groupe et chaque groupe contient une liste, aisi de suite sur trois niveaux).
Voice la méthode qui me pernet de construire mon objet treenode à passer dans la balise rich:tree :
( nom du fichier : JobByTreeManagement.java)
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 : getLstGroup()) {
nodeImp = new TreeNodeImpl<String>();
nodeImp.setData(gp.getName());
for (Process pc : gp.getLstProcess()) {
nodeImp2 = new TreeNodeImpl<String>();
nodeImp2.setData(pc.getName());
for (Job jb : pc.getLstJob()) {
nodeImp3 = new TreeNodeImpl<String>();
nodeImp3.setData("job "+jb.getJobNo());
nodeImp2.addChild(jb.getJobNo(), nodeImp3);
}
nodeImp.addChild(pc.getProcessNo(), nodeImp2);
}
rootNode.addChild(gp.getGroupNo(), nodeImp);
}
return rootNode;
}
Donc j'appelle cette méthode depuis mon xhtml dans ma balise rich:tree :
<rich:tree style="width:100%; text-align: left"
ajaxSubmitSelection="true"
nodeSelectListener="#{JobByTreeManagement.processSelection}"
switchType="client" value="#{JobByTreeManagement.treeNode}" var="item"
ajaxKeys="#{null}">
</rich:tree>
Mon problème est le suivant : chaqu'un de mes objet contient une varriable (nommé couleur). Je voudrais afficher mes noeuds de mon arbre dans la couleur spécifié.
Si quelqu'un pouvait m'aider, ce serais sympe,
LeDoc
A voir également:
- Rich:tree avec info sur les noeuds
- Rich communication services - Guide
- Rich copy - Télécharger - Gestion de fichiers
1 réponse
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
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