inconvertible types found with Richfaces UITree
jmoreira Jul 4, 2008 6:51 PMi'm getting an compile time error setting up a Tree:
- Richfaces deploy with this seam version and tried with richfaces-ui-3.2.1.GA also
- jboss-seam-2.0.2.SP1
Error inconvertible types found : javax.faces.component.UIComponent required: org.richfaces.component.UITree
CategoryHome.java
import org.jboss.seam.annotations.Factory; import org.jboss.seam.annotations.Logger; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.datamodel.DataModel; import org.jboss.seam.framework.EntityHome; import org.jboss.seam.log.Log; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.richfaces.component.UITree; import org.richfaces.event.NodeSelectedEvent; import org.richfaces.model.TreeNode; import org.richfaces.model.TreeNodeImpl; @Name("categoryHome") public class CategoryHome extends EntityHome<Category> { /** * */ private static final long serialVersionUID = 1L; private Long catid; @Logger Log log; @DataModel public List<Category> categoryList; @DataModel public List<Category> categoryBreadcrumList; /** * */ @Factory("categoryList") public void initTypificationList() { if (getCatid() == null) { categoryList = new ArrayList<Category>(findRootCategories()); } else { categoryList = new ArrayList<Category>(findCategoryChildren(getCatid())); } } /** * Breadcrumb */ @Factory("categoryBreadcrumList") public void initCategoryBreadcrumList() { if (getCatid() != null) { categoryBreadcrumList = findCategoryBreadCrumb(getCatid()); } else { categoryBreadcrumList = new ArrayList<Category>(); } } /** * * @return */ public List<Category> findRootCategories() { log.info("finding roots"); List<Category> results = getEntityManager().createQuery("from Category c where c.parent is null").getResultList(); return results; } /** * * @return */ public List<Category> findCategoryChildren(Long id) { log.info("finding children of <" + id + ">"); List<Category> results = getEntityManager().createQuery("from Category c where c.parent.id=:id").setParameter("id", id).getResultList(); return results; } /** * * @param id * @return */ public List<Category> findCategoryBreadCrumb(Long id) { List<Category> results = new ArrayList<Category>(); Category t = findByID(id); if (t != null) { results.add(t); while (t.getParent() != null) { t = findByID(t.getParent().getId()); if (t != null) { results.add(t); } } } Collections.reverse(results); return results; } /** * * @param id * @return */ public Category findByID(Long id) { return getEntityManager().find(Category.class, id); } /** * @return the tid */ public Long getCatid() { return catid; } /** * @param tid the tid to set */ public void setCatid(Long tid) { this.catid = tid; } // --------------- Tree ui private TreeNode rootNode = null; private String nodeTitle; /** * */ private void loadTree() { List<Category> roots = findRootCategories(); rootNode = new TreeNodeImpl(); for (Category category : roots) { addNodes(rootNode, category); } } /** * * @param node * @param category */ private void addNodes(TreeNode node, Category category) { TreeNodeImpl nodeImpl = new TreeNodeImpl(); nodeImpl.setData(category.getName()); node.addChild(category.getId(), nodeImpl); } /** * * @return */ public TreeNode getTreeNode() { if (rootNode == null) { loadTree(); } return rootNode; } public void processSelection(NodeSelectedEvent event) { UITree tree = (UITree) event.getComponent(); nodeTitle = (String) tree.getRowData(); } public String getNodeTitle() { return nodeTitle; } public void setNodeTitle(String nodeTitle) { this.nodeTitle = nodeTitle; } }
any ideas?
thanks