then simply change Panel to Fragment, and keep the entire html in one place.

-igor

On Wed, Feb 11, 2009 at 12:37 AM, uwe janner <ujan...@googlemail.com> 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 <igor.vaynb...@gmail.com>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 <ujan...@googlemail.com>
>> 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: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

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

Reply via email to