Hi Volker,
do you know how to programmatically add a table header to the HtmlPanelGrid for each column? Regards, Matthias > -----Ursprüngliche Nachricht----- > Von: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Auftrag > von Volker Weber > Gesendet: Freitag, 3. Februar 2006 12:14 > An: MyFaces Discussion > Betreff: Re: Panel Grid custom component > > > Hi Ali, > > there are some things you made wrong: > > First, and this seems to be a popular error: you can't add a component > to another by setting the parent of the child! use > parent.getChildren().add(child) instead. > > Than: You dont neet to invoke encoding on every component, just create > then component tree and let jsf do the rest. > > Try this : > > public void encodeBegin( FacesContext context ) > { > > HtmlPanelGrid panelGrid = new HtmlPanelGrid(); > panelGrid.setColumns(2); > List children = panelGrid.getChildren(); > > UIOutput labelName = new UIOutput(); > labelName.setValue("Enter name: "); > labelName.setId("nameId"); > children.add(labelName); > > UIInput inputName = new UIInput(); > inputName.setId("inputNameId"); > // UIInput needs a valueBinding > children.add(inputName); > > UIOutput labelAge = new UIOutput(); > labelAge.setValue("Enter age: "); > labelName.setId("ageId"); > children.add(labelAge); > > UIInput inputAge = new UIInput(); > inputAge.setId("inputAgeId"); > // UIInput needs a valueBinding > children.add(inputAge); > > this.getChildren.add(panelGrid); > > super.encodeBegin(context); > } > > > Regards, > Volker > > > Ali Raza wrote: > > Greetings again, > > > > Instead of adding components by rendering the htl myself i am adding > > chilid components and calling their encode methods as following: > > > > public void encodeBegin( FacesContext context ) > > { > > try > > { > > ResponseWriter writer = context.getResponseWriter(); > > writer.writeComment("********************************* THIS > > IS THE START OF COMPONENT > > **************************************************"); > > > > HtmlPanelGrid panelGrid = new HtmlPanelGrid(); > > panelGrid.setColumns(2); > > panelGrid.encodeChildren(context); > > > > addComponentBegin(context, "panelGridId", this, panelGrid); > > addComponentEnd(context, panelGrid); > > > > UIOutput labelName = new UIOutput(); > > labelName.setValue("Enter name: "); > > addComponentBegin(context, "nameId", panelGrid, labelName); > > addComponentEnd(context, labelName); > > > > UIInput inputName = new UIInput(); > > addComponentBegin(context, "inputNameId", > panelGrid, inputName); > > addComponentEnd(context, inputName); > > > > UIOutput labelAge = new UIOutput(); > > labelAge.setValue("Enter age: "); > > addComponentBegin(context, "ageId", panelGrid, labelAge); > > addComponentEnd(context, labelAge); > > > > UIInput inputAge = new UIInput(); > > addComponentBegin(context, "inputAgeId", panelGrid, > inputAge); > > addComponentEnd(context, inputAge); > > > > > > > > > > writer.writeComment("********************************* THIS > > IS THE END OF COMPONENT > > **************************************************"); > > } > > catch( IOException e ) > > { > > > > } > > } > > > > public static void addComponentBegin( FacesContext context, String > > componentId, UIComponent parentComponent, UIComponent childComponent ) > > throws IOException > > { > > if( componentId != null ) > > { > > childComponent.setId( componentId ); > > } > > > > childComponent.setParent( parentComponent ); > > childComponent.encodeBegin ( context ); > > } > > > > public static void addComponentEnd( FacesContext context, > > UIComponent childComponent ) throws IOException > > { > > childComponent.encodeEnd( context ); > > } > > > > My problem is that the layout of the panel grid (2 columns) that i have > > added is not maintained and all encoded children get rendered ina > > straight line quite like flowlayout in swing. can i use column wise > > layout without having to encode the html myself ??? > > > > Thanx a lot, > > Ali > > > > -- > > "A sixteenth century inventor called Wan Hu designed a rocket-propelled > > chair on which he planned to ascend into heaven. He built an open cabin, > > to which he fitted 47 rockets underneath and above, and two kites to > > keep him aloft. Wan Hu disappeared in flame and smoke and was never seen > > again. A crater on the moon is now named after him, so in one sense he > > made it to the heavens after all. This is the first recorded design of > > something approximating to a manned space rocket." > > > > The Chinese Space Programme. > > From Conception to Future Capabilities. > > Brian Harvey > > -- > Don't answer to From: address! > Mail to this account are droped if not recieved via mailinglist. > To contact me direct create the mail address by > concatenating my forename to my senders domain.

