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

Reply via email to