***** rich:tree not render *****
danielnp Jun 23, 2007 9:33 PMHi I have the following code but the tree not rendered....
I use RichFaces 3.0.1 and Ajax4JSF1.1.1 and Sun implementation.
package mais;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.richfaces.component.TreeNode;
public class GrupoEmpresaTreeControl implements TreeNode{
/**
*
*/
private static final long serialVersionUID = 2061068512715155849L;
private Map grupos = null;
private String descricao = "pai";
private Long id = new Long(0);
public GrupoEmpresaTreeControl() {
initData();
}
private Map getGrupos() {
if (this.grupos==null) {
initData();
}
return this.grupos;
}
public void addGrupoEmpresaTree(GrupoEmpresaTree grupoEmpresaTree) {
addChild(grupoEmpresaTree.getId(), grupoEmpresaTree);
grupoEmpresaTree.setParent(this);
}
@SuppressWarnings("unchecked")
public void addChild(Object identifier, TreeNode child) {
getGrupos().put(identifier, child);
}
public TreeNode getChild(Object id) {
return (TreeNode) getGrupos().get(id);
}
public Iterator getChildren() {
return getGrupos().entrySet().iterator();
}
public Object getData() {
return this;
}
public TreeNode getParent() {
return null;
}
public boolean isLeaf() {
return getGrupos().isEmpty();
}
public void removeChild(Object id) {
getGrupos().remove(id);
}
public void setData(Object data) {}
public void setParent(TreeNode parent) {}
public String getType() {
return "grupoempresacontrol";
}
public String getDescricao() {return descricao;}
public void setDescricao(String descricao) {this.descricao = descricao;}
public Long getId() {return id;}
public void setId(Long id) {this.id = id;}
@SuppressWarnings("unchecked")
private void initData() {
if (grupos == null){
grupos = new HashMap();
//GrupoEmpresaTree p;
GrupoEmpresaTree f;
f = new GrupoEmpresaTree(new Long(1));
f.setDescricao("Nivel 1");
addGrupoEmpresaTree(f);
f = new GrupoEmpresaTree(new Long(2));
f.setDescricao("Nivel 2");
addGrupoEmpresaTree(f);
f = new GrupoEmpresaTree(new Long(3));
f.setDescricao("Nivel 3");
addGrupoEmpresaTree(f);
/*
p=f;
f = new GrupoEmpresaTree();
f.setDescricao("Filho Nivel 1");
p.addChild(new Long(2), f);
//grupos.put(p, f);
f = new GrupoEmpresaTree();
f.setDescricao("Nivel 2");
grupos.put(new Long(3), f);
*/
}
}
}
package mais;
import java.util.ArrayList;
import java.util.Iterator;
import org.richfaces.component.TreeNode;
public class GrupoEmpresaTree implements TreeNode{
private Long id;
private String descricao;
private GrupoEmpresaTreeControl grupoEmpresaTreeControl;
private static final long serialVersionUID = -1471377200156566830L;
public GrupoEmpresaTree(Long id) {
this.id = id;
}
@SuppressWarnings("unchecked")
public void addChild(Object identifier, TreeNode child) {
throw new UnsupportedOperationException("Não suporta mais filho.");
}
public TreeNode getChild(Object grupo) {
throw new UnsupportedOperationException("Não suporta mais filho.");
}
public Iterator getChildren() {
return new ArrayList().iterator();
}
public Object getData() {
return this;
}
public TreeNode getParent() {
return grupoEmpresaTreeControl;
}
public boolean isLeaf() {
return true;
}
public void removeChild(Object grupo) {
throw new UnsupportedOperationException("Não existtem filhos para remoção!");
}
public void setData(Object data) {}
public void setParent(TreeNode parent) {
grupoEmpresaTreeControl = (GrupoEmpresaTreeControl) parent;
}
public String getType() {
return "grupoempresa";
}
/*
* GETTERS AND SETTERS
*/
public String getDescricao() {return descricao;}
public void setDescricao(String descricao) {this.descricao = descricao;}
public Long getId() {return id;}
public void setId(Long id) {this.id = id;}
}
<%@ 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>
<f:view>
<head>
<title>Bem Vindo ao MAIS !!!</title>
</head>
<body>
<h:form id="formIndex">
<table border="1" width="100%" height="100%" cellpadding="0" cellspacing="0">
<tr height="100%">
<td valign="top" align="center">
<rich:panel>
<f:facet name="header">
<h:outputText value="Cabecalho" />
</f:facet>
<h:outputText value="Corpo" />
</rich:panel>
<div class="sample-container">
<rich:tree styleClass="nav-tree" switchType="server" id="idTree" style="width:100%" value="#{tree.data}" var="item" nodeFace="#{item.type}">
<rich:treeNode type="grupoempresacontrol">
<h:outputText value="teste" />
</rich:treeNode>
<rich:treeNode type="grupoempresa">
<h:outputText value="#{item.descricao}" />
</rich:treeNode>
</rich:tree>
</div>
</td>
</tr>
</table>
</h:form>
</body>
</f:view>
</html>
Help me!