shale-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From delbd <de...@oma.be>
Subject Re: Custom component with childrens
Date Thu, 13 Jul 2006 18:44:12 GMT
No, am creating a JSF component on it's own (with it's own tag), like this
<mytaglib:mycomponent id="someId" value="#{myBean}"/>


James Mitchell a écrit :

> Assuming you are using JSP, how are using this on your page?  With 
> your own taglib or binding to an existing instance?  If you are 
> simply binding a standard HtmlPanelGrid and then declaring child 
> components, you will need to bind any nested components as well.
>
>
> -- 
> James Mitchell
>
>
>
>
> On Jul 13, 2006, at 10:01 AM, David Delbecq wrote:
>
>> Hello all,
>>
>> Starting to learn JSF, i tried to create my custom UI component. 
>> Because
>> it will be made of several fields and button, i decided to extends
>> HTMLPanelGrid. The constructor creates the various components part of
>> the Panel. After getting "funny" errors in console, i worked on a step
>> by step and noticed in restore view, myfaces does inject childs in my
>> component (so the number of child is double: those created at
>> intanciation of my component and those saved from previous instance  and
>> injected as part of restore view).
>>
>> My question is, considering the way i do it for now (which is  bad ;) ),
>> what is the best way to avoid this restore view problem. How can my
>> component know if it is in a state where it need to create itself it's
>> children or in a state where the controller will restore the children
>> tree itself?
>>
>> Thank for help.
>>
>> public class HTMLAddressComponent extends HtmlPanelGrid implements
>>         NamingContainer {
>> .....
>>
>>     public HTMLAddressComponent(){
>>         street = new HtmlInputText();
>>         number = new HtmlInputText();
>>         town = new HtmlInputText();
>>         postCode = new HtmlInputText();
>>         command = new HtmlCommandButton();
>>         command.setValue("enable/disable");
>>         street.setId("street");
>>         number.setId("number");
>>         town.setId("town");
>>         postCode.setId("postCode");
>>         command.setId("command");
>>         List childs = getChildren();
>>         HtmlPanelGroup group = new HtmlPanelGroup();
>>         List l = group.getChildren();
>>         l.add(getText("Street: "));
>>         l.add(street);
>>         l.add(getText("Number: "));
>>         l.add(number);
>>         childs.add(group);
>>         group = new HtmlPanelGroup();
>>         l = group.getChildren();
>>         l.add(getText("postcode: "));
>>         l.add(postCode);
>>         l.add(getText("Town: "));
>>         l.add(town);
>>         childs.add(group);
>>         childs.add(command);
>>     }
>>     private UIComponent getText(String value){
>>         HtmlOutputText text = new HtmlOutputText();
>>         text.setValue(value);
>>         return text;
>>     }
>>
>>
>>
>


Mime
View raw message