Excellent,

My simple test now seems to work if I do a getForm().
Although I really like the thought of setTransparentResolver(), but as
with  Josh, I can't find it in 1.4.7..

I also have this problem with a Border object, I'll have to look into
seeing if I can  get around the same problem by doing a getBorder().

Steve

On Mon, Mar 22, 2010 at 11:40 AM, Jeremy Thomerson
<jer...@wickettraining.com> wrote:
> you need to be adding the components to the form.  you're currently adding
> them to the page itself.  the component hierarchy is thus broken.  on your
> child page, either do getForm().add(foo) [you'll need to expose a getForm
> method that returns the form from the parent page] or else on your parent
> page (BaseEditPage), setTransparentResolver(true) on the form and add the
> form children to the page then.
>
> --
> Jeremy Thomerson
> http://www.wickettraining.com
>
>
>
> On Sun, Mar 21, 2010 at 7:35 PM, Steve Mactaggart <st...@whitesquaresoft.com
>> wrote:
>
>> Hi all,
>>
>> Before I go to far trying to prove I have a bug, I thought i'd crowd
>> source an answer.
>>
>> We have a lot of "Edit" pages that have a lot of simmilar structure,
>> and what I wanted to do is create a BaseEditPage that contains the
>> form, the save/cancel buttons, some layout stuff and a FeedbackPanel,
>> then extend it into UserEditPage that just adds the fields that are
>> editable.
>>
>> I can get this working as long as I put all the HTML into the
>> UserEditPage.html file.
>>
>> Lets make this simple.  Lets say that BaseEditPage extends
>> StandardPage, where StandardPage provides a standard header, footer
>> and so all we have to worry about in the BaseEditPage is the "content"
>> of the page.
>>
>> My BaseEditPage html will look like:
>>
>> <wicket:extend>
>> <form wicket:id="form">
>>  <div wicket:id="feedback"/>
>>  <wicket:child/>
>>
>>  <input type="button" wicket:id="save"/>
>>  <input type="button" wicket:id="cancel"/>
>> </form>
>> </wicket:extend>
>>
>> And the BaseEditPage.java is like:
>>
>> public class BaseEditPage extends StandardPage {
>>
>> Form form;
>> SubmitLink saveButton;
>> SubmitLink cancelButton;
>> FeedbackPanel feedbackPanel;
>>
>> public BaseEditPage() {
>>   super();
>>
>>   form = new Form("form");
>>
>>   saveButton = new SubmitLink("save"); //onSubmit excluded to keep
>> example simple.
>>   cancelButton = new SubmitLink("cancel");
>>
>>   feedbackPanel = new FeedbackPanel("feedback");
>>
>>   add(form);
>>
>>   form.add(saveButton);
>>   form.add(cancelButton);
>>   form.add(feedbackPanel);
>> }
>> }
>>
>> Now I create my UserEditPage
>>
>> public UserEditPage extends BaseEditPage {
>>
>> RequiredTextField username;
>>
>> public UserEditPage() {
>>    username = new RequiredTextField<String>("username", new
>> Model("test-username"));
>>
>>    add(username);
>> }
>>
>> }
>>
>> And create the HTML for the page like:
>> <wicket:extend>
>>  Username: <input type="text" wicket:id="username"/>
>> </wicket:extend>
>>
>>
>> When I run this simple example I get a messsage stating:
>>    Unable to find component with id 'username' in [MarkupContainer
>> [Component id = _extend4]].
>>
>> My guess is this is an issue processing the sub class due to the fact
>> that the <form> tag is still open.
>>
>> Is there any way to do this, or is this outside the scope of Wicket?
>>
>> Cheers,
>> Steve
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to