Hi Uwe,

what is not clear is: are the detail info panels different for each of the 5
customer infos? Then you really would have 15 different html markups for the
5x3 panels? Or are the 3 panel kinds (special, detail, or additiional)
always the same, but appear (or not) for the different customer info types?
If you have 15 different html markups, you'll have to implement 15 different
panels. What's the problem with that? Chuck it in it's own package and
forget it.

Thomas

On Wed, Feb 11, 2009 at 9:37 AM, uwe janner <[email protected]> wrote:

> 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]
> >
> >
>



-- 
Thomas Mäder
Wicket & Eclipse Consulting
www.devotek-it.ch

Reply via email to