You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by smallufo <sm...@gmail.com> on 2008/06/19 21:40:57 UTC

Re: Inheritance inside a Container

Hello ,
I had exactly the same problem , and solved by searching to this post.
Thanks a lot.

BUT , today , I have another problem...

Today , the ChildPanel can accept a new parameter : boolean defaultVisible
if true , the content will be shown;
if false , the content will be invisible , only the title bar is visible.
The title bar is defined in ParentPanel , containing a title label and a
"expand/collapse" ajax link (a toggle).

Here comes the problem.
In the ChildPanel , if I write :
setVisible(defaultVisible);
and if the defaultVisible is false , the whole panel , including ParentPanel
(including title bar) will be invisible;
This makes users unable to make it re-appear.

However , if I write code like this :
get("content").setVisible(defaultVisible);
("content" is the WebMarkupContainer defined in ParentPanel returning
isTransparentResolver()  TRUE)

It will throw WicketRuntimeException while
org.apache.wicket.Page.checkRendering
org.apache.wicket.WicketRuntimeException: The component(s) below failed to
render. A common problem is that you have added a component in code but
forgot to reference it in the markup (thus the component will never be
rendered).

How to solve it ?






2008/4/6 Martijn Dashorst <ma...@gmail.com>:

> You should do this:
>
> WMC wmc = new WMC("childContainer") {
>    @override boolean isTransparentResolver() { return true; }
> };
>
> This is not a bug. If you do add() in the subclass's constructor, you
> add to the page itself. Which is how the hierarchy is constructed. By
> telling the WMC that it is a transparent resolver, you tell it to look
> for children without attached markup in its siblings.
>
> Martijn
>
> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
> > Hi everyone,
> >  my first mail to the list, i hope this wasn`t answered million times
> > before, but the wicket users faq is empty so i couldn`t find it there ;)
> >
> >  I'm using wicket1.3 to create a generic panel with the option to hide
> > everything inside when clicking an ajax-button. While the actual
> > hiding&showing works fine I'm having trouble with inheritance.
> >  This example should show what I mean:
> >
> >  This is my generic super panel (no ajax stuff in it here to show the
> > essential problem). The idea is, that the childContainer is set to
> > Visible:false when the button is clicked. All of this should happen in
> the
> > super class, so i don't have to care about it in the child class:
> >
> >  public class testSuperPanel extends Panel {
> >    public testSuperPanel(String id) {
> >        super(id);
> >        add(new WebMarkupContainer("childContainer"));
> >    }
> >  }
> >
> >  The markup for testSuperPanel:
> >  <wicket:panel>
> >    <div wicket:id="childContainer">
> >        <wicket:child/>
> >    </div>
> >  </wicket:panel>
> >
> >  This is a sample child panel:
> >
> >  public class testChildPanel extends testSuperPanel {
> >    public testChildPanel(String id) {
> >        super(id);
> >        add(new Label("childLabel","Test!"));
> >    }
> >  }
> >
> >  and the Markup:
> >  <wicket:extend>
> >    <span wicket:id="childLabel"></span>
> >  </wicket:extend>
> >
> >  As you see, it should simply display "Test" inside a MarkupContainer
> (which
> > could be hidden from the superClass). When i try to display this Panel
> > however I get an Exception stating that no code is added for the Label
> > "childLabel"!
> >  This can be solved by adding the childLabel to the container in the
> > superClass, but thats obviously not the way it is meant to be:
> >
> >  public class testSuperPanel extends Panel {
> >    public testSuperPanel(String id) {
> >        super(id);
> >        WebMarkupContainer wmc = new
> > WebMarkupContainer("childContainer");
> >        wmc.add(new Label("childLabel","Test!"));
> >        add(wmc);
> >    }
> >  }
> >
> >  So, is this a wicket bug with inheritance inside containers or am I just
> > doing things the wrong way?
> >
> >  Thanks for your help!
> >  best regards, Oli
> >
> > ---------------------------------------------------------------------
> >  To unsubscribe, e-mail:
> > users-unsubscribe@wicket.apache.org
> >  For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>
>
> --
> Buy Wicket in Action: http://manning.com/dashorst
> Apache Wicket 1.3.2 is released
> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Inheritance inside a Container

Posted by smallufo <sm...@gmail.com>.
Hello ,
I created a new issue containing the codes : WICKET-1712
https://issues.apache.org/jira/browse/WICKET-1712

Thanks.


2008/6/22 Maurice Marrink <ma...@gmail.com>:

> Sounds Like a bug.
> Could you open up a jira request please and attach a quickstart
> showing this behavior.
>
> Thanks.
>
> Maurice
>
> On Fri, Jun 20, 2008 at 10:52 PM, smallufo <sm...@gmail.com> wrote:
> > Hi , after a few try and errors , I can conclude how the problem occurs
> >
> > In the ChildPanel , if my code is as follows :
> >
> > <wicket:extend>
> >  <span wicket:id="selectDeselectGroup">
> >
> >  </span>
> >  blah...
> > </wicket:extend>
> >
> > and code :
> > RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
> > add(selectDeselectGroup);
> >
> > Everything goes fine  , no matter the Child Panel is collapsed / expanded
> ,
> > page-reloading is OK
> >
> > But , if I add something inside the CheckGroup :
> >
> > <wicket:extend>
> >  <span wicket:id="selectDeselectGroup">
> >    <input type="radio" wicket:id="selectAll"/>select all
> >    <input type="radio" wicket:id="deselectAll"/>clean
> >  </span>
> > </wicket:extend>
> >
> > and code :
> >
> > RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
> > add(selectDeselectGroup);
> > Radio selectAll   = new Radio("selectAll"   , new Model(Boolean.FALSE));
> > Radio deselectAll = new Radio("deselectAll" , new Model(Boolean.FALSE));
> > selectDeselectGroup.add(selectAll);
> > selectDeselectGroup.add(deselectAll);
> >
> > (Note , I haven't implement any AjaxEventBehavior("onclick") to the 2
> > radios)
> >
> > Here comes the problem :
> > If the Child Panel is expanded , page reloading is OK.
> > But...
> > If the Child Panel is collapsed (folded /hidden) and do page reloading ,
> it
> > will throw exception :
> >
> >
> > Root cause:
> >
> > org.apache.wicket.WicketRuntimeException: The component(s) below failed
> to
> > render. A common problem is that you have added a component in code but
> > forgot to reference it in the markup (thus the component will never be
> > rendered).
> >
> > 1. [MarkupContainer [Component id = checkGroup, page =
> > destiny.wicket.astrology.HoroscopePage, path =
> > 3:selectPlanetsPanel:checkGroup.CheckGroup, isVisible = true, isVersioned
> =
> > false]]
> > 2. [MarkupContainer [Component id = selectDeselectGroup, page =
> > destiny.wicket.astrology.HoroscopePage, path =
> > 3:selectPlanetsPanel:selectDeselectGroup.RadioGroup, isVisible = true,
> > isVersioned = false]]
> > 3. [MarkupContainer [Component id = selectAll, page =
> > destiny.wicket.astrology.HoroscopePage, path =
> > 3:selectPlanetsPanel:selectDeselectGroup:selectAll.Radio, isVisible =
> true,
> > isVersioned = false]]
> > 4. [MarkupContainer [Component id = deselectAll, page =
> > destiny.wicket.astrology.HoroscopePage, path =
> > 3:selectPlanetsPanel:selectDeselectGroup:deselectAll.Radio, isVisible =
> > true, isVersioned = false]]
> >
> > at org.apache.wicket.Page.checkRendering(Page.java:1116)
> > at org.apache.wicket.Page.renderPage(Page.java:914)
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Inheritance inside a Container

