Hello, I am also working on the same senario,but i not able to reconstruct the tree with the child nodes given a parent node on click of a particular node.I have overriden the onNodeClickedEvent() of the AbstractTree but the tree in the webpage does',t show the child nodes on refresh. Plz Help .
Thanks and Regards. yaojb wrote: > > I'd used Tree component(id="tree") as navigation layout, I want to change > another panel component(id="main") of the same layout when one tree node > clicked, But nothing change occur. When I use the link component to change > the same panel component(id="main") followed the nested demo of > wicket-example, so it's ok! Oh, how can I get the same effect use Tree > component??? > > All files associated: > > BasePage.java > > public class BasePage extends WebPage{ > > public BasePage() { > > add(new TreePanel("tree",null)); > > add(new MainPanel("main",new Model("Begin"))); > > } > > > > } > > BasePage.html > > <html> > > <head> > > <title>test</title> > > <link rel="stylesheet" type="text/css" > href="styles.css"/> > > </head> > > > > <body> > > <div> > > <span wicket:id="tree">[tree here]</span> > > <span wicket:id="main">[main here]</span> > > </div> > > > > <div id="body"> > > <wicket:child /> > > </div> > > </body> > > </html> > > TreePanel.java > > public class TreePanel extends Panel{ > > > > public TreePanel(String s, IModel iModel) { > > super(s, iModel); > > add(tree); > > } > > > > private Tree tree=new Tree("tree", createTreeModel()) > > { > > protected String renderNode(TreeNode node) > > { > > ModelBean bean = (ModelBean) > ((DefaultMutableTreeNode)node).getUserObject(); > > return bean.getProperty1(); > > } > > protected void onNodeLinkClicked(AjaxRequestTarget > ajaxRequestTarget, TreeNode treeNode){ > > ModelBean bean = (ModelBean) > ((DefaultMutableTreeNode)treeNode).getUserObject(); > > //followed line I want to get the effect, but I failed! > > this.getParent().getPage().replace(new > MainPanel("main",new > Model(bean.getProperty1()))); > > } > > }; > > > > /** > > * Creates the model that feeds the tree. > > * @return > > * New instance of tree model. > > */ > > protected TreeModel createTreeModel() > > { > > List l1 = new ArrayList(); > > l1.add("test 1.1"); > > l1.add("test 1.2"); > > l1.add("test 1.3"); > > List l2 = new ArrayList(); > > l2.add("test 2.1"); > > l2.add("test 2.2"); > > l2.add("test 2.3"); > > List l3 = new ArrayList(); > > l3.add("test 3.1"); > > l3.add("test 3.2"); > > l3.add("test 3.3"); > > > > l2.add(l3); > > > > l2.add("test 2.4"); > > l2.add("test 2.5"); > > l2.add("test 2.6"); > > > > l3 = new ArrayList(); > > l3.add("test 3.1"); > > l3.add("test 3.2"); > > l3.add("test 3.3"); > > l2.add(l3); > > > > l1.add(l2); > > > > l2 = new ArrayList(); > > l2.add("test 2.1"); > > l2.add("test 2.2"); > > l2.add("test 2.3"); > > > > l1.add(l2); > > > > l1.add("test 1.3"); > > l1.add("test 1.4"); > > l1.add("test 1.5"); > > > > return convertToTreeModel(l1); > > } > > > > private TreeModel convertToTreeModel(List list) > > { > > TreeModel model = null; > > DefaultMutableTreeNode rootNode = new > DefaultMutableTreeNode(new ModelBean("ROOT")); > > add(rootNode, list); > > model = new DefaultTreeModel(rootNode); > > return model; > > } > > > > private void add(DefaultMutableTreeNode parent, List sub) > > { > > for (Iterator i = sub.iterator(); i.hasNext();) > > { > > Object o = i.next(); > > if (o instanceof List) > > { > > DefaultMutableTreeNode child = new > DefaultMutableTreeNode(new ModelBean("subtree...")); > > parent.add(child); > > add(child, (List)o); > > } > > else > > { > > DefaultMutableTreeNode child = new > DefaultMutableTreeNode(new ModelBean(o.toString())); > > parent.add(child); > > } > > } > > } > > /** > > * @see wicket.Component#isVersioned() > > */ > > public boolean isVersioned() > > { > > // TODO Bug: Versioning gives problems... probably has > to > do with markup > > // inheritance > > return false; > > } > > } > > TreePanel.html > > <html> > > <wicket:panel> > > <span wicket:id="tree"></span> > > </wicket:panel> > > </html> > > > > > > MainPanel.java > > public class MainPanel extends Panel{ > > > > public MainPanel(String s, IModel iModel) { > > super(s, iModel); > > add(new Label("main",iModel.toString())); > > } > > } > > MainPanel.html > > <html> > > <wicket:panel> > > <span wicket:id="main"></span> > > </wicket:panel> > > </html> > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > -- View this message in context: http://www.nabble.com/Tree-node-clicked-to-change-another-panel--problem-tf2627266.html#a7332603 Sent from the Wicket - User mailing list archive at Nabble.com. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user