Yeah, but the other way are a bit cleaner java code wise... And I Scott where heading into modifying a lot of stuff that would bring an over complicated solution to work..

So the trickery would be to edit and a whole bunch of other stuff(probably)IMarkupResourceStreamProvider, instead of facilitating the simple features of wicket.. :)

Jeremy Thomerson wrote:
You can also do exactly as you mentioned....

In your base page, have a repeating view (i.e. ListView) that simply loops
over a "List<Component> childPanels"..... Then your method
addToRepeater(Component component) will add to that list.

Should work exactly as you described.  What trickery is needed?  I guess I
miss that part.

On Wed, Dec 10, 2008 at 5:20 PM, Nino Saturnino Martinez Vazquez Wael <
[EMAIL PROTECTED]> wrote:

Scott,

Think inheritance :)

Just write a super which has abstract methods that returns components for
c1..c4() and thats it.. no need for trickery with
IMarkupResourceStreamProvider ...

Should I elaborate more?

You could also take a look at the wicketstuff accordion thing, it does
something along these lines[1]...


1=
http://wicketstuff.org/confluence/display/STUFFWIKI/wicket-contrib-accordion

regards


smackie604 wrote:

Hi,

My team has adopted wicket as it's web framework and we have been busy
creating a lot of interesting Panels to build pages for our product.  It
is
turning out that most of the time all the components on the page are
Panels
and we end up with a situation like this:

MyPage.java
--------------
public class MyPage extends BasePage
{
 MyPage()
 {
   add(SomePanel("c1"));
   add(SomePanel("c2"));
   add(SomePanel("c3"));
   add(SomePanel("c4"));
 }
}

MyPage.html
---------------
<wicket:extend>
 <wicket:container wicket:id="c1"/>
 <wicket:container wicket:id="c2"/>
 <wicket:container wicket:id="c3"/>
 <wicket:container wicket:id="c4"/>
</wicket:extend>

It would be nice if we didn't have to write html files for pages in these
situations and instead just do something like this:

MyPage.java
--------------
public class MyPage extends BasePage
{
 MyPage()
 {
   addToRepeater(SomePanel("c1"));
   addToRepeater(SomePanel("c2"));
   addToRepeater(SomePanel("c3"));
   addToRepeater(SomePanel("c4"));
 }
}

Where BasePage will have a method called addToRepeater which just adds the
component to the repeater.
I see we could do some trickery by implementing
IMarkupResourceStreamProvider on the BasePage to force the template of
it's
child classes to always use BasePage.html.  I'm not sure this is the best
way of doing this, does anyone have any comments on using this approach?

Thanks,

Scott


--
-Wicket for love

Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
-Wicket for love

Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to