Foro sobre Java EE > Crear tree primefaces dinamicamente.
ya pudiste crear los nodos dianmicamente?
imagino que tu tienes un List<Departamentos> dptos, el mismo que es llenado por un Dao que trae la data de tu BD. Imaginando ese escenario tendrias que iterar con un lazo for (Departamentos row: dptos ) { node = new DefaultTreeNode(row.getDescripcion(), root);} basicamente asi lo haria yo, obviamente tendrias que definir tu root y TreeNode node = null;
yo lo hice con una método recursivo para llenar el arbol y usando un poco de reflection para que me quedara generico para cada entity
public class TreeUtils {
public static void pupularArbol(TreeNode nodoPadre, List datos, Class clase, String methodName) {
for (int i = 0; i < datos.size(); i++) {
Object dato = datos.get(i);
Object padreDeDato = obtenerRetornoInvocado(dato, methodName);
if ((nodoPadre.getData() == null) && (padreDeDato == null)) {
TreeNode nodo = new DefaultTreeNode(dato, nodoPadre);
nodo.setExpanded(true);
pupularArbol(nodo, datos, clase, methodName);
}else {
if (padreDeDato != null) {
if (padreDeDato.equals(nodoPadre.getData())) {
TreeNode nodo = new DefaultTreeNode(dato, nodoPadre);
nodo.setExpanded(true);
pupularArbol(nodo, datos, clase, methodName);
}
}
}
}
}
private static Object obtenerRetornoInvocado(Object object, String methodName) {
try {
return object.getClass().getMethod(methodName).invoke(object);
} catch (IllegalArgumentException | InvocationTargetException | IllegalAccessException | NoSuchMethodException | SecurityException ex) {
Logger.getLogger(TreeUtils.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}
luego para usarlo
categorias = categoriaFacade.findAll();
categoriaTree = new DefaultTreeNode();
TreeUtils.pupularArbol(categoriaTree, categorias, Categoria.class, "getPadre");
siendo "getPadre" el nombre del método parra obtener el id del registro padre.
Me puedes pasar el código fuente necesito urgentemente un tree view dinámico..
Quiero usar un tree de primefaces para crear la estructura de mi empresa, pero no se como crear los nodos dinámicamente, según los datos que me traigo de loa BBDD, ya que por lo que veo en la documentación, los nodos se crean así:
TreeNode node0 = new TreeNode("Node 0", root)
pero claro yo los nodos los debo crear dinamicamente según los datos que tengo guardados en la BBDD.
¿ Alguien me puede ayudar?