i will appreciate anyone that can help me look into this problem. I think I
lack the knowledge on proper implementation on ListTree.

I had surfed the net, I couldn't find something that could be of help.

Please,  could anyone help me out.

---------- Forwarded message ----------
From: Ajayi Yinka <iamstyaj...@googlemail.com>
Date: Thu, Mar 26, 2009 at 9:32 AM
Subject: Fwd: Question on LinkTree implementation
To: users@wicket.apache.org


I found out that if no node is added to the node1, The onclick method works
as supposed.

But if I try to add one sub-node to it, I begin to have the same type of
error as below.

I am sure there is a problem somewhere that I have not been able to trace (I
am a new to wicket framework). Could anyoen help me out.

Thanks



---------- Forwarded message ----------
From: Ajayi Yinka <iamstyaj...@googlemail.com>
Date: Thu, Mar 26, 2009 at 8:34 AM
Subject: Question on LinkTree implementation
To: users@wicket.apache.org




hi all,

I am having problems in implementing LinkTree in my page.

I use to get the component not found exception (

WicketMessage: close tag not found for tag: <ul id="node11"
wicket:id="node1">. Component: [MarkupContainer [Component id = node1]]

Root cause:

org.apache.wicket.markup.MarkupException: close tag not found for tag: <ul
id="node11" wicket:id="node1">. Component: [MarkupContainer [Component id =
node1]]
at
org.apache.wicket.markup.html.panel.Panel.onComponentTagBody(Panel.java:121)
at org.apache.wicket.Component.renderComponent(Component.java:2480)
at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1411)
at org.apache.wicket.Component.render(Component.java:2317)
at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1297)
at
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1476)
at
org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:639)
at
org.apache.wicket.markup.html.panel.Panel.onComponentTagBody(Panel.java:112)
at org.apache.wicket.Component.renderComponent(Component.java:2480)
at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1411)
at org.apache.wicket.Component.render(Component.java:2317)
at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1297)
at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1427)
at org.apache.wicket.Page.onRender(Page.java:1470)
at org.apache.wicket.Component.render(Component.java:2317)
at org.apache.wicket.Page.renderPage(Page.java:904)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:231)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1181)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1252)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1353)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:200)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:250)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:250)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
at
org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:460)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
at
com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
at
com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
at
com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
at
com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
at
com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
HTML part:

<wicket:panel>
    <div id="doc-side-menu">
        <h2>Menu</h2>

       <ul wicket:id="node1">

       <li wicket:id="link1">Link 1</li>
       <!-- <li wicket:id="link2">Link 2</li>
        <li wicket:id="link3">Link 3</li> -->

       </ul>
    </div>
</wicket:panel>


The codes are pasted below.

       TPListTreeModelNode linkNodes=new TPListTreeModelNode(linkRoot);

       //start adding child node
        linkNodes.addNodes("link1", 1);
       // linkNodes.addNodes("link2", 2);
      // linkNodes.addNodes("link3", 2);

        tree = new LinkTree("node1", new TPListTreeModel(linkNodes, true)) {
            @Override
        protected Component newNodeComponent(String id, IModel model) {
        return new LinkIconPanel(id, model, this) {
                    @Override
            protected void onNodeLinkClicked(TreeNode node,
                    BaseTree tree, AjaxRequestTarget target) {
                tree.getTreeState().selectNode(node,
                        !tree.getTreeState().isNodeSelected(node));
                onClicked(node, tree, target);
            }
                    @Override
            protected Component newContentComponent(String componentId,
                    BaseTree tree, IModel model) {
                return new Label(componentId, getNodeTextModel(model));
            }
        };
    }

    protected void onClicked(TreeNode node, BaseTree tree,
            AjaxRequestTarget target) {
        if (!node.isLeaf()) {
            if (tree.getTreeState().isNodeExpanded(node)) {
                collapseAll(node);
            } else {
                expandAll(node);
            }
            tree.updateTree(target);
        } else {
            System.out.println(Arrays
                    .toString(((DefaultMutableTreeNode) node)
                            .getUserObjectPath()));
        }
    }


protected void collapseAll(final TreeNode treeNode)
{
    tree.getTreeState().collapseNode(treeNode);
    for (final Enumeration e = treeNode.children();e.hasMoreElements();) {
        collapseAll((TreeNode) e.nextElement());
    }
}

protected void expandAll(final TreeNode treeNode)
{
    tree.getTreeState().expandNode(treeNode);
    for (final Enumeration e = treeNode.children();e.hasMoreElements();)
    {
        expandAll((TreeNode) e.nextElement());
    }
}

        };

public class TPListTreeModelNode extends DefaultMutableTreeNode {

    Object ObjectNode;
    String tree="";
    public TPListTreeModelNode(Object ObjectNode) {
        super(ObjectNode);
        this.ObjectNode=ObjectNode;
    }

    public TPListTreeModelNode() {
        super();
        this.ObjectNode=new DefaultMutableTreeNode();
        tree="default";
    }

   public void addNodes(String childName, int grandChildNumber) {
       IModel newNode=new Model(childName);

       DefaultMutableTreeNode child =new
DefaultMutableTreeNode((Object)newNode);
     // DefaultMutableTreeNode grandChild;
       add(child);

     /*  for(int grandChildIndex=0; grandChildIndex<grandChildNumber;
grandChildIndex++) {
        grandChild = new DefaultMutableTreeNode(childName+".
"+grandChildNumber);
        child.add(grandChild);
       }
    */
   }

    @Override
   public String toString(){
       return tree;
   }

}


I will appreciated a quick response.
thanks.
-- 
Ajayi Yinka,

Itex Integrated Services, Nig.

+2348022684477




-- 
Ajayi Yinka,

Itex Integrated Services, Nig.

+2348022684477




-- 
Ajayi Yinka,

Itex Integrated Services, Nig.

+2348022684477

Reply via email to