Posted by Maurice Marrink <ma...@gmail.com>.
Sounds Like a bug.
Could you open up a jira request please and attach a quickstart
showing this behavior.

Thanks.

Maurice

On Fri, Jun 20, 2008 at 10:52 PM, smallufo <sm...@gmail.com> wrote:
> Hi , after a few try and errors , I can conclude how the problem occurs
>
> In the ChildPanel , if my code is as follows :
>
> <wicket:extend>
>  <span wicket:id="selectDeselectGroup">
>
>  </span>
>  blah...
> </wicket:extend>
>
> and code :
> RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
> add(selectDeselectGroup);
>
> Everything goes fine  , no matter the Child Panel is collapsed / expanded ,
> page-reloading is OK
>
> But , if I add something inside the CheckGroup :
>
> <wicket:extend>
>  <span wicket:id="selectDeselectGroup">
>    <input type="radio" wicket:id="selectAll"/>select all
>    <input type="radio" wicket:id="deselectAll"/>clean
>  </span>
> </wicket:extend>
>
> and code :
>
> RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
> add(selectDeselectGroup);
> Radio selectAll   = new Radio("selectAll"   , new Model(Boolean.FALSE));
> Radio deselectAll = new Radio("deselectAll" , new Model(Boolean.FALSE));
> selectDeselectGroup.add(selectAll);
> selectDeselectGroup.add(deselectAll);
>
> (Note , I haven't implement any AjaxEventBehavior("onclick") to the 2
> radios)
>
> Here comes the problem :
> If the Child Panel is expanded , page reloading is OK.
> But...
> If the Child Panel is collapsed (folded /hidden) and do page reloading , it
> will throw exception :
>
>
> Root cause:
>
> org.apache.wicket.WicketRuntimeException: The component(s) below failed to
> render. A common problem is that you have added a component in code but
> forgot to reference it in the markup (thus the component will never be
> rendered).
>
> 1. [MarkupContainer [Component id = checkGroup, page =
> destiny.wicket.astrology.HoroscopePage, path =
> 3:selectPlanetsPanel:checkGroup.CheckGroup, isVisible = true, isVersioned =
> false]]
> 2. [MarkupContainer [Component id = selectDeselectGroup, page =
> destiny.wicket.astrology.HoroscopePage, path =
> 3:selectPlanetsPanel:selectDeselectGroup.RadioGroup, isVisible = true,
> isVersioned = false]]
> 3. [MarkupContainer [Component id = selectAll, page =
> destiny.wicket.astrology.HoroscopePage, path =
> 3:selectPlanetsPanel:selectDeselectGroup:selectAll.Radio, isVisible = true,
> isVersioned = false]]
> 4. [MarkupContainer [Component id = deselectAll, page =
> destiny.wicket.astrology.HoroscopePage, path =
> 3:selectPlanetsPanel:selectDeselectGroup:deselectAll.Radio, isVisible =
> true, isVersioned = false]]
>
> at org.apache.wicket.Page.checkRendering(Page.java:1116)
> at org.apache.wicket.Page.renderPage(Page.java:914)
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Inheritance inside a Container

Posted by smallufo <sm...@gmail.com>.
Hi , after a few try and errors , I can conclude how the problem occurs

In the ChildPanel , if my code is as follows :

<wicket:extend>
  <span wicket:id="selectDeselectGroup">

  </span>
  blah...
</wicket:extend>

and code :
RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
add(selectDeselectGroup);

Everything goes fine  , no matter the Child Panel is collapsed / expanded ,
page-reloading is OK

But , if I add something inside the CheckGroup :

<wicket:extend>
  <span wicket:id="selectDeselectGroup">
    <input type="radio" wicket:id="selectAll"/>select all
    <input type="radio" wicket:id="deselectAll"/>clean
  </span>
</wicket:extend>

and code :

RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
add(selectDeselectGroup);
Radio selectAll   = new Radio("selectAll"   , new Model(Boolean.FALSE));
Radio deselectAll = new Radio("deselectAll" , new Model(Boolean.FALSE));
selectDeselectGroup.add(selectAll);
selectDeselectGroup.add(deselectAll);

(Note , I haven't implement any AjaxEventBehavior("onclick") to the 2
radios)

Here comes the problem :
If the Child Panel is expanded , page reloading is OK.
But...
If the Child Panel is collapsed (folded /hidden) and do page reloading , it
will throw exception :


Root cause:

org.apache.wicket.WicketRuntimeException: The component(s) below failed to
render. A common problem is that you have added a component in code but
forgot to reference it in the markup (thus the component will never be
rendered).

1. [MarkupContainer [Component id = checkGroup, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup.CheckGroup, isVisible = true, isVersioned =
false]]
2. [MarkupContainer [Component id = selectDeselectGroup, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:selectDeselectGroup.RadioGroup, isVisible = true,
isVersioned = false]]
3. [MarkupContainer [Component id = selectAll, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:selectDeselectGroup:selectAll.Radio, isVisible = true,
isVersioned = false]]
4. [MarkupContainer [Component id = deselectAll, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:selectDeselectGroup:deselectAll.Radio, isVisible =
true, isVersioned = false]]

at org.apache.wicket.Page.checkRendering(Page.java:1116)
at org.apache.wicket.Page.renderPage(Page.java:914)

Re: Inheritance inside a Container

Posted by smallufo <sm...@gmail.com>.
ok...here is the error message (very long)

summary :
abstrac class AbstractPullDownPanel (the Parent Panel , abstract ,
containing a title bar and a "content" WebMarkupContainer) , the full code
is shown in the previous post.

class SelectPlanetsPanel extends AbstractPullDownPanel : containing a
CheckGroup , can be expanded / collapsed by AbstractPullDownPanel



org.apache.wicket.WicketRuntimeException: The component(s) below failed to
render. A common problem is that you have added a component in code but
forgot to reference it in the markup (thus the component will never be
rendered).

