Boa tarde…
Estou tentando aplicar um exemplo de rich:tree. Primeiro exemplo peguei do site RichFaces live demo, porém a página não exibia a tree e não gerava nenhum erro. Resolvi pesquisar outros exemplos, então achei esse:
Classe ItemArvore
package br.com;
import java.util.ArrayList;
import java.util.List;
public class ItemArvore {
private String descricao;
private List<ItemArvore> filhos = new ArrayList<ItemArvore>();
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao){
this.descricao = descricao;
}
public List<ItemArvore> getFilhos() {
return filhos;
}
public void setFilhos(List<ItemArvore> filhos) {
this.filhos = filhos;
}
}
Classe BeanArvore
package br.com;
import java.util.HashSet;
import java.util.Set;
import javax.faces.component.UIData;
import org.richfaces.event.NodeExpandedEvent;
public class BeanArvore {
private Set<ItemArvore> arvore = new HashSet<ItemArvore>();
public Set<ItemArvore> getArvore() {
return arvore;
}
public void setArvore(Set<ItemArvore> arvore) {
this.arvore = arvore;
}
private void loadDadosTree() {
// Criamos o primeiro item
ItemArvore item = new ItemArvore();
// Setamos sua descrição
item.setDescricao("Primeiro nó da árvore.");
// Adicionamos ele na árvore
arvore.add(item);
}
public void changeExpandListener(NodeExpandedEvent event) {
// Recuperamos o data do nó expandido
Object no = ((UIData) event.getComponent()).getRowData();
// Colocamos ele do tipo da classe que criamos de itens da árvore
ItemArvore item = (ItemArvore)no;
// Criamos um novo item qualquer para adicionarmos ao nó que foi clicado
ItemArvore itemAdicionar = new ItemArvore();
itemAdicionar.setDescricao("Item teste");
// Adicionamos na lista de filhos
item.getFilhos().add(itemAdicionar);
}
}
Página JSP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>
<html>
<head>
<title>Testando Tree</title>
</head>
<body>
<f:view>
<h:form>
<rich:tree id="tree" style="width:300px" ajaxSubmitSelection="true" switchType="ajax" nodeSelectListener="#{bean.changeExpandListener}">
<rich:recursiveTreeNodesAdaptor roots="#{bean.arvore}" var="no" nodes="#{no.filhos}">
<rich:treeNode>
<h:outputText value="#{no.descricao}"/>
</rich:treeNode>
</rich:recursiveTreeNodesAdaptor>
</rich:tree>
</h:form>
</f:view>
</body>
</html>
Mas o problema persiste. A página não gera nenhuma excessão, mas, também não exibe nada.
Desde já, agradeço.