On 3/5/08, Nino Saturnino Martinez Vazquez Wael <[EMAIL PROTECTED]> wrote:
> Answer below:
>
>
>     James Carman Wrote:
>
>     Couldn't you use a VelocityPanel to generate your markup and have it
>     parse the markup after it's generated to avoid the whole "need to use
>     the right markup ids" part? I was thinking about doing something like
>     this for generating dynamic editor forms (a la Trails) for objects,
>     since Wicket doesn't like you putting TextFields on <spans> (you must
>     use an <input> tag). I was going to have a Velocity script that
>     decides what type of tag to spit out based on the type of component in
>     the list.
>
>
> What I found simple, which I perhaps did not explain clearly.. Where to only 
> accept basePanels in forexample addMenu method, that way a base panel would 
> look something like this:
>
>
>
>  public class BasePanelItem extends Panel {
>
>         public final static String ITEM_ID = "item";
>
>         public AccordionPanelItem() {
>                 super(ITEM_ID);
>         }
>
>  Now we have the id fixed...
>
>  Then the user only need add what ever user wants when user extends
>  basePanelItem.. So this solves that too... And the problem with
>  attaching to wrong tags are solved too... There might be some overhead
>  because each time you want todo something special you need to create a
>  panel, but I think it's worth it..
>
>  PS, youve seen the web beans project right?
>  http://wicketwebbeans.sourceforge.net/
>

Yes, I've seen WWB.  But, I'm a "roll your own" kind of guy.
Actually, I'm going through this experiment to help me learn Wicket.
I was part of the Trails team and I was wondering how we'd do the same
thing in Wicket.

>
>
>  regards Nino
>
>
>
>  Nino Saturnino Martinez Vazquez Wael wrote:
>  > Sure there a dozens of ways todo this, mine is just one of them. Im
>  > starting a new thread since it'll be more exposed then.
>  >
>  > The idea is following:
>  >
>  > Parent:
>  >
>  > public class BasePage extends WebPage {
>  >
>  >   protected final String LINK_LABEL_ID = "linkText";
>  >   protected final String LINK_ID = "link";
>  >
>  >   protected final String FOOTER_ID = "item";
>  >   protected final String HEADER_ID = "item";
>  >
>  >   protected List<WebMarkupContainer> generalAccordionItem = new
>  > ArrayList<WebMarkupContainer>();
>  >
>  >   protected List<WebMarkupContainer> footer = new
>  > ArrayList<WebMarkupContainer>();
>  >     protected List<WebMarkupContainer> header = new
>  > ArrayList<WebMarkupContainer>();
>  >
>  >   private AccordionPanel accordionPanel;
>  >
>  >   /**
>  >    * Constructor that is invoked when page is invoked without a session.
>  >    *
>  >    * @param parameters
>  >    *            Page parameters
>  >    */
>  >   public BasePage() {
>  >       accordionPanel = new AccordionPanel("accordionMenu");
>  >       add(accordionPanel);
>  >
>  >       add(new ListView("footerContent", footer) {
>  >           @Override
>  >           protected void populateItem(ListItem item) {
>  >               WebMarkupContainer webMarkupContainer =
>  > (WebMarkupContainer) item
>  >                       .getModelObject();
>  >               item.add(webMarkupContainer);
>  >
>  >           }
>  >       });
>  >       add(new ListView("headerContent", header) {
>  >           @Override
>  >           protected void populateItem(ListItem item) {
>  >               WebMarkupContainer webMarkupContainer =
>  > (WebMarkupContainer) item
>  >                       .getModelObject();
>  >               item.add(webMarkupContainer);
>  >
>  >           }
>  >       });
>  >
>  > }
>  >   protected void addMenu(AccordionPanelItem accordionPanelItem) {
>  >       accordionPanel.addMenu(accordionPanelItem);
>  >   };
>  >
>  >   protected void addFooter(WebMarkupContainer webMarkupContainer) {
>  >       footer.add(webMarkupContainer);
>  >   };
>  >   protected void addHeader(WebMarkupContainer webMarkupContainer) {
>  >       header.add(webMarkupContainer);
>  >   };
>  >
>  > Subs/Children then calls the methods... Problem with this technique is
>  > that you need to use the right markup id's.. To make sure they are
>  > always set, and giving full control to the child/sub on what to add,
>  > I'd suggest that you create a BasePanel which encapsules the id, and
>  > then required that instead of a markupcontainer, that way subs/child
>  > only need to have panels that extend the basepanel...
>  >
>  > But it depends on your needs, mine weren't that tricky..
>  >
>  >
>  > regards Nino
>  >
>
>  --
>  -Wicket for love
>  -Jme for fun
>
>  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]
>
>

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

Reply via email to