1. [MarkupContainer [Component id = checkGroup, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup.CheckGroup, isVisible = true, isVersioned =
false]]
2. [MarkupContainer [Component id = list, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list.SelectStarsPanel2$1, isVisible = true,
isVersioned = false]]
3. [MarkupContainer [Component id = 0, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:0.ListItem, isVisible = true,
isVersioned = false]]
4. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:0:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
5. [Component id = name, page = destiny.wicket.astrology.HoroscopePage, path
= 3:selectPlanetsPanel:checkGroup:list:0:name.Label, isVisible = true,
isVersioned = false]
6. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:0:starIcon.Image, isVisible =
true, isVersioned = false]
7. [MarkupContainer [Component id = 1, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:1.ListItem, isVisible = true,
isVersioned = false]]
8. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:1:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
9. [Component id = name, page = destiny.wicket.astrology.HoroscopePage, path
= 3:selectPlanetsPanel:checkGroup:list:1:name.Label, isVisible = true,
isVersioned = false]
10. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:1:starIcon.Image, isVisible =
true, isVersioned = false]
11. [MarkupContainer [Component id = 2, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:2.ListItem, isVisible = true,
isVersioned = false]]
12. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:2:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
13. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:2:name.Label, isVisible = true,
isVersioned = false]
14. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:2:starIcon.Image, isVisible =
true, isVersioned = false]
15. [MarkupContainer [Component id = 3, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:3.ListItem, isVisible = true,
isVersioned = false]]
16. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:3:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
17. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:3:name.Label, isVisible = true,
isVersioned = false]
18. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:3:starIcon.Image, isVisible =
true, isVersioned = false]
19. [MarkupContainer [Component id = 4, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:4.ListItem, isVisible = true,
isVersioned = false]]
20. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:4:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
21. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:4:name.Label, isVisible = true,
isVersioned = false]
22. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:4:starIcon.Image, isVisible =
true, isVersioned = false]
23. [MarkupContainer [Component id = 5, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:5.ListItem, isVisible = true,
isVersioned = false]]
24. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:5:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
25. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:5:name.Label, isVisible = true,
isVersioned = false]
26. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:5:starIcon.Image, isVisible =
true, isVersioned = false]
27. [MarkupContainer [Component id = 6, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:6.ListItem, isVisible = true,
isVersioned = false]]
28. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:6:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
29. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:6:name.Label, isVisible = true,
isVersioned = false]
30. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:6:starIcon.Image, isVisible =
true, isVersioned = false]
31. [MarkupContainer [Component id = 7, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:7.ListItem, isVisible = true,
isVersioned = false]]
32. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:7:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
33. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:7:name.Label, isVisible = true,
isVersioned = false]
34. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:7:starIcon.Image, isVisible =
true, isVersioned = false]
35. [MarkupContainer [Component id = 8, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:8.ListItem, isVisible = true,
isVersioned = false]]
36. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:8:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
37. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:8:name.Label, isVisible = true,
isVersioned = false]
38. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:8:starIcon.Image, isVisible =
true, isVersioned = false]
39. [MarkupContainer [Component id = 9, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:9.ListItem, isVisible = true,
isVersioned = false]]
40. [MarkupContainer [Component id = check, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:list:9:check.PointShownCheckBox, isVisible =
true, isVersioned = false]]
41. [Component id = name, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:9:name.Label, isVisible = true,
isVersioned = false]
42. [Component id = starIcon, page = destiny.wicket.astrology.HoroscopePage,
path = 3:selectPlanetsPanel:checkGroup:list:9:starIcon.Image, isVisible =
true, isVersioned = false]
43. [MarkupContainer [Component id = selectDeselectGroup, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:selectDeselectGroup.RadioGroup, isVisible =
true, isVersioned = false]]
44. [MarkupContainer [Component id = selectAll, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:selectDeselectGroup:selectAll.Radio,
isVisible = true, isVersioned = false]]
45. [MarkupContainer [Component id = deselectAll, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup:selectDeselectGroup:deselectAll.Radio,
isVisible = true, isVersioned = false]]
46. [Component id = text, page = destiny.wicket.astrology.HoroscopePage,
path = 3:aspectConfigPanel:text.Label, isVisible = true, isVersioned = true]

        at org.apache.wicket.Page.checkRendering(Page.java:1116)
        at org.apache.wicket.Page.renderPage(Page.java:914)
        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:1172)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
        at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363)
        at
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
        at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
        at
com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
        at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
        at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
        at java.lang.Thread.run(Thread.java:619)



2008/6/20 Maurice Marrink <ma...@gmail.com>:

> Can you show us the stacktrace?
>
> Maurice
>
> On Thu, Jun 19, 2008 at 11:39 PM, smallufo <sm...@gmail.com> wrote:
> > I tried to pull up the "boolean defaultVisible" parameter to the
> ParentPanel
> > , but still the same error ....
> >
> > public abstract class AbstractPullDownPanel extends Panel
> > {
> >  private final WebMarkupContainer content;
> >
> >  public AbstractPullDownPanel(String id , String title , final boolean
> > defaultVisible)
> >  {
> >    super(id);
> >
> >    Label titleLabel = new Label("title" , title);
> >
> >    content = new WebMarkupContainer("content")
> >    {
> >      @Override
> >      public boolean isTransparentResolver()
> >      {
> >        return true;
> >      }
> >    };
> >
> >    content.setOutputMarkupPlaceholderTag(true);
> >    content.setVisible(defaultVisible);
> >    add(content);
> >
> >    final Label collapseExpandText = new Label("collapseExpandText");
> >    collapseExpandText.setOutputMarkupPlaceholderTag(true);
> >    if (content.isVisible())
> >      collapseExpandText.setModel(new StringResourceModel("collapse" ,
> this
> > , null));
> >    else
> >      collapseExpandText.setModel(new StringResourceModel("expand" , this
> ,
> > null));
> >
> >    Link collapseExpandLink = new AjaxFallbackLink("collapseExpandLink")
> >    {
> >      @Override
> >      public void onClick(AjaxRequestTarget target)
> >      {
> >        if (content.isVisible())
> >        {
> >          target.addComponent(content.setVisible(false));
> >          target.addComponent(collapseExpandText.setModel(new
> > StringResourceModel("expand" , this , null)));
> >
> >          //call template method
> >          invisible();
> >        }
> >        else
> >        {
> >          target.addComponent(content.setVisible(true));
> >          target.addComponent(collapseExpandText.setModel(new
> > StringResourceModel("collapse" , this , null)));
> >
> >          //call template method
> >          visible();
> >        }
> >      }
> >    };
> >    add(collapseExpandLink);
> >    collapseExpandLink.add(collapseExpandText);
> >    collapseExpandLink.add(titleLabel);
> >  }
> >
> >
> >
> >
> >
> > 2008/6/20 smallufo <sm...@gmail.com>:
> >
> >> Well , let me describe more detail....
> >> When the user enters the page , he can successfully show/hide the
> content
> >> (ChildPanel) without problems.
> >> The state is stored in wicket's session.
> >>
> >> If the ChildPanel is "open"(expand/show) , and he reloads the page ,
> >> everything works fine.
> >> BUT...
> >> If he "close" (collapse/hide) the ChildPanel , and reloads the page ,
> the
> >> runtimeException is thrown.
> >>
> >>
> >> I don't know how to solve this problem...
> >>
> >>
> >>
> >> 2008/6/20 smallufo <sm...@gmail.com>:
> >>
> >> Hi...
> >>>
> >>> I am using 1.3.3
> >>>
> >>> 2008/6/20 Maurice Marrink <ma...@gmail.com>:
> >>>
> >>> What wicket version are you on? There was a bug about this but is has
> >>>> long been fixed. https://issues.apache.org/jira/browse/WICKET-1095
> >>>>
> >>>> Maurice
> >>>>
> >>>> On Thu, Jun 19, 2008 at 9:40 PM, smallufo <sm...@gmail.com> wrote:
> >>>> > Hello ,
> >>>> > I had exactly the same problem , and solved by searching to this
> post.
> >>>> > Thanks a lot.
> >>>> >
> >>>> > BUT , today , I have another problem...
> >>>> >
> >>>> > Today , the ChildPanel can accept a new parameter : boolean
> >>>> defaultVisible
> >>>> > if true , the content will be shown;
> >>>> > if false , the content will be invisible , only the title bar is
> >>>> visible.
> >>>> > The title bar is defined in ParentPanel , containing a title label
> and
> >>>> a
> >>>> > "expand/collapse" ajax link (a toggle).
> >>>> >
> >>>> > Here comes the problem.
> >>>> > In the ChildPanel , if I write :
> >>>> > setVisible(defaultVisible);
> >>>> > and if the defaultVisible is false , the whole panel , including
> >>>> ParentPanel
> >>>> > (including title bar) will be invisible;
> >>>> > This makes users unable to make it re-appear.
> >>>> >
> >>>> > However , if I write code like this :
> >>>> > get("content").setVisible(defaultVisible);
> >>>> > ("content" is the WebMarkupContainer defined in ParentPanel
> returning
> >>>> > isTransparentResolver()  TRUE)
> >>>> >
> >>>> > It will throw WicketRuntimeException while
> >>>> > org.apache.wicket.Page.checkRendering
> >>>> > org.apache.wicket.WicketRuntimeException: The component(s) below
> failed
> >>>> to
> >>>> > render. A common problem is that you have added a component in code
> but
> >>>> > forgot to reference it in the markup (thus the component will never
> be
> >>>> > rendered).
> >>>> >
> >>>> > How to solve it ?
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> > 2008/4/6 Martijn Dashorst <ma...@gmail.com>:
> >>>> >
> >>>> >> You should do this:
> >>>> >>
> >>>> >> WMC wmc = new WMC("childContainer") {
> >>>> >>    @override boolean isTransparentResolver() { return true; }
> >>>> >> };
> >>>> >>
> >>>> >> This is not a bug. If you do add() in the subclass's constructor,
> you
> >>>> >> add to the page itself. Which is how the hierarchy is constructed.
> By
> >>>> >> telling the WMC that it is a transparent resolver, you tell it to
> look
> >>>> >> for children without attached markup in its siblings.
> >>>> >>
> >>>> >> Martijn
> >>>> >>
> >>>> >> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
> >>>> >> > Hi everyone,
> >>>> >> >  my first mail to the list, i hope this wasn`t answered million
> >>>> times
> >>>> >> > before, but the wicket users faq is empty so i couldn`t find it
> >>>> there ;)
> >>>> >> >
> >>>> >> >  I'm using wicket1.3 to create a generic panel with the option to
> >>>> hide
> >>>> >> > everything inside when clicking an ajax-button. While the actual
> >>>> >> > hiding&showing works fine I'm having trouble with inheritance.
> >>>> >> >  This example should show what I mean:
> >>>> >> >
> >>>> >> >  This is my generic super panel (no ajax stuff in it here to show
> >>>> the
> >>>> >> > essential problem). The idea is, that the childContainer is set
> to
> >>>> >> > Visible:false when the button is clicked. All of this should
> happen
> >>>> in
> >>>> >> the
> >>>> >> > super class, so i don't have to care about it in the child class:
> >>>> >> >
> >>>> >> >  public class testSuperPanel extends Panel {
> >>>> >> >    public testSuperPanel(String id) {
> >>>> >> >        super(id);
> >>>> >> >        add(new WebMarkupContainer("childContainer"));
> >>>> >> >    }
> >>>> >> >  }
> >>>> >> >
> >>>> >> >  The markup for testSuperPanel:
> >>>> >> >  <wicket:panel>
> >>>> >> >    <div wicket:id="childContainer">
> >>>> >> >        <wicket:child/>
> >>>> >> >    </div>
> >>>> >> >  </wicket:panel>
> >>>> >> >
> >>>> >> >  This is a sample child panel:
> >>>> >> >
> >>>> >> >  public class testChildPanel extends testSuperPanel {
> >>>> >> >    public testChildPanel(String id) {
> >>>> >> >        super(id);
> >>>> >> >        add(new Label("childLabel","Test!"));
> >>>> >> >    }
> >>>> >> >  }
> >>>> >> >
> >>>> >> >  and the Markup:
> >>>> >> >  <wicket:extend>
> >>>> >> >    <span wicket:id="childLabel"></span>
> >>>> >> >  </wicket:extend>
> >>>> >> >
> >>>> >> >  As you see, it should simply display "Test" inside a
> >>>> MarkupContainer
> >>>> >> (which
> >>>> >> > could be hidden from the superClass). When i try to display this
> >>>> Panel
> >>>> >> > however I get an Exception stating that no code is added for the
> >>>> Label
> >>>> >> > "childLabel"!
> >>>> >> >  This can be solved by adding the childLabel to the container in
> the
> >>>> >> > superClass, but thats obviously not the way it is meant to be:
> >>>> >> >
> >>>> >> >  public class testSuperPanel extends Panel {
> >>>> >> >    public testSuperPanel(String id) {
> >>>> >> >        super(id);
> >>>> >> >        WebMarkupContainer wmc = new
> >>>> >> > WebMarkupContainer("childContainer");
> >>>> >> >        wmc.add(new Label("childLabel","Test!"));
> >>>> >> >        add(wmc);
> >>>> >> >    }
> >>>> >> >  }
> >>>> >> >
> >>>> >> >  So, is this a wicket bug with inheritance inside containers or
> am I
> >>>> just
> >>>> >> > doing things the wrong way?
> >>>> >> >
> >>>> >> >  Thanks for your help!
> >>>> >> >  best regards, Oli
> >>>> >> >
> >>>> >> >
> >>>> ---------------------------------------------------------------------
> >>>> >> >  To unsubscribe, e-mail:
> >>>> >> > users-unsubscribe@wicket.apache.org
> >>>> >> >  For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >> >
> >>>> >> >
> >>>> >>
> >>>> >>
> >>>> >> --
> >>>> >> Buy Wicket in Action: http://manning.com/dashorst
> >>>> >> Apache Wicket 1.3.2 is released
> >>>> >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
> >>>> >>
> >>>> >>
> ---------------------------------------------------------------------
> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >>
> >>>> >>
> >>>> >
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>>
> >>>>
> >>>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Inheritance inside a Container

