Yes, now the ways to find the child into the border are the ways that 
you say, but I think that the
way would have to be transparent, like when we add a new child:

TextField textfield = new TextField<String>(formBorder, "name",
new PropertyModel<String>(
               properties, "name"));

In that case, I really don't know where the textfield is added. Only
internally the textfield is added in the body container.
For the same reason, when I want to search a child, I don't have to know
where is exactly this child...
I think that in this case, I only have to know that the textfield has been
added in a formborder, and I have to go to search this field in the formBorder.
In this case, the get() method of the formBorder have to know internally where 
is the 
children, depending of the body container.

I think this is a good idea to implement for components that implements 
IAlternateParent...





> Because FormBorder puts a <form> _around_ the wicket:body tag, the
> "name" component gets added to the body container. The body container
> id is border.getId() + "Body". Hence
> get("border.form.borderBody.name") or
> border.getBodyContainer().get("name") or
> formBorder.get("borderBody.name")
>
> Juergen
>
> On 10/9/06, Alberto Bueno <[EMAIL PROTECTED]> wrote:
>   
>> Hi Juergen Donnerstag
>>
>> Thanks for you patience. ;)
>>
>> The problem has been fixed with the changes that we have added to the
>> trunk.
>> Now I have another question.
>> In the example BoxBorderTextPage_7 we add a TextField in the FormBorder.
>> After that,
>> If I want to find this component into the FormBorder component, I cannot
>> find it.
>>
>>    public BoxBorderTestPage_7()
>>    {
>>        Border formBorder = new FormBorder(this, "border");
>>
>>        TextField textfield = new TextField<String>(formBorder, "name",
>> new PropertyModel<String>(
>>                properties, "name"));
>>
>>        Component c = formBorder.get("name");
>>
>>        // Test setVisible on formBorders
>>        textfield.setVisible(false);
>>
>>        new Link(this, "link")
>>        {
>>            private static final long serialVersionUID = 1L;
>>
>>            @Override
>>            public void onClick()
>>            {
>>                String p = "";
>>            }
>>        };
>>    }
>>
>> The line Component c = formBorder.get("name"); has been added in the
>> example, and return null.
>> Is correct this result, or the get() method should return the TextField
>> component?
>>
>>
>>
>>
>>     
>>> I extened BoxBorderTestPage_7 to click the link and to validate the
>>> output of the second render as well. The problem should be fixed.
>>>
>>> Juergen
>>>
>>> On 10/7/06, Alberto Bueno <[EMAIL PROTECTED]> wrote:
>>>
>>>       
>>>> Hi Juergen Donnerstag,
>>>>
>>>> The example BoxBorderTestPage_7 runs correctly because you only render
>>>> the page only one time. The problem is if
>>>> you have to reload the page again, because TextField has been removed in
>>>> the first rendering and the markup
>>>> doesn't find this component in the second rendering.
>>>> I don't know how to simulate the situation in a test case, but if you
>>>> check the example that I wrote,
>>>> you will see the problem:
>>>>
>>>> MyBorderPage.html
>>>>
>>>> <div wicket:id="border">
>>>> <label wicket:id="span">
>>>> test
>>>> </label>
>>>> </div>
>>>> <a wicket:id="link">link</a>
>>>>
>>>>
>>>> MyBorderPage.java
>>>>
>>>> FormBorder border = new FormBorder(this, "border");
>>>>
>>>> Label span = new Label(border, "span","testt");
>>>> span.setVisible(false);
>>>>
>>>> new Link(this, "link"){
>>>>
>>>> @Override
>>>> public void onClick() {
>>>> String p ="";
>>>>
>>>> }
>>>>
>>>> };
>>>>
>>>>
>>>>
>>>>         
>>>>> I've copied BoxBorderTestPage_3 into BoxBorderTestPage_7 and made the
>>>>> change you suggested. It is working properly. The textield is no
>>>>> longer printed.
>>>>>
>>>>> Juergen
>>>>>
>>>>> On 10/6/06, Alberto Bueno <[EMAIL PROTECTED]> wrote:
>>>>>
>>>>>
>>>>>           
>>>>>> you have the the test case:
>>>>>>
>>>>>> public class BoxBorderTestPage_3 extends WebPage
>>>>>> {
>>>>>>     private static final long serialVersionUID = 1L;
>>>>>>
>>>>>>     private final ValueMap properties = new ValueMap();
>>>>>>
>>>>>>     /**
>>>>>>      * Construct.
>>>>>>      *
>>>>>>      *
>>>>>>      */
>>>>>>     public BoxBorderTestPage_3()
>>>>>>     {
>>>>>>         Border formBorder = new FormBorder(this, "border");
>>>>>>
>>>>>>        new TextField<String>(formBorder, "name", new
>>>>>> PropertyModel<String>(properties, "name"));
>>>>>>     }
>>>>>> }
>>>>>>
>>>>>> That runs correctly.
>>>>>>
>>>>>> But if you change TextField component to setVisible(false):
>>>>>>
>>>>>>         TextField textfield = new TextField<String>(formBorder, "name",
>>>>>> new PropertyModel<String>(properties, "name"));
>>>>>>         textfield.setVisible(false);
>>>>>>
>>>>>> Then the case has an error, because in the
>>>>>> DiffUtil.validatePage(document, this.getClass(), filename) the component
>>>>>> doesn't exists.
>>>>>> (Because has been removed by the page when it check if the autocomponent
>>>>>> contain not visible component to remove).
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> This is V2 svn trunk? Could you please create a test case (see
>>>>>>> src/test) for me which makes is much easier to follow up. Thanks
>>>>>>>
>>>>>>> Juergen
>>>>>>>
>>>>>>> On 10/6/06, Alberto Bueno <[EMAIL PROTECTED]> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> the problem is when I want to add in a FormBorder a component with
>>>>>>>> setVisible(false), because  this component
>>>>>>>> is removed in the first rendering, and in the next rendering the
>>>>>>>> component is not found.
>>>>>>>> This is a simple example:
>>>>>>>>
>>>>>>>> MyBorderPage.html
>>>>>>>>
>>>>>>>> <div wicket:id="border">
>>>>>>>>               <label wicket:id="span">
>>>>>>>>                   test
>>>>>>>>            </label>
>>>>>>>> </div>
>>>>>>>> <a wicket:id="link">link</a>
>>>>>>>>
>>>>>>>>
>>>>>>>> MyBorderPage.java
>>>>>>>>
>>>>>>>> FormBorder border = new FormBorder(this, "border");
>>>>>>>>
>>>>>>>>        Label span = new Label(border, "span","testt");
>>>>>>>>        span.setVisible(false);
>>>>>>>>
>>>>>>>>        new Link(this, "link"){
>>>>>>>>
>>>>>>>>            @Override
>>>>>>>>            public void onClick() {
>>>>>>>>                String p ="";
>>>>>>>>
>>>>>>>>            }
>>>>>>>>
>>>>>>>>        };
>>>>>>>>
>>>>>>>> When I click the link, I have the error:
>>>>>>>>
>>>>>>>> Unable to find component with id 'span' in [MarkupContainer
>>>>>>>> [Component id = <auto>-body, page = 
>>>>>>>> com.isencia.paging.wicket.MyBorderPage,
>>>>>>>> path = 8:border:myForm:<auto>-body.Border$BorderBody, isVisible = true,
>>>>>>>> isVersioned = true]].
>>>>>>>>
>>>>>>>>
>>>>>>>> Do you know any solution to solve this problem, or is a bug?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> -------------------------------------------------------------------------
>>>>>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>>>>>> Join SourceForge.net's Techsay panel and you'll get the chance to 
>>>>>>>> share your
>>>>>>>> opinions on IT & business topics through brief surveys -- and earn cash
>>>>>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>>>>>> _______________________________________________
>>>>>>>> Wicket-user mailing list
>>>>>>>> [email protected]
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> -------------------------------------------------------------------------
>>>>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>>>>> Join SourceForge.net's Techsay panel and you'll get the chance to share 
>>>>>>> your
>>>>>>> opinions on IT & business topics through brief surveys -- and earn cash
>>>>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>>>>> _______________________________________________
>>>>>>> Wicket-user mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> -------------------------------------------------------------------------
>>>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>>>> Join SourceForge.net's Techsay panel and you'll get the chance to share 
>>>>>> your
>>>>>> opinions on IT & business topics through brief surveys -- and earn cash
>>>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>>>> _______________________________________________
>>>>>> Wicket-user mailing list
>>>>>> [email protected]
>>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> -------------------------------------------------------------------------
>>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>>> Join SourceForge.net's Techsay panel and you'll get the chance to share 
>>>>> your
>>>>> opinions on IT & business topics through brief surveys -- and earn cash
>>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>>> _______________________________________________
>>>>> Wicket-user mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>>>
>>>>>
>>>>>           
>>>> -------------------------------------------------------------------------
>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>> Join SourceForge.net's Techsay panel and you'll get the chance to share 
>>>> your
>>>> opinions on IT & business topics through brief surveys -- and earn cash
>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>> _______________________________________________
>>>> Wicket-user mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>>
>>>>
>>>>         
>>> -------------------------------------------------------------------------
>>> Take Surveys. Earn Cash. Influence the Future of IT
>>> Join SourceForge.net's Techsay panel and you'll get the chance to share your
>>> opinions on IT & business topics through brief surveys -- and earn cash
>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>> _______________________________________________
>>> Wicket-user mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>
>>>       
>> -------------------------------------------------------------------------
>> Take Surveys. Earn Cash. Influence the Future of IT
>> Join SourceForge.net's Techsay panel and you'll get the chance to share your
>> opinions on IT & business topics through brief surveys -- and earn cash
>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>> _______________________________________________
>> Wicket-user mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>
>>     
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>   


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to