AW: LinkTree

2009-11-04 Thread Giambalvo, Christian
Hi,

i did another way an that way worked.

Replace markupContainer.add(new 
Label(DETAILS_PANEL_ID,label).setOutputMarkupId(true));
with 
private final Label labelToReplace = new 
Label(DETAILS_PANEL_ID,label).setOutputMarkupId(true);

markupContainer.add(labelToReplace);
...
And in onNodeLinkClicked create your panel and then do: 
labelToReplace.replaceWith(targetPanel);

Hope this helps.

-Ursprüngliche Nachricht-
Von: jahid [mailto:ja...@outscore.se] 
Gesendet: Mittwoch, 4. November 2009 15:13
An: users@wicket.apache.org
Betreff: Re: LinkTree

Guys, thanks a lot for quick reply. I have changed my code according to 
your mentioned way, but seems like i am doing something wrong. Below are 
my code, markup and stacktrace -



   1. private WebMarkupContainer markupContainer;
   2. final String DETAILS_PANEL_ID =detailsPanel;
   3. public ListContractsPage() {
   4. markupContainer =new WebMarkupContainer(markupContainer);
   5. markupContainer.setOutputMarkupId(true);
   6. markupContainer.add(new
  Label(DETAILS_PANEL_ID,label).setOutputMarkupId(true));
   7. add(prepareTree());
   8. add(markupContainer);
   9. }
  10. private BaseTree prepareTree() {
  11. DefaultMutableTreeNode rootNode = new
  DefaultMutableTreeNode(Contracts);
  12. TreeModel treeModel = new DefaultTreeModel(rootNode);
  13. assembleContracts(rootNode);
  14. final LinkTree linkTree=new LinkTree(tree, treeModel){
  15. @Override
  16. protected void onNodeLinkClicked(Object node, BaseTree
  tree, AjaxRequestTarget target) {
  17. //markupContainer.remove(DETAILS_PANEL_ID);
  18. Object userObject = ((DefaultMutableTreeNode)
  node).getUserObject();
  19. Panel targetPanel;
  20. if (userObject instanceof ServiceHandle) {
  21. targetPanel = new
  ServiceDetailsPanelServiceHandle(DETAILS_PANEL_ID,
  (ServiceHandle) userObject);
  22. } else if (userObject instanceof ContractHandle) {
  23. targetPanel = new
  ContractDetailsPanelContractHandle(DETAILS_PANEL_ID,
  (ContractHandle) userObject);
  24. } else {
  25. throw new AssertionError(Expected: master,
  sub or service handle, but found:  +
  userObject.getClass().getSimpleName());
  26. }
  27. targetPanel.setOutputMarkupId(true);
  28. ListContractsPage.this.addOrReplace(targetPanel);
  29. target.addComponent(targetPanel);
  30. }
  31. };
  32. linkTree.setOutputMarkupId(true);
  33. linkTree.getTreeState().expandNode(rootNode);
  34. return linkTree;
  35. }




   1. !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
   2. http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd;
   3. html xmlns=http://www.w3.org/1999/xhtml;
   4.   xmlns:wicket=http://wicket.apache.org/; xml:lang=en
  lang=en
   5. body
   6. wicket:extend
   7. h4Contracts:/h4
   8. table
   9. tr
  10. td
  11. span wicket:id=tree[tree will be here]/span
  12. /td
  13. /tr
  14. tr
  15. td
  16. span wicket:id=markupContainer
  17. span
  wicket:id=detailsPanel/span   
  18. /span
  19. /td
  20. /tr
  21. /table
  22. /wicket:extend
  23. /body
  24. /html




WicketMessage: Unable to find the markup for the component. That may be 
due to transparent containers or components implementing 
IComponentResolver: [MarkupContainer [Component id = detailsPanel]]

Root cause:

org.apache.wicket.WicketRuntimeException: Unable to find the markup for 
the component. That may be due to transparent containers or components 
implementing IComponentResolver: [MarkupContainer [Component id = 
detailsPanel]]
at 
org.apache.wicket.MarkupFragmentFinder.find(MarkupFragmentFinder.java:125)
at org.apache.wicket.Component.locateMarkupStream(Component.java:3820)
at org.apache.wicket.Component.renderComponent(Component.java:2557)
at 
org.apache.wicket.ajax.AjaxRequestTarget.respondComponent(AjaxRequestTarget.java:793)
at 
org.apache.wicket.ajax.AjaxRequestTarget.respondComponents(AjaxRequestTarget.java:667)
at 
org.apache.wicket.ajax.AjaxRequestTarget.respond(AjaxRequestTarget.java:579)
at 
org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105)
at 
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1249)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1320)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1419)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at 

Re: AW: LinkTree

