That's what I did. But something is wrong, because the error
"[ServletException in:/eservices/layout/layout.jsp] null' " appears.
public DataModel getFieldsEmbque() {
if(fieldsEmbqueModel == null) {
fieldsEmbqueModel = new ArrayDataModel(fieldsEmbque);
}
return fieldsEmbqueModel;
}
public List getValuesEmbque() {
if(valuesEmbque == null) {
valuesEmbque = new ArrayList();
valuesEmbque.add(new RowData(this, fieldsEmbque));
valuesEmbque.add(new RowData(this, fieldsEmbque1));
}
return valuesEmbque;
}
public class RowData
{
private RemessaBean fieldHolder;
private Fields[] fields;
public RowData(RemessaBean fieldHolder, Fields[] fields)
{
this.fieldHolder = fieldHolder;
this.fields = fields;
}
public Object getValue()
{
System.out.println(((Fields)this.fieldHolder.getFieldsEmbque().getRowData()).getValue());
return fields;
}
}
Help me please!!!!
Thanks.
Guedes
On 10/20/05, PATRICIA GUEDES <[EMAIL PROTECTED]> wrote:
> Sorry, but I don't understand (I am learning yet). How can I fill the
> row data? With an Array?
>
> Thanks,
> Guedes
>
> On 10/18/05, Mathias Brökelmann <[EMAIL PROTECTED]> wrote:
> > try to use an instance of DataModel as the value for either
> > valuesEmbque or fieldsEmbque. You can then determine with
> > DataModel.getRowData() the current value of the List to determine
> > which value you should return for each cell:
> >
> > public class RemessaBean
> > {
> > private DataModel fieldsEmbqueModel;
> > private List valuesEmbque;
> >
> > public DataModel getFieldsEmbque()
> > {
> > if(fieldsEmbqueModel == null)
> > {
> > fieldsEmbqueModel = new ArrayDataModel(fieldsEmbque)
> > }
> > return fieldsEmbqueModel;
> > }
> >
> > public List getValuesEmbque()
> > {
> > if(_valuesEmbque == null)
> > {
> > _valuesEmbque = new ArrayList();
> > _valuesEmbque.add(new RowData(this, .....));
> > _valuesEmbque.add(new RowData(this, .....));
> > }
> > return _valuesEmbque;
> > }
> > }
> >
> > public class RowData
> > {
> > private RemessaBean _fieldHolder;
> >
> > public RowData(RemessaBean fieldHolder, .....)
> > {
> > _fieldHolder = fieldHolder;
> > // fill your row data
> > ...
> > }
> >
> > public Object getValue()
> > {
> > Field field = (Field)_fieldHolder.getFieldsEmbque().getRowData()
> > // use field to determine which value should be returned.
> > ....
> > }
> >
> > <x:dataTable value="#{remessaBean.valuesEmbque}" var="values" width="760"
> > cellpadding="0" cellspacing="1">
> > <x:columns value="#{remessaBean.fieldsEmbque}" var="field">
> > <f:facet name="header">
> > <x:outputText value="#{field.nomeCampoTela}"
> > styleClass="forms"/>
> > </f:facet>
> > <h:outputText value="#{values.value}" styleClass="forms"/>
> > </x:columns>
> > </x:dataTable>
> >
> >
> > 2005/10/18, PATRICIA GUEDES <[EMAIL PROTECTED]>:
> > > Thanks for your reply! That's exactly what I needed. But, now I have
> > > another problem. How can I reference an Object's attribute in a
> > > ArrayList? Follow a simple example (very ugly) :
> > >
> > > <x:dataTable value="#{remessaBean.valuesEmbque}" var="values"
> width="760"
> > > cellpadding="0" cellspacing="1">
> > > <x:columns value="#{remessaBean.fieldsEmbque}" var="field">
> > > <f:facet name="header">
> > > <x:outputText value="#{field.nomeCampoTela}"
> > > styleClass="forms"/>
> > > </f:facet>
> > > <h:outputText value="#{values.Fields.value}"
> > styleClass="forms"/>
> > > </x:columns>
> > > </x:dataTable>
> > >
> > >
> > > private static final Fields[] fieldsEmbque = new Fields[] {
> > > new Fields(1, "Embarcador", "1", "NUMBER", true, true, "", null),
> > > new Fields(2, "Nº Embarque", "2", "NUMBER", true, true, "", null),
> > > new Fields(3, "Dt. Prevista", "3", "DATE", true, false, "", null),
> > > new Fields(4, "Pedido", "4", "NUMBER", true, false, "", null),
> > > new Fields(5, "Cliente", "5", "NUMBER", true, false, "", null),
> > > new Fields(6, "Local Embarque", "6", "STRING", true, false, "",
> > null),
> > > new Fields(7, "Lote", "7", "NUMBER", true, false, "", null)};
> > >
> > > private static final Fields[] fieldsEmbque1 = new Fields[] {
> > > new Fields(1, "Embarcador", "8", "NUMBER", true, true, "", null),
> > > new Fields(2, "Nº Embarque", "9", "NUMBER", true, true, "", null),
> > > new Fields(3, "Dt. Prevista", "10", "DATE", true, false, "", null),
> > > new Fields(4, "Pedido", "11", "NUMBER", true, false, "", null),
> > > new Fields(5, "Cliente", "12", "NUMBER", true, false, "", null),
> > > new Fields(6, "Local Embarque", "13", "STRING", true, false, "",
> > null),
> > > new Fields(7, "Lote", "14", "NUMBER", true, false, "", null)};
> > >
> > > private List valuesEmbque;
> > >
> > > public RemessaBean () {
> > > valuesEmbque = new ArrayList();
> > > valuesEmbque.add(fieldsEmbque);
> > > valuesEmbque.add(fieldsEmbque1);
> > > }
> > >
> > > My problem is the part "values.Fields.value" that didn't work. What can
> I
> > do?
> > >
> > > Thanks.
> > > Guedes
> > >
> > >
> > >
> > > On 10/18/05, Mathias Brökelmann <[EMAIL PROTECTED]> wrote:
> > > > try out the t:columns component which allows you to have NxM tables.
> > > > Take a look into the myfaces-examples (opendatatable)
> > > >
> > > > 2005/10/18, PATRICIA GUEDES <[EMAIL PROTECTED]>:
> > > > > Hi, I´m from Brazil (sorry my bad English) and I need to build a
> > > > > table where the columns are dynamics. The columns came from a
> > > > > ArrayList of "fields" and the lines came from each field's values.
> > How
> > > > > can I do that?
> > > > >
> > > > > Ex:
> > > > >
> > > > > field1 field2 field3 field4 field5 (colunas vêm de um
> > > > > ArrayList de fields)
> > > > > 1 2 3 4 5
> > > > > 6 7 8 9 10
> > > > >
> > > > > Any ideas?
> > > > >
> > > > > Thanks.
> > > > > Guedes
> > > > >
> > > >
> > > >
> > > > --
> > > > Mathias
> > > >
> > >
> >
> >
> > --
> > Mathias
> >
>