HTML for the panel ((ContactPanel.html):
<html xmlns:wicket>
<wicket:panel>
    <table>
        <tr>
            <td><span wicket:id="nameLabel"></span></td>
            <td><span wicket:id="name"></span></td>
        </tr>
        <tr>
            <td><span wicket:id="userNameLabel"></span></td>
            <td><span wicket:id="userName"></span></td>
        </tr>
        <tr>
            <td><span wicket:id="phoneLabel"></span></td>
            <td><span wicket:id="phone"></span></td>
        </tr>
        <tr>
            <td><span wicket:id="emailLabel"></span></td>
            <td><span wicket:id="email"></span></td>
        </tr>
    </table>
</wicket:panel>
</html>

Java code for the panel (ContactPanel.java):
public class ContactPanel extends Panel {
    private static final long serialVersionUID = 1L;

    public ContactPanel(String id, IModel model) {
        super(id, model);
        add(new Label("nameLabel", new ResourceModel("nameLabel")));
        add(new Label("name"));

        add(new Label("userNameLabel", new ResourceModel("userNameLabel")));
        add(new Label("userName"));

        add(new Label("phoneLabel", new ResourceModel("phoneLabel")));
        add(new Label("phone"));

        add(new Label("emailLabel", new ResourceModel("emailLabel")));
        add(new Label("email"));
    }
}


HTML for the page using the panel (VacanyPage.html):
--- snip ---
                    <table>
                        <tr>
                            <td><span
wicket:id="hrContactPanel"></span></td>
                        </tr>
                        <tr>
                            <td><span
wicket:id="hiringManagerPanel"></span></td>
                        </tr>
                    </table>
--- snip ---

Java code for the page (VacanyPage.java):
--- snip ---
        Form form = new Form("vacancyForm", new
CompoundPropertyModel(vacancyReq)) {
--- snip ---
        Contact hrContact = new Contact();
        form.add(new ContactPanel("hrContactPanel", new
CompoundPropertyModel(hrContact)));
        Contact hiringManager = new Contact();
        form.add(new ContactPanel("hiringManagerPanel", new
CompoundPropertyModel(hiringManager)));
--- snip ---

Properties file for the page (VacancyPage.properties):
vacancyForm.hrContactPanel.nameLabel=HR Contact:
vacancyForm.hrContactPanel.userNameLabel=HR Contact Username:
vacancyForm.hrContactPanel.phoneLabel=Phone:
vacancyForm.hrContactPanel.emailLabel=Email:
vacancyForm.hiringManagerPanel.nameLabel=Hiring Manager:
vacancyForm.hiringManagerPanel.userNameLabel=Hiring Manager Username:
vacancyForm.hiringManagerPanel.phoneLabel=Phone:
vacancyForm.hiringManagerPanel.emailLabel=Email:


As you can see from the code the VacancyPage has two instances of
ContactPanel and these should have different labels. I have tried different
ways to specify this, but Wicket says it cannot find the labels, so I must
be doing something wrong.

Thanks in advance for any help!

Best Regards,
/Peter

2008/6/11 Martin Makundi <[EMAIL PROTECTED]>:

> Can you paste the code for better insight into your problem?
>
> 2008/6/11 Peter Eriksson <[EMAIL PROTECTED]>:
> > Hello,
> >
> > I have just begun to use wicket and so far I am very impressed with the
> > framework.
> > I have a question about best practice to solve a problem. I have a
> component
> > (wicket panel) that contain contact information (like name, address,
> email,
> > phone, etc) and on a specific web page I want to have two of the contact
> > panels. They of course access different model fields. Now to the
> question:
> > The labels used for the contact fields are slightly different, so the
> > question is how to best solve this? Since the labels are not the same for
> > the two contact panels I cannot use a ResourceModel as it is because then
> > they would have the same label text. Is the best way to solve this with
> > inheritence or do you have any other solution?
> >
> > Best Regards,
> > /Peter
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to