2009-11-04 Thread jahid
Ohh my bad, i was trying to replace the targetPanel to the page, not 
to the markupContainer. Now its working! :)



Thanks guys!

//Jahid

Giambalvo, Christian wrote:

Hi,

i did another way an that way worked.

Replace markupContainer.add(new 
Label(DETAILS_PANEL_ID,label).setOutputMarkupId(true));
with 
private final Label labelToReplace = new Label(DETAILS_PANEL_ID,label).setOutputMarkupId(true);


markupContainer.add(labelToReplace);
...
And in onNodeLinkClicked create your panel and then do: 
labelToReplace.replaceWith(targetPanel);

Hope this helps.

-Ursprüngliche Nachricht-
Von: jahid [mailto:ja...@outscore.se] 
Gesendet: Mittwoch, 4. November 2009 15:13

An: users@wicket.apache.org
Betreff: Re: LinkTree

Guys, thanks a lot for quick reply. I have changed my code according to 
your mentioned way, but seems like i am doing something wrong. Below are 
my code, markup and stacktrace -




   1. private WebMarkupContainer markupContainer;
   2. final String DETAILS_PANEL_ID =detailsPanel;
   3. public ListContractsPage() {
   4. markupContainer =new WebMarkupContainer(markupContainer);
   5. markupContainer.setOutputMarkupId(true);
   6. markupContainer.add(new
  Label(DETAILS_PANEL_ID,label).setOutputMarkupId(true));
   7. add(prepareTree());
   8. add(markupContainer);
   9. }
  10. private BaseTree prepareTree() {
  11. DefaultMutableTreeNode rootNode = new
  DefaultMutableTreeNode(Contracts);
  12. TreeModel treeModel = new DefaultTreeModel(rootNode);
  13. assembleContracts(rootNode);
  14. final LinkTree linkTree=new LinkTree(tree, treeModel){
  15. @Override
  16. protected void onNodeLinkClicked(Object node, BaseTree
  tree, AjaxRequestTarget target) {
  17. //markupContainer.remove(DETAILS_PANEL_ID);
  18. Object userObject = ((DefaultMutableTreeNode)
  node).getUserObject();
  19. Panel targetPanel;
  20. if (userObject instanceof ServiceHandle) {
  21. targetPanel = new
  ServiceDetailsPanelServiceHandle(DETAILS_PANEL_ID,
  (ServiceHandle) userObject);
  22. } else if (userObject instanceof ContractHandle) {
  23. targetPanel = new
  ContractDetailsPanelContractHandle(DETAILS_PANEL_ID,
  (ContractHandle) userObject);
  24. } else {
  25. throw new AssertionError(Expected: master,
  sub or service handle, but found:  +
  userObject.getClass().getSimpleName());
  26. }
  27. targetPanel.setOutputMarkupId(true);
  28. ListContractsPage.this.addOrReplace(targetPanel);
  29. target.addComponent(targetPanel);
  30. }
  31. };
  32. linkTree.setOutputMarkupId(true);
  33. linkTree.getTreeState().expandNode(rootNode);
  34. return linkTree;
  35. }




   1. !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
   2. http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd;
   3. html xmlns=http://www.w3.org/1999/xhtml;
   4.   xmlns:wicket=http://wicket.apache.org/; xml:lang=en
  lang=en
   5. body
   6. wicket:extend
   7. h4Contracts:/h4
   8. table
   9. tr
  10. td
  11. span wicket:id=tree[tree will be here]/span
  12. /td
  13. /tr
  14. tr
  15. td
  16. span wicket:id=markupContainer
  17. span
  wicket:id=detailsPanel/span   
  18. /span

  19. /td
  20. /tr
  21. /table
  22. /wicket:extend
  23. /body
  24. /html




WicketMessage: Unable to find the markup for the component. That may be 
due to transparent containers or components implementing 
IComponentResolver: [MarkupContainer [Component id = detailsPanel]]


Root cause:

org.apache.wicket.WicketRuntimeException: Unable to find the markup for 
the component. That may be due to transparent containers or components 
implementing IComponentResolver: [MarkupContainer [Component id = 
detailsPanel]]
at 
org.apache.wicket.MarkupFragmentFinder.find(MarkupFragmentFinder.java:125)

at org.apache.wicket.Component.locateMarkupStream(Component.java:3820)
at org.apache.wicket.Component.renderComponent(Component.java:2557)
at 
org.apache.wicket.ajax.AjaxRequestTarget.respondComponent(AjaxRequestTarget.java:793)
at 
org.apache.wicket.ajax.AjaxRequestTarget.respondComponents(AjaxRequestTarget.java:667)
at 
org.apache.wicket.ajax.AjaxRequestTarget.respond(AjaxRequestTarget.java:579)
at 
org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105)
at 
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1249)

at