Posted by Maurice Marrink <ma...@gmail.com>.
Can you show us the stacktrace?

Maurice

On Thu, Jun 19, 2008 at 11:39 PM, smallufo <sm...@gmail.com> wrote:
> I tried to pull up the "boolean defaultVisible" parameter to the ParentPanel
> , but still the same error ....
>
> public abstract class AbstractPullDownPanel extends Panel
> {
>  private final WebMarkupContainer content;
>
>  public AbstractPullDownPanel(String id , String title , final boolean
> defaultVisible)
>  {
>    super(id);
>
>    Label titleLabel = new Label("title" , title);
>
>    content = new WebMarkupContainer("content")
>    {
>      @Override
>      public boolean isTransparentResolver()
>      {
>        return true;
>      }
>    };
>
>    content.setOutputMarkupPlaceholderTag(true);
>    content.setVisible(defaultVisible);
>    add(content);
>
>    final Label collapseExpandText = new Label("collapseExpandText");
>    collapseExpandText.setOutputMarkupPlaceholderTag(true);
>    if (content.isVisible())
>      collapseExpandText.setModel(new StringResourceModel("collapse" , this
> , null));
>    else
>      collapseExpandText.setModel(new StringResourceModel("expand" , this ,
> null));
>
>    Link collapseExpandLink = new AjaxFallbackLink("collapseExpandLink")
>    {
>      @Override
>      public void onClick(AjaxRequestTarget target)
>      {
>        if (content.isVisible())
>        {
>          target.addComponent(content.setVisible(false));
>          target.addComponent(collapseExpandText.setModel(new
> StringResourceModel("expand" , this , null)));
>
>          //call template method
>          invisible();
>        }
>        else
>        {
>          target.addComponent(content.setVisible(true));
>          target.addComponent(collapseExpandText.setModel(new
> StringResourceModel("collapse" , this , null)));
>
>          //call template method
>          visible();
>        }
>      }
>    };
>    add(collapseExpandLink);
>    collapseExpandLink.add(collapseExpandText);
>    collapseExpandLink.add(titleLabel);
>  }
>
>
>
>
>
> 2008/6/20 smallufo <sm...@gmail.com>:
>
>> Well , let me describe more detail....
>> When the user enters the page , he can successfully show/hide the content
>> (ChildPanel) without problems.
>> The state is stored in wicket's session.
>>
>> If the ChildPanel is "open"(expand/show) , and he reloads the page ,
>> everything works fine.
>> BUT...
>> If he "close" (collapse/hide) the ChildPanel , and reloads the page , the
>> runtimeException is thrown.
>>
>>
>> I don't know how to solve this problem...
>>
>>
>>
>> 2008/6/20 smallufo <sm...@gmail.com>:
>>
>> Hi...
>>>
>>> I am using 1.3.3
>>>
>>> 2008/6/20 Maurice Marrink <ma...@gmail.com>:
>>>
>>> What wicket version are you on? There was a bug about this but is has
>>>> long been fixed. https://issues.apache.org/jira/browse/WICKET-1095
>>>>
>>>> Maurice
>>>>
>>>> On Thu, Jun 19, 2008 at 9:40 PM, smallufo <sm...@gmail.com> wrote:
>>>> > Hello ,
>>>> > I had exactly the same problem , and solved by searching to this post.
>>>> > Thanks a lot.
>>>> >
>>>> > BUT , today , I have another problem...
>>>> >
>>>> > Today , the ChildPanel can accept a new parameter : boolean
>>>> defaultVisible
>>>> > if true , the content will be shown;
>>>> > if false , the content will be invisible , only the title bar is
>>>> visible.
>>>> > The title bar is defined in ParentPanel , containing a title label and
>>>> a
>>>> > "expand/collapse" ajax link (a toggle).
>>>> >
>>>> > Here comes the problem.
>>>> > In the ChildPanel , if I write :
>>>> > setVisible(defaultVisible);
>>>> > and if the defaultVisible is false , the whole panel , including
>>>> ParentPanel
>>>> > (including title bar) will be invisible;
>>>> > This makes users unable to make it re-appear.
>>>> >
>>>> > However , if I write code like this :
>>>> > get("content").setVisible(defaultVisible);
>>>> > ("content" is the WebMarkupContainer defined in ParentPanel returning
>>>> > isTransparentResolver()  TRUE)
>>>> >
>>>> > It will throw WicketRuntimeException while
>>>> > org.apache.wicket.Page.checkRendering
>>>> > org.apache.wicket.WicketRuntimeException: The component(s) below failed
>>>> to
>>>> > render. A common problem is that you have added a component in code but
>>>> > forgot to reference it in the markup (thus the component will never be
>>>> > rendered).
>>>> >
>>>> > How to solve it ?
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > 2008/4/6 Martijn Dashorst <ma...@gmail.com>:
>>>> >
>>>> >> You should do this:
>>>> >>
>>>> >> WMC wmc = new WMC("childContainer") {
>>>> >>    @override boolean isTransparentResolver() { return true; }
>>>> >> };
>>>> >>
>>>> >> This is not a bug. If you do add() in the subclass's constructor, you
>>>> >> add to the page itself. Which is how the hierarchy is constructed. By
>>>> >> telling the WMC that it is a transparent resolver, you tell it to look
>>>> >> for children without attached markup in its siblings.
>>>> >>
>>>> >> Martijn
>>>> >>
>>>> >> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
>>>> >> > Hi everyone,
>>>> >> >  my first mail to the list, i hope this wasn`t answered million
>>>> times
>>>> >> > before, but the wicket users faq is empty so i couldn`t find it
>>>> there ;)
>>>> >> >
>>>> >> >  I'm using wicket1.3 to create a generic panel with the option to
>>>> hide
>>>> >> > everything inside when clicking an ajax-button. While the actual
>>>> >> > hiding&showing works fine I'm having trouble with inheritance.
>>>> >> >  This example should show what I mean:
>>>> >> >
>>>> >> >  This is my generic super panel (no ajax stuff in it here to show
>>>> the
>>>> >> > essential problem). The idea is, that the childContainer is set to
>>>> >> > Visible:false when the button is clicked. All of this should happen
>>>> in
>>>> >> the
>>>> >> > super class, so i don't have to care about it in the child class:
>>>> >> >
>>>> >> >  public class testSuperPanel extends Panel {
>>>> >> >    public testSuperPanel(String id) {
>>>> >> >        super(id);
>>>> >> >        add(new WebMarkupContainer("childContainer"));
>>>> >> >    }
>>>> >> >  }
>>>> >> >
>>>> >> >  The markup for testSuperPanel:
>>>> >> >  <wicket:panel>
>>>> >> >    <div wicket:id="childContainer">
>>>> >> >        <wicket:child/>
>>>> >> >    </div>
>>>> >> >  </wicket:panel>
>>>> >> >
>>>> >> >  This is a sample child panel:
>>>> >> >
>>>> >> >  public class testChildPanel extends testSuperPanel {
>>>> >> >    public testChildPanel(String id) {
>>>> >> >        super(id);
>>>> >> >        add(new Label("childLabel","Test!"));
>>>> >> >    }
>>>> >> >  }
>>>> >> >
>>>> >> >  and the Markup:
>>>> >> >  <wicket:extend>
>>>> >> >    <span wicket:id="childLabel"></span>
>>>> >> >  </wicket:extend>
>>>> >> >
>>>> >> >  As you see, it should simply display "Test" inside a
>>>> MarkupContainer
>>>> >> (which
>>>> >> > could be hidden from the superClass). When i try to display this
>>>> Panel
>>>> >> > however I get an Exception stating that no code is added for the
>>>> Label
>>>> >> > "childLabel"!
>>>> >> >  This can be solved by adding the childLabel to the container in the
>>>> >> > superClass, but thats obviously not the way it is meant to be:
>>>> >> >
>>>> >> >  public class testSuperPanel extends Panel {
>>>> >> >    public testSuperPanel(String id) {
>>>> >> >        super(id);
>>>> >> >        WebMarkupContainer wmc = new
>>>> >> > WebMarkupContainer("childContainer");
>>>> >> >        wmc.add(new Label("childLabel","Test!"));
>>>> >> >        add(wmc);
>>>> >> >    }
>>>> >> >  }
>>>> >> >
>>>> >> >  So, is this a wicket bug with inheritance inside containers or am I
>>>> just
>>>> >> > doing things the wrong way?
>>>> >> >
>>>> >> >  Thanks for your help!
>>>> >> >  best regards, Oli
>>>> >> >
>>>> >> >
>>>> ---------------------------------------------------------------------
>>>> >> >  To unsubscribe, e-mail:
>>>> >> > users-unsubscribe@wicket.apache.org
>>>> >> >  For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >
>>>> >> >
>>>> >>
>>>> >>
>>>> >> --
>>>> >> Buy Wicket in Action: http://manning.com/dashorst
>>>> >> Apache Wicket 1.3.2 is released
>>>> >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
>>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >>
>>>> >>
>>>> >
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Inheritance inside a Container

