Simplest Example of RichFaces Tree
grdzeli_kaci Jun 11, 2007 11:35 AMhi all, i found tree example and it works fine, but i want to write my own tree.
here is my example :
1.faces-config.xml
<managed-bean> <managed-bean-name>database</managed-bean-name> <managed-bean-class>com.liliko.billing.businesslayer.beans.common.DataBases</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean>
2.DataBases.java
public class DataBases implements TreeNode { private Map databases = null; public Map getDatabases() { if (databases==null) { initData(); } return this.databases; } public void setData(Object object) { } public void removeChild(Object object) { databases.remove(object); } public TreeNode getChild(Object id) { return (TreeNode) getDatabases().get(id); } public void addDatabase(DataBase database) { addChild(Long.toString(database.getId()),database); database.setParent(this); } public void addChild(Object identifier, TreeNode child) { getDatabases().put(identifier,child); } public void setParent(TreeNode treeNode) { } public boolean isLeaf() { return true; } public TreeNode getParent() { return null; } public Object getData() { return this; } public Iterator getChildren() { return null; } private long nextId = 0; private long getNextId() { return nextId++; } public void initData(){ databases = new HashMap(); DataBase oracle = new DataBase(getNextId()); oracle.setName("Oracle"); DataBase iBMDB2 = new DataBase(getNextId()); iBMDB2.setName("IBM DB2"); DataBase msSql = new DataBase(getNextId()); msSql.setName("MS SQL Server"); DataBase postgreSQL = new DataBase(getNextId()); postgreSQL.setName("Postgre SQL"); DataBase mySQL = new DataBase(getNextId()); mySQL.setName("My SQL"); addDatabase(oracle); addDatabase(iBMDB2); addDatabase(msSql); addDatabase(postgreSQL); addDatabase(mySQL); } public String getType() { return "metadata"; } }
3.Database.java
public class DataBase implements TreeNode{ private static final long serialVersionUID = 7155620465939481885L; private long id; private String name; private DataBases databases; public DataBase(long id) { this.id = id; } public void setData(Object object) { } public void removeChild(Object object) { throw new UnsupportedOperationException("Database do not have children"); } public TreeNode getChild(Object object) { throw new UnsupportedOperationException("Database do not have children"); } public void addChild(Object object, TreeNode treeNode) { throw new UnsupportedOperationException("Database do not have children"); } public void setParent(TreeNode treeNode) { this.databases = (DataBases) treeNode; } public boolean isLeaf() { return true; } public TreeNode getParent() { return databases; } public Object getData() { return this; } public Iterator getChildren() { return new ArrayList().iterator(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getId() { return id; } }
3.client code
<rich:tree rendered = "true" style="width:300px" value="#{database.data}" var="item" nodeFace="#{item.type}"> <rich:treeNode type="metadata"> <h:outputText value="#{item.type}" /> </rich:treeNode> <rich:treeNode type="database"> <h:outputText value="#{item.name}" /> </rich:treeNode> </rich:tree>
but tree is not visible :(,
what i did incorrect ??
Regards,
Paata.