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