Posted by smallufo <sm...@gmail.com>.
I tried to pull up the "boolean defaultVisible" parameter to the ParentPanel
, but still the same error ....

public abstract class AbstractPullDownPanel extends Panel
{
  private final WebMarkupContainer content;

  public AbstractPullDownPanel(String id , String title , final boolean
defaultVisible)
  {
    super(id);

    Label titleLabel = new Label("title" , title);

    content = new WebMarkupContainer("content")
    {
      @Override
      public boolean isTransparentResolver()
      {
        return true;
      }
    };

    content.setOutputMarkupPlaceholderTag(true);
    content.setVisible(defaultVisible);
    add(content);

    final Label collapseExpandText = new Label("collapseExpandText");
    collapseExpandText.setOutputMarkupPlaceholderTag(true);
    if (content.isVisible())
      collapseExpandText.setModel(new StringResourceModel("collapse" , this
, null));
    else
      collapseExpandText.setModel(new StringResourceModel("expand" , this ,
null));

    Link collapseExpandLink = new AjaxFallbackLink("collapseExpandLink")
    {
      @Override
      public void onClick(AjaxRequestTarget target)
      {
        if (content.isVisible())
        {
          target.addComponent(content.setVisible(false));
          target.addComponent(collapseExpandText.setModel(new
StringResourceModel("expand" , this , null)));

          //call template method
          invisible();
        }
        else
        {
          target.addComponent(content.setVisible(true));
          target.addComponent(collapseExpandText.setModel(new
StringResourceModel("collapse" , this , null)));

          //call template method
          visible();
        }
      }
    };
    add(collapseExpandLink);
    collapseExpandLink.add(collapseExpandText);
    collapseExpandLink.add(titleLabel);
  }





2008/6/20 smallufo <sm...@gmail.com>:

> Well , let me describe more detail....
> When the user enters the page , he can successfully show/hide the content
> (ChildPanel) without problems.
> The state is stored in wicket's session.
>
> If the ChildPanel is "open"(expand/show) , and he reloads the page ,
> everything works fine.
> BUT...
> If he "close" (collapse/hide) the ChildPanel , and reloads the page , the
> runtimeException is thrown.
>
>
> I don't know how to solve this problem...
>
>
>
> 2008/6/20 smallufo <sm...@gmail.com>:
>
> Hi...
>>
>> I am using 1.3.3
>>
>> 2008/6/20 Maurice Marrink <ma...@gmail.com>:
>>
>> What wicket version are you on? There was a bug about this but is has
>>> long been fixed. https://issues.apache.org/jira/browse/WICKET-1095
>>>
>>> Maurice
>>>
>>> On Thu, Jun 19, 2008 at 9:40 PM, smallufo <sm...@gmail.com> wrote:
>>> > Hello ,
>>> > I had exactly the same problem , and solved by searching to this post.
>>> > Thanks a lot.
>>> >
>>> > BUT , today , I have another problem...
>>> >
>>> > Today , the ChildPanel can accept a new parameter : boolean
>>> defaultVisible
>>> > if true , the content will be shown;
>>> > if false , the content will be invisible , only the title bar is
>>> visible.
>>> > The title bar is defined in ParentPanel , containing a title label and
>>> a
>>> > "expand/collapse" ajax link (a toggle).
>>> >
>>> > Here comes the problem.
>>> > In the ChildPanel , if I write :
>>> > setVisible(defaultVisible);
>>> > and if the defaultVisible is false , the whole panel , including
>>> ParentPanel
>>> > (including title bar) will be invisible;
>>> > This makes users unable to make it re-appear.
>>> >
>>> > However , if I write code like this :
>>> > get("content").setVisible(defaultVisible);
>>> > ("content" is the WebMarkupContainer defined in ParentPanel returning
>>> > isTransparentResolver()  TRUE)
>>> >
>>> > It will throw WicketRuntimeException while
>>> > org.apache.wicket.Page.checkRendering
>>> > org.apache.wicket.WicketRuntimeException: The component(s) below failed
>>> to
>>> > render. A common problem is that you have added a component in code but
>>> > forgot to reference it in the markup (thus the component will never be
>>> > rendered).
>>> >
>>> > How to solve it ?
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > 2008/4/6 Martijn Dashorst <ma...@gmail.com>:
>>> >
>>> >> You should do this:
>>> >>
>>> >> WMC wmc = new WMC("childContainer") {
>>> >>    @override boolean isTransparentResolver() { return true; }
>>> >> };
>>> >>
>>> >> This is not a bug. If you do add() in the subclass's constructor, you
>>> >> add to the page itself. Which is how the hierarchy is constructed. By
>>> >> telling the WMC that it is a transparent resolver, you tell it to look
>>> >> for children without attached markup in its siblings.
>>> >>
>>> >> Martijn
>>> >>
>>> >> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
>>> >> > Hi everyone,
>>> >> >  my first mail to the list, i hope this wasn`t answered million
>>> times
>>> >> > before, but the wicket users faq is empty so i couldn`t find it
>>> there ;)
>>> >> >
>>> >> >  I'm using wicket1.3 to create a generic panel with the option to
>>> hide
>>> >> > everything inside when clicking an ajax-button. While the actual
>>> >> > hiding&showing works fine I'm having trouble with inheritance.
>>> >> >  This example should show what I mean:
>>> >> >
>>> >> >  This is my generic super panel (no ajax stuff in it here to show
>>> the
>>> >> > essential problem). The idea is, that the childContainer is set to
>>> >> > Visible:false when the button is clicked. All of this should happen
>>> in
>>> >> the
>>> >> > super class, so i don't have to care about it in the child class:
>>> >> >
>>> >> >  public class testSuperPanel extends Panel {
>>> >> >    public testSuperPanel(String id) {
>>> >> >        super(id);
>>> >> >        add(new WebMarkupContainer("childContainer"));
>>> >> >    }
>>> >> >  }
>>> >> >
>>> >> >  The markup for testSuperPanel:
>>> >> >  <wicket:panel>
>>> >> >    <div wicket:id="childContainer">
>>> >> >        <wicket:child/>
>>> >> >    </div>
>>> >> >  </wicket:panel>
>>> >> >
>>> >> >  This is a sample child panel:
>>> >> >
>>> >> >  public class testChildPanel extends testSuperPanel {
>>> >> >    public testChildPanel(String id) {
>>> >> >        super(id);
>>> >> >        add(new Label("childLabel","Test!"));
>>> >> >    }
>>> >> >  }
>>> >> >
>>> >> >  and the Markup:
>>> >> >  <wicket:extend>
>>> >> >    <span wicket:id="childLabel"></span>
>>> >> >  </wicket:extend>
>>> >> >
>>> >> >  As you see, it should simply display "Test" inside a
>>> MarkupContainer
>>> >> (which
>>> >> > could be hidden from the superClass). When i try to display this
>>> Panel
>>> >> > however I get an Exception stating that no code is added for the
>>> Label
>>> >> > "childLabel"!
>>> >> >  This can be solved by adding the childLabel to the container in the
>>> >> > superClass, but thats obviously not the way it is meant to be:
>>> >> >
>>> >> >  public class testSuperPanel extends Panel {
>>> >> >    public testSuperPanel(String id) {
>>> >> >        super(id);
>>> >> >        WebMarkupContainer wmc = new
>>> >> > WebMarkupContainer("childContainer");
>>> >> >        wmc.add(new Label("childLabel","Test!"));
>>> >> >        add(wmc);
>>> >> >    }
>>> >> >  }
>>> >> >
>>> >> >  So, is this a wicket bug with inheritance inside containers or am I
>>> just
>>> >> > doing things the wrong way?
>>> >> >
>>> >> >  Thanks for your help!
>>> >> >  best regards, Oli
>>> >> >
>>> >> >
>>> ---------------------------------------------------------------------
>>> >> >  To unsubscribe, e-mail:
>>> >> > users-unsubscribe@wicket.apache.org
>>> >> >  For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >
>>> >> >
>>> >>
>>> >>
>>> >> --
>>> >> Buy Wicket in Action: http://manning.com/dashorst
>>> >> Apache Wicket 1.3.2 is released
>>> >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>> >>
>>> >>
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>

