James Carman wrote:
On 3/5/08, Nino Saturnino Martinez Vazquez Wael <[EMAIL PROTECTED]> 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...


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.

i'll reply in the other thread...
 But it depends on your needs, mine weren't that tricky..


 regards Nino


 Jonathan Locke wrote:
 > could you share this technique?  i think this might be a good idea.
 >
 >
 > Nino.Martinez wrote:
 >
 >> On the other hand, I've also done something with listviews.. Allowing
 >> sub pages adding markup items to menus etc.... Using the listviews as
 >> place holders...
 >>
 >> Kaspar Fischer wrote:
 >>
 >>> Ah, 'course! Should have thought of it, that's an option they mention
 >>> in "Wicket in Action".
 >>>
 >>> However, Sebastiaan's solution can be reused in places where the markup
 >>> you have to change is not in <head>. -- Good to know.
 >>>
 >>> On 04.03.2008, at 15:27, richardwilko wrote:
 >>>
 >>>
 >>>> The way I do it is; dont specify a title in your base page then just
 >>>> add the
 >>>> title in the subpage:
 >>>>
 >>>> base page.html
 >>>> <html>
 >>>> <!-- anything shared in all the pages eg a base.css file -->
 >>>> <head>
 >>>> </head>
 >>>> <body>
 >>>>    <wicket:child/>
 >>>> </body>
 >>>> </html>
 >>>>
 >>>> subpage.html:
 >>>>
 >>>> <wicket:head>
 >>>>     <title>hard code or use wicket label to add this</title>
 >>>> </wicket:head>
 >>>> <wicket:extend>
 >>>>       <!-- anything ... -->
 >>>> </wicket:extend>
 >>>>
 >>>> subpage.java
 >>>>
 >>>> Richard
 >>>>
 >>>>
 >>>>
 >>>> hbf wrote:
 >>>>
 >>>>> I am using markup inheritance (<wicket:child> and <wicket:extend>)
 >>>>> and need to set the
 >>>>> page title from my subpage. I currently add a label in the base class
 >>>>> (BasePage.java)
 >>>>> and make it use an abstract method getTitle(), which is overridden in
 >>>>> the subclass
 >>>>> (SubPage.java). Has anybody found a better way?
 >>>>>
 >>>>> Here's my solution:
 >>>>>
 >>>>> <!-- BasePage.html -->
 >>>>> <html>
 >>>>> <head>
 >>>>>    <title wicket:id="title">[Page title]</title>
 >>>>> </head>
 >>>>> <body>
 >>>>>    <wicket:child/>
 >>>>> </body>
 >>>>> </html>
 >>>>>
 >>>>> <!-- SubPage.html -->
 >>>>> <wicket:extend>
 >>>>>    <!-- anything ... -->
 >>>>> </wicket:extend>
 >>>>>
 >>>>>
 >>>>> public abstract class BasePage extends WebPage
 >>>>> {
 >>>>>    // ...
 >>>>>    public BasePage(final PageParameters parameters)
 >>>>>    {
 >>>>>      add(new Label("title", new PropertyModel(this, "title")));
 >>>>>    }
 >>>>>    public abstract String getTitle();
 >>>>> }
 >>>>>
 >>>>> public class SubPage extends BasePage
 >>>>> {
 >>>>>    // ...
 >>>>>    public String getTitle()
 >>>>>    {
 >>>>>      return "whatever title";
 >>>>>    }
 >>>>> }
 >>>>>
 >>>>> ---------------------------------------------------------------------
 >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
 >>>>> For additional commands, e-mail: [EMAIL PROTECTED]
 >>>>>
 >>>>>
 >>>>>
 >>>>>
 >>>> --
 >>>> View this message in context:
 >>>> 
http://www.nabble.com/Page-title-when-using-markup-inheritance-tp15827853p15828280.html
 >>>>
 >>>> Sent from the Wicket - User mailing list archive at Nabble.com.
 >>>>
 >>>>
 >>>> ---------------------------------------------------------------------
 >>>> 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]
 >>>
 >>>
 >>>
 >> --
 >> -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]
 >>
 >>
 >>
 >>
 >
 >

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



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

Reply via email to