You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Ajayi Yinka <ia...@googlemail.com> on 2009/03/26 09:34:56 UTC
Question on LinkTree implementation
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
Fwd: Question on LinkTree implementation
Posted by Ajayi Yinka <ia...@googlemail.com>.
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 <ia...@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 <ia...@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
Fwd: Question on LinkTree implementation
Posted by Ajayi Yinka <ia...@googlemail.com>.
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 <ia...@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