Re: Inheritance inside a Container

Posted by smallufo <sm...@gmail.com>.
Well , let me describe more detail....
When the user enters the page , he can successfully show/hide the content
(ChildPanel) without problems.
The state is stored in wicket's session.

If the ChildPanel is "open"(expand/show) , and he reloads the page ,
everything works fine.
BUT...
If he "close" (collapse/hide) the ChildPanel , and reloads the page , the
runtimeException is thrown.


I don't know how to solve this problem...



2008/6/20 smallufo <sm...@gmail.com>:

> Hi...
>
> I am using 1.3.3
>
> 2008/6/20 Maurice Marrink <ma...@gmail.com>:
>
> What wicket version are you on? There was a bug about this but is has
>> long been fixed. https://issues.apache.org/jira/browse/WICKET-1095
>>
>> Maurice
>>
>> On Thu, Jun 19, 2008 at 9:40 PM, smallufo <sm...@gmail.com> wrote:
>> > Hello ,
>> > I had exactly the same problem , and solved by searching to this post.
>> > Thanks a lot.
>> >
>> > BUT , today , I have another problem...
>> >
>> > Today , the ChildPanel can accept a new parameter : boolean
>> defaultVisible
>> > if true , the content will be shown;
>> > if false , the content will be invisible , only the title bar is
>> visible.
>> > The title bar is defined in ParentPanel , containing a title label and a
>> > "expand/collapse" ajax link (a toggle).
>> >
>> > Here comes the problem.
>> > In the ChildPanel , if I write :
>> > setVisible(defaultVisible);
>> > and if the defaultVisible is false , the whole panel , including
>> ParentPanel
>> > (including title bar) will be invisible;
>> > This makes users unable to make it re-appear.
>> >
>> > However , if I write code like this :
>> > get("content").setVisible(defaultVisible);
>> > ("content" is the WebMarkupContainer defined in ParentPanel returning
>> > isTransparentResolver()  TRUE)
>> >
>> > It will throw WicketRuntimeException while
>> > org.apache.wicket.Page.checkRendering
>> > org.apache.wicket.WicketRuntimeException: The component(s) below failed
>> to
>> > render. A common problem is that you have added a component in code but
>> > forgot to reference it in the markup (thus the component will never be
>> > rendered).
>> >
>> > How to solve it ?
>> >
>> >
>> >
>> >
>> >
>> >
>> > 2008/4/6 Martijn Dashorst <ma...@gmail.com>:
>> >
>> >> You should do this:
>> >>
>> >> WMC wmc = new WMC("childContainer") {
>> >>    @override boolean isTransparentResolver() { return true; }
>> >> };
>> >>
>> >> This is not a bug. If you do add() in the subclass's constructor, you
>> >> add to the page itself. Which is how the hierarchy is constructed. By
>> >> telling the WMC that it is a transparent resolver, you tell it to look
>> >> for children without attached markup in its siblings.
>> >>
>> >> Martijn
>> >>
>> >> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
>> >> > Hi everyone,
>> >> >  my first mail to the list, i hope this wasn`t answered million times
>> >> > before, but the wicket users faq is empty so i couldn`t find it there
>> ;)
>> >> >
>> >> >  I'm using wicket1.3 to create a generic panel with the option to
>> hide
>> >> > everything inside when clicking an ajax-button. While the actual
>> >> > hiding&showing works fine I'm having trouble with inheritance.
>> >> >  This example should show what I mean:
>> >> >
>> >> >  This is my generic super panel (no ajax stuff in it here to show the
>> >> > essential problem). The idea is, that the childContainer is set to
>> >> > Visible:false when the button is clicked. All of this should happen
>> in
>> >> the
>> >> > super class, so i don't have to care about it in the child class:
>> >> >
>> >> >  public class testSuperPanel extends Panel {
>> >> >    public testSuperPanel(String id) {
>> >> >        super(id);
>> >> >        add(new WebMarkupContainer("childContainer"));
>> >> >    }
>> >> >  }
>> >> >
>> >> >  The markup for testSuperPanel:
>> >> >  <wicket:panel>
>> >> >    <div wicket:id="childContainer">
>> >> >        <wicket:child/>
>> >> >    </div>
>> >> >  </wicket:panel>
>> >> >
>> >> >  This is a sample child panel:
>> >> >
>> >> >  public class testChildPanel extends testSuperPanel {
>> >> >    public testChildPanel(String id) {
>> >> >        super(id);
>> >> >        add(new Label("childLabel","Test!"));
>> >> >    }
>> >> >  }
>> >> >
>> >> >  and the Markup:
>> >> >  <wicket:extend>
>> >> >    <span wicket:id="childLabel"></span>
>> >> >  </wicket:extend>
>> >> >
>> >> >  As you see, it should simply display "Test" inside a MarkupContainer
>> >> (which
>> >> > could be hidden from the superClass). When i try to display this
>> Panel
>> >> > however I get an Exception stating that no code is added for the
>> Label
>> >> > "childLabel"!
>> >> >  This can be solved by adding the childLabel to the container in the
>> >> > superClass, but thats obviously not the way it is meant to be:
>> >> >
>> >> >  public class testSuperPanel extends Panel {
>> >> >    public testSuperPanel(String id) {
>> >> >        super(id);
>> >> >        WebMarkupContainer wmc = new
>> >> > WebMarkupContainer("childContainer");
>> >> >        wmc.add(new Label("childLabel","Test!"));
>> >> >        add(wmc);
>> >> >    }
>> >> >  }
>> >> >
>> >> >  So, is this a wicket bug with inheritance inside containers or am I
>> just
>> >> > doing things the wrong way?
>> >> >
>> >> >  Thanks for your help!
>> >> >  best regards, Oli
>> >> >
>> >> > ---------------------------------------------------------------------
>> >> >  To unsubscribe, e-mail:
>> >> > users-unsubscribe@wicket.apache.org
>> >> >  For additional commands, e-mail: users-help@wicket.apache.org
>> >> >
>> >> >
>> >>
>> >>
>> >> --
>> >> Buy Wicket in Action: http://manning.com/dashorst
>> >> Apache Wicket 1.3.2 is released
>> >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >>
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

