See my code (but nothing appears in my JSP page):
public void setPanelTabuladores(UIPanel panelTabuladores)
{
if (this.panelTabuladores == null)
{
this.panelTabuladores = panelTabuladores;
UIPanel tab0 = (HtmlPanelTab) FacesUtils.getApplication()
.createComponent(HtmlPanelTab.COMPONENT_TYPE);
tab0.setId("panelTab0");
tab0.getAttributes().put("label", "Variable0");
UIData tabla0 = (HtmlDataTable) FacesUtils.getApplication()
.createComponent(HtmlDataTable.COMPONENT_TYPE);
tabla0.setId("tablaEdicionPuntuaciones0");
tabla0.setVar("puntuacion0");
tabla0.getAttributes().put("width", "100%");
tabla0.getAttributes().put("cellspacing", "1");
tabla0.getAttributes().put("cellpadding", "2");
tabla0.getAttributes().put("renderedIfEmpty", Boolean.FALSE);
tabla0.getAttributes().put("preserveDataModel", Boolean.FALSE);
tabla0.setValueBinding("value", FacesUtils
.getValueBinding("#{puntuaciones.listasPuntuaciones[0]}"));
tabla0.setRows(10);
tabla0.getAttributes().put("rowClasses", "impar,par");
tabla0.getAttributes().put("headerClass", "apptblhdr");
tabla0.getAttributes().put("rowIndexVar", "numFila0");
tabla0.getAttributes().put("rowOnMouseOver", "tblOver(this)");
tabla0.getAttributes().put("rowOnMouseOut",
"tblOut(this, #{numFila0%2})");
UIColumn col1 = (HtmlSimpleColumn) FacesUtils.getApplication()
.createComponent(HtmlSimpleColumn.COMPONENT_TYPE);
col1.getAttributes().put("style", "text-align: center;");
UIOutput texto1 = (HtmlOutputText) FacesUtils.getApplication()
.createComponent(HtmlOutputText.COMPONENT_TYPE);
texto1.setValueBinding("value", FacesUtils
.getValueBinding("#{mensajes.puntuaciones_Tramos}"));
col1.setHeader(texto1);
UIOutput texto2 = (HtmlOutputText) FacesUtils.getApplication()
.createComponent(HtmlOutputText.COMPONENT_TYPE);
texto2
.setValueBinding(
"value",
FacesUtils
.getValueBinding("#{puntuacion0.valor.minimo} - #{puntuacion0.valor.maximo}"));
col1.getChildren().add(texto2);
UIColumn col2 = (HtmlSimpleColumn) FacesUtils.getApplication()
.createComponent(HtmlSimpleColumn.COMPONENT_TYPE);
col2.getAttributes().put("style", "text-align: center;");
UIInput texto3 = (HtmlInputText) FacesUtils.getApplication()
.createComponent(HtmlInputText.COMPONENT_TYPE);
texto3.setValueBinding("value", FacesUtils
.getValueBinding("#{puntuacion0.puntuacion}"));
col2.getChildren().add(texto3);
tabla0.getChildren().add(col1);
tabla0.getChildren().add(col2);
tab0.getChildren().add(tabla0);
this.panelTabuladores.getChildren().add(tab0);
}
}
2005/11/4, Martin Marinschek <[EMAIL PROTECTED]>:
Well,
for very easy situations, it is ok to create it in the getter, when it
is sure that your component will not change during the life-time of a
view.
For all other things, it is much better to provide a setter and
initialize the component somewhere else so that you can dynamically
change the component and what it binds to.
regards,
Martin
On 11/4/05, Enrique Medina < [EMAIL PROTECTED]> wrote:
> Hi,
>
> Recently I posted a similar question and got the answer from Mike
> Kienenberger about not using the getter of the binded property to create it,
> as I can have it already created from the JSF engine in my setter method.
>
> Now I see that Martin proposes to create it in the getter.
>
> But should be the best approach then?
>
>
> 2005/11/4, Martin Marinschek < [EMAIL PROTECTED]>:
> > What you want to do is do a binding for panelGroup
> >
> > and then add children to this panelGroup - with this you can create
> > extra components.
> >
> > code snippet (not compiled except in my head ;):
> >
> > public UIComponent getPanelGroup()
> > {
> > HtmlPanelGroup panelGroup = new HtmlPanelGroup();
> > panelGroup.getChildren().add(new HtmlInputText());
> > panelGroup.getChildren().add(new HtmlOutputText());
> > ...
> >
> > return panelGroup;
> > }
> >
> > regards,
> >
> > Martin
> >
> > On 11/4/05, Nikita Koselev <[EMAIL PROTECTED]> wrote:
> > > Can you explain your task better, please.
> > >
> > > Nikita
> > >
> > > On 04/11/05, Rene Ott < [EMAIL PROTECTED]> wrote:
> > > > Hello @all,
> > > >
> > > > I would like to create dynamically inside a backing bean some
> components.
> > > > Looking around in the net I found only solutions that create a binding
> to a
> > > > component, for example:
> > > >
> > > > <h:panelGroup binding="#{my.backingbean}">
> > > > ...
> > > >
> > > > This means that I always need an existing component like panelGroup
> for
> > > > creating with a binding some components.
> > > >
> > > > How can I create dynamically components without using a binding (and
> in the
> > > > end an extra component)?
> > > >
> > > > Thanks and best regards,
> > > > René Ott
> > > >
> > > >
> > > >
> > >
> >
> >
> > --
> >
> > http://www.irian.at
> > Your JSF powerhouse -
> > JSF Trainings in English and German
> >
>
>
--
http://www.irian.at
Your JSF powerhouse -
JSF Trainings in English and German