This content has been marked as final.
Show 3 replies
-
1. Re: TreeStateAdvisor doesn't work on navigation-rule
blabno May 29, 2008 4:12 AM (in response to j-pro)Maybe because of "request" scope. By the way, show treeMan code.
-
2. Re: TreeStateAdvisor doesn't work on navigation-rule
j-pro May 29, 2008 2:18 PM (in response to j-pro)Here it is, if you need to:
public class TreeManager extends ManagedBean { // ############################################################################################ // ############################################################################################ private static final long serialVersionUID = 1L; private DepartmentTreeNode[] departmentsTreeRoots; // ############################################################################################ // ############################################################################################ public TreeManager() { super(); } // ############################################################################################ public synchronized DepartmentTreeNode[] getDepartmentsTreeRoots() { if (departmentsTreeRoots == null) { ActionsManager am = (ActionsManager)TreeManager.getBean(WebConst.MAIN_MBEAN_NAME); departmentsTreeRoots = new DepartmentTreeNode(am.getAllTreeListMan().getDepartmentTypeLevel0()).getNodes(); } return departmentsTreeRoots; } // ############################################################################################ public synchronized void setDepartmentsTreeRoots(DepartmentTreeNode[] depTreeRoots) { this.departmentsTreeRoots = depTreeRoots; } // ############################################################################################ public void onDepartmentTreeExpandPretenders(NodeExpandedEvent event) { UITree tree = (UITree) event.getComponent(); System.out.println("################# >>>>> Tree node expanded"); DepartmentTreeNode selectedNode = (DepartmentTreeNode)tree.getRowData(); AllTree dep = (AllTree) selectedNode.getDepartmentAllTree(); System.out.println("################# >>>>> Tree node expanded, name = " + dep.getName()); System.out.println("################# >>>>> id = " + dep.getAllTreeId()); } // ############################################################################################ public void onDepartmentTreeExpandStaff(NodeExpandedEvent event) { UITree tree = (UITree) event.getComponent(); System.out.println("################# >>>>> Tree node expanded"); DepartmentTreeNode selectedNode = (DepartmentTreeNode)tree.getRowData(); AllTree dep = (AllTree) selectedNode.getDepartmentAllTree(); System.out.println("################# >>>>> Tree node expanded, name = " + dep.getName()); System.out.println("################# >>>>> id = " + dep.getAllTreeId()); } // ############################################################################################ public void onDepartmentTreeSelectPretenders(NodeSelectedEvent event) { if(event == null) { System.out.println("############### >>>>> Event IS NULL !!!"); return; } UITree tree = (UITree) event.getComponent(); System.out.println("################# >>>>> Tree node selected"); if(tree == null) { System.out.println("############### >>>>> Tree IS NULL !!!"); return; } DepartmentTreeNode selectedNode = (DepartmentTreeNode)tree.getRowData(); System.out.println("name = " + selectedNode.toString()); DepartmentTreeNode[] depNodes = selectedNode.getNodes(); System.out.println("######### >> depNodes length = " + depNodes.length); for(DepartmentTreeNode depTN: depNodes) { System.out.println("######### >> Next node, name: " + depTN.toString()); System.out.println("####### >> IS Leaf: " + depTN.isLeaf()); } System.out.println("################# >>>>> Tree node selected FINISH"); } // ############################################################################################ public void onDepartmentTreeSelectStaff(NodeSelectedEvent event) { if(event == null) { System.out.println("############### >>>>> Event IS NULL !!!"); return; } UITree tree = (UITree) event.getComponent(); System.out.println("################# >>>>> Tree node selected"); if(tree == null) { System.out.println("############### >>>>> Tree IS NULL !!!"); return; } // action DepartmentTreeNode selectedNode = (DepartmentTreeNode)tree.getRowData(); System.out.println("name = " + selectedNode.toString()); ActionsManager am = (ActionsManager)TreeManager.getBean(WebConst.MAIN_MBEAN_NAME); am.getEmployeeListMan().setParameter4Staff(selectedNode.getDepartmentAllTree()); System.out.println("parameter setParameter4Staff SET to " + selectedNode.getDepartmentAllTree().getName()); System.out.println("################# >>>>> Tree node selected FINISH"); } }
and here is DepartmentTreeNode class if you need it too:public class DepartmentTreeNode { // ############################################################################################ // ############################################################################################ private static AllTreeDAORemote allTreeDAORemote; private AllTree departmentAllTree; private static DepartmentTreeNode[] CHILDREN_ABSENT = new DepartmentTreeNode[0]; private DepartmentTreeNode[] children; private String name; // ############################################################################################ // ############################################################################################ public DepartmentTreeNode(AllTree departmentAllTree) { this.departmentAllTree = departmentAllTree; this.name = departmentAllTree.getName(); } // ############################################################################################ public AllTree getDepartmentAllTree() { return this.departmentAllTree; } // ############################################################################################ public void setDepartmentAllTree(AllTree departmentAllTree) { this.departmentAllTree = departmentAllTree; this.name = departmentAllTree.getName(); } // ############################################################################################ public synchronized DepartmentTreeNode[] getNodes() { if (children == null) { List<AllTree> childrenAllTreeList = this.getAllTreesByParent(departmentAllTree); if (childrenAllTreeList != null) { children = new DepartmentTreeNode[childrenAllTreeList.size()]; int i = 0; for(AllTree dep: childrenAllTreeList) { children = new DepartmentTreeNode(dep); i++; } } else { children = CHILDREN_ABSENT; } } return children; } // ############################################################################################ public String toString() { return this.name; } // ############################################################################################ public boolean isLeaf() { return (this.children.length > 0) ? false : true; } // ############################################################################################ public List<AllTree> getAllTreesByParent(AllTree parent) { List<AllTree> departmentTypes = null; InitialContext context; try { context = new InitialContext(); allTreeDAORemote = (AllTreeDAORemote) context.lookup(WebConst.APP_NAME + "/" + AllTreeDAOBean.class.getSimpleName() + "/remote"); departmentTypes = allTreeDAORemote.getByParent(parent); } catch (Exception ex) { ex.printStackTrace(); } return departmentTypes; } }
-
3. Re: TreeStateAdvisor doesn't work on navigation-rule
j-pro Jun 3, 2008 3:56 PM (in response to j-pro)Any suggestions? Is it a bug or something? Because I think it's not my fault... Tree managed bean should work as being in session scope, as in request, isn't it?