Re: Inheritance inside a Container

Posted by smallufo <sm...@gmail.com>.
Hi...

I am using 1.3.3

2008/6/20 Maurice Marrink <ma...@gmail.com>:

> What wicket version are you on? There was a bug about this but is has
> long been fixed. https://issues.apache.org/jira/browse/WICKET-1095
>
> Maurice
>
> On Thu, Jun 19, 2008 at 9:40 PM, smallufo <sm...@gmail.com> wrote:
> > Hello ,
> > I had exactly the same problem , and solved by searching to this post.
> > Thanks a lot.
> >
> > BUT , today , I have another problem...
> >
> > Today , the ChildPanel can accept a new parameter : boolean
> defaultVisible
> > if true , the content will be shown;
> > if false , the content will be invisible , only the title bar is visible.
> > The title bar is defined in ParentPanel , containing a title label and a
> > "expand/collapse" ajax link (a toggle).
> >
> > Here comes the problem.
> > In the ChildPanel , if I write :
> > setVisible(defaultVisible);
> > and if the defaultVisible is false , the whole panel , including
> ParentPanel
> > (including title bar) will be invisible;
> > This makes users unable to make it re-appear.
> >
> > However , if I write code like this :
> > get("content").setVisible(defaultVisible);
> > ("content" is the WebMarkupContainer defined in ParentPanel returning
> > isTransparentResolver()  TRUE)
> >
> > It will throw WicketRuntimeException while
> > org.apache.wicket.Page.checkRendering
> > org.apache.wicket.WicketRuntimeException: The component(s) below failed
> to
> > render. A common problem is that you have added a component in code but
> > forgot to reference it in the markup (thus the component will never be
> > rendered).
> >
> > How to solve it ?
> >
> >
> >
> >
> >
> >
> > 2008/4/6 Martijn Dashorst <ma...@gmail.com>:
> >
> >> You should do this:
> >>
> >> WMC wmc = new WMC("childContainer") {
> >>    @override boolean isTransparentResolver() { return true; }
> >> };
> >>
> >> This is not a bug. If you do add() in the subclass's constructor, you
> >> add to the page itself. Which is how the hierarchy is constructed. By
> >> telling the WMC that it is a transparent resolver, you tell it to look
> >> for children without attached markup in its siblings.
> >>
> >> Martijn
> >>
> >> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
> >> > Hi everyone,
> >> >  my first mail to the list, i hope this wasn`t answered million times
> >> > before, but the wicket users faq is empty so i couldn`t find it there
> ;)
> >> >
> >> >  I'm using wicket1.3 to create a generic panel with the option to hide
> >> > everything inside when clicking an ajax-button. While the actual
> >> > hiding&showing works fine I'm having trouble with inheritance.
> >> >  This example should show what I mean:
> >> >
> >> >  This is my generic super panel (no ajax stuff in it here to show the
> >> > essential problem). The idea is, that the childContainer is set to
> >> > Visible:false when the button is clicked. All of this should happen in
> >> the
> >> > super class, so i don't have to care about it in the child class:
> >> >
> >> >  public class testSuperPanel extends Panel {
> >> >    public testSuperPanel(String id) {
> >> >        super(id);
> >> >        add(new WebMarkupContainer("childContainer"));
> >> >    }
> >> >  }
> >> >
> >> >  The markup for testSuperPanel:
> >> >  <wicket:panel>
> >> >    <div wicket:id="childContainer">
> >> >        <wicket:child/>
> >> >    </div>
> >> >  </wicket:panel>
> >> >
> >> >  This is a sample child panel:
> >> >
> >> >  public class testChildPanel extends testSuperPanel {
> >> >    public testChildPanel(String id) {
> >> >        super(id);
> >> >        add(new Label("childLabel","Test!"));
> >> >    }
> >> >  }
> >> >
> >> >  and the Markup:
> >> >  <wicket:extend>
> >> >    <span wicket:id="childLabel"></span>
> >> >  </wicket:extend>
> >> >
> >> >  As you see, it should simply display "Test" inside a MarkupContainer
> >> (which
> >> > could be hidden from the superClass). When i try to display this Panel
> >> > however I get an Exception stating that no code is added for the Label
> >> > "childLabel"!
> >> >  This can be solved by adding the childLabel to the container in the
> >> > superClass, but thats obviously not the way it is meant to be:
> >> >
> >> >  public class testSuperPanel extends Panel {
> >> >    public testSuperPanel(String id) {
> >> >        super(id);
> >> >        WebMarkupContainer wmc = new
> >> > WebMarkupContainer("childContainer");
> >> >        wmc.add(new Label("childLabel","Test!"));
> >> >        add(wmc);
> >> >    }
> >> >  }
> >> >
> >> >  So, is this a wicket bug with inheritance inside containers or am I
> just
> >> > doing things the wrong way?
> >> >
> >> >  Thanks for your help!
> >> >  best regards, Oli
> >> >
> >> > ---------------------------------------------------------------------
> >> >  To unsubscribe, e-mail:
> >> > users-unsubscribe@wicket.apache.org
> >> >  For additional commands, e-mail: users-help@wicket.apache.org
> >> >
> >> >
> >>
> >>
> >> --
> >> Buy Wicket in Action: http://manning.com/dashorst
> >> Apache Wicket 1.3.2 is released
> >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Inheritance inside a Container

