Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Crear tree primefaces dinamicamente.

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?

octubre 1, 2011 | Registered Commenterjlgarcia1977

ya pudiste crear los nodos dianmicamente?

enero 29, 2012 | Unregistered Commenteralberto

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;

septiembre 13, 2012 | Unregistered CommenterJameson Villanueva

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

septiembre 19, 2012 | Registered Commentermontblack


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.

septiembre 19, 2012 | Registered Commentermontblack

Me puedes pasar el código fuente necesito urgentemente un tree view dinámico..

junio 26, 2013 | Unregistered Commenterruth