thx igor!

but i still cant see how i can define the subPanels.

in facelets, in the parent i would have written:
<ui:include name="detailInfo"/> <otherHTML/> <ui:include
name="specialInfo"/> <otherHTML/> <ui:include name="additionalInfo"/>

then there would be 5 different childs, each one defining the 3
html-snippets:
<ui:define name="detailInfo><htmlStuff for detailInfo></ui:define>
<ui:define name="aditionalInfo><htmlStuff for additionalInfo></ui:define>
.....

that means, the parent knows, somebody of his children has defined a snippet
for "detailInfo", and this will be inserted at the <ui:include>
and so the three snippets can stay within the same file, e.g. in a
"SimpleCustomerDetails.xhtml"

and in wicket?

i see how i would construct 3 different panels ( newpanel1,2 and 3 in your
example) within the child class extending parentpanel - but every panel i
create in the overwritten methods needs its own html file, doesnt it?
that means, for one of the 5 types of customers i would have to write 3
panels, one for each of the 3 parts:
SimpleCustomerDetailInfoPanel.html, SimpleCustomerSpecialInfoPanel.html,
SimpleCustomerAdditionalInfoPanel.html,
then 3 for VipCustomerDetailInfoPanel.html, ....and so on, ending up with 15
different html files.

i still dont see the way how i can put e.g.
SimpleCustomerDetailInfoPanel.html, SimpleCustomerSpecialInfoPanel.html and
SimpleCustomerAdditionalInfoPanel.html into one html file (as i can do it
with facelets above), thereby reducing the nr of html files to 5. the 3
parts belong together.

thx4anyhint, uwe!



On Wed, Feb 11, 2009 at 2:34 AM, Igor Vaynberg <[email protected]>wrote:

> class abstract parentpanel extends panel {
>  private panel panel1, panel2, panel3;
>
>  protected abstract panel newpanel1(string id, imodel model);
>  protected abstract panel newpanel2(string id, imodel model);
>  protected abstract panel newpanel3(string id, imodel model);
>
>  protected void onbeforerender() {
>        if (panel1==null) {
>          add(panel1=newpanel1("p1", getdefaultmodel());
>          add(panel2=newpanel1("p2", getdefaultmodel());
>          add(panel3=newpanel1("p3", getdefaultmodel());
>       }
>      super.onbeforerender();
>   }
> }
>
> -igor
>
> On Tue, Feb 10, 2009 at 4:46 PM, uwe janner <[email protected]>
> wrote:
> > dear wicketeers,
> >
> > i'm facing a problem with page composition where i cant find an elegant
> > solution; i hope i can explain it comprehensible:
> >
> > i have a panel named CustomerInfo.
> >
> > there are 5 types of customers in the application.
> >
> > most of the CustomerInfo.html is the same for all types of customers -
> > except three div's:
> > DetailInfo, SpecialInfo and AdditionalInfo
> >
> > these two div's contain different html and different components for each
> > type of customer;
> >
> > one way would be to create 15 different panels (DetailInfoCustomerType1,
> > DetailInfoCustomerType2, DetailInfoCustomerType3, ....,
> > SpecialInfoCustomerType1, .....)
> > then, in CustomerInfo-panel i would include the right 3 panels depending
> on
> > the customer type, e.g. (DetailInfoCustomerType1,
> SpecialInfoCustomerType1,
> > AdditionalInfoCustomerType1);
> >
> > ok, its no good idea to have 15 separate panels, i want to group the 3
> > html-snippets together (Detail, Special, Additional)
> >
> > how can i achieve this? as i understood, neither panels, nor fragments
> nor
> > borders can be used for this.
> > how could a parent container ( "CustomerInfo" ) fill 3 different areas
> (the
> > 3 div's) with 3 different fragments of a child (e.g.
> > DetailInfoCustomerType2, SpecialInfoCustomerType2,
> > AdditionalInfoCustomerType2)?
> >
> > if the 3 different areas were contiguous/adjacent i could use simple page
> > inheritance, bc then the parent container pulls out the whole child's
> > content with <wicket:child/> .
> >
> > in my case i needed sth like <wicket:child id="detailInfo"/>
> .........<much
> > html/>...<wicket:child id="specialInfo"/> .........<much
> > html/>...<wicket:child id="additionalInfo"/> .........
> > where with <wicket:child id="xxx"/> the parent would only include the
> part
> > of the child with wicket:id "xxx"
> >
> > thxinadvance,uwe!
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to