Posted by Maurice Marrink <ma...@gmail.com>.
What wicket version are you on? There was a bug about this but is has
long been fixed. https://issues.apache.org/jira/browse/WICKET-1095

Maurice

On Thu, Jun 19, 2008 at 9:40 PM, smallufo <sm...@gmail.com> wrote:
> Hello ,
> I had exactly the same problem , and solved by searching to this post.
> Thanks a lot.
>
> BUT , today , I have another problem...
>
> Today , the ChildPanel can accept a new parameter : boolean defaultVisible
> if true , the content will be shown;
> if false , the content will be invisible , only the title bar is visible.
> The title bar is defined in ParentPanel , containing a title label and a
> "expand/collapse" ajax link (a toggle).
>
> Here comes the problem.
> In the ChildPanel , if I write :
> setVisible(defaultVisible);
> and if the defaultVisible is false , the whole panel , including ParentPanel
> (including title bar) will be invisible;
> This makes users unable to make it re-appear.
>
> However , if I write code like this :
> get("content").setVisible(defaultVisible);
> ("content" is the WebMarkupContainer defined in ParentPanel returning
> isTransparentResolver()  TRUE)
>
> It will throw WicketRuntimeException while
> org.apache.wicket.Page.checkRendering
> org.apache.wicket.WicketRuntimeException: The component(s) below failed to
> render. A common problem is that you have added a component in code but
> forgot to reference it in the markup (thus the component will never be
> rendered).
>
> How to solve it ?
>
>
>
>
>
>
> 2008/4/6 Martijn Dashorst <ma...@gmail.com>:
>
>> You should do this:
>>
>> WMC wmc = new WMC("childContainer") {
>>    @override boolean isTransparentResolver() { return true; }
>> };
>>
>> This is not a bug. If you do add() in the subclass's constructor, you
>> add to the page itself. Which is how the hierarchy is constructed. By
>> telling the WMC that it is a transparent resolver, you tell it to look
>> for children without attached markup in its siblings.
>>
>> Martijn
>>
>> On 4/5/08, Oliver Sawade <de...@gmx.de> wrote:
>> > Hi everyone,
>> >  my first mail to the list, i hope this wasn`t answered million times
>> > before, but the wicket users faq is empty so i couldn`t find it there ;)
>> >
>> >  I'm using wicket1.3 to create a generic panel with the option to hide
>> > everything inside when clicking an ajax-button. While the actual
>> > hiding&showing works fine I'm having trouble with inheritance.
>> >  This example should show what I mean:
>> >
>> >  This is my generic super panel (no ajax stuff in it here to show the
>> > essential problem). The idea is, that the childContainer is set to
>> > Visible:false when the button is clicked. All of this should happen in
>> the
>> > super class, so i don't have to care about it in the child class:
>> >
>> >  public class testSuperPanel extends Panel {
>> >    public testSuperPanel(String id) {
>> >        super(id);
>> >        add(new WebMarkupContainer("childContainer"));
>> >    }
>> >  }
>> >
>> >  The markup for testSuperPanel:
>> >  <wicket:panel>
>> >    <div wicket:id="childContainer">
>> >        <wicket:child/>
>> >    </div>
>> >  </wicket:panel>
>> >
>> >  This is a sample child panel:
>> >
>> >  public class testChildPanel extends testSuperPanel {
>> >    public testChildPanel(String id) {
>> >        super(id);
>> >        add(new Label("childLabel","Test!"));
>> >    }
>> >  }
>> >
>> >  and the Markup:
>> >  <wicket:extend>
>> >    <span wicket:id="childLabel"></span>
>> >  </wicket:extend>
>> >
>> >  As you see, it should simply display "Test" inside a MarkupContainer
>> (which
>> > could be hidden from the superClass). When i try to display this Panel
>> > however I get an Exception stating that no code is added for the Label
>> > "childLabel"!
>> >  This can be solved by adding the childLabel to the container in the
>> > superClass, but thats obviously not the way it is meant to be:
>> >
>> >  public class testSuperPanel extends Panel {
>> >    public testSuperPanel(String id) {
>> >        super(id);
>> >        WebMarkupContainer wmc = new
>> > WebMarkupContainer("childContainer");
>> >        wmc.add(new Label("childLabel","Test!"));
>> >        add(wmc);
>> >    }
>> >  }
>> >
>> >  So, is this a wicket bug with inheritance inside containers or am I just
>> > doing things the wrong way?
>> >
>> >  Thanks for your help!
>> >  best regards, Oli
>> >
>> > ---------------------------------------------------------------------
>> >  To unsubscribe, e-mail:
>> > users-unsubscribe@wicket.apache.org
>> >  For additional commands, e-mail: users-help@wicket.apache.org
>> >
>> >
>>
>>
>> --
>> Buy Wicket in Action: http://manning.com/dashorst
>> Apache Wicket 1.3.2 is released
>> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.2
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org