users@woodstock.java.net

Re: Calendar inside Table component

From: Venkatesh Babu <Venkatesh.M_at_Sun.COM>
Date: Tue, 18 Dec 2007 21:30:28 +0530

Hi Janir,

I am actually seeing this problem with other complex components too.. I
tried the add-remove component inside the
table for example inside the table. Only the last row of the table
showed the add/remove/add-all/remove-all buttons
for the add remove component. The rest of the add remove components did
not show them.

For the calendar, the "calendarMonth" component and for the add-remove
the "add/remove/add-all/remove-all" buttons
are actually included as facets for their "parent" components. So, when
the calendar/add remove is being rendered
for the multiple table columns, the facets are getting cached for
subsequent rendering of the calendar/add remove components.

The calendar component uses the "calendarMonth" component in the
"datePicker" facet for rendering the imagehyperlink.
For the first time when the calendar is rendered, the "datePicker" facet
is null and a new calendarMonth component is created.
But, when a calendar is being rendered subsequently and a check for null
facet for "datePicker" facet is being done,
the check returns false and the previously used calendarMonth component
for the "datePicker" facet is being used.

The same thing is happening for add-remove. The buttons which exist as
facets for the add-remove continue to exist for subsequent
rendering for add-remove and hence only one set of buttons get rendered
for the whole column set of add remove component.

I suspect the TableColumn component is not clearing the component's
values properly while rendering it.

-Venky
janir wrote:
> Hello! Has anybody got this to work?
> Thanks,
> janir
>
>
> janir wrote:
>
>> Hi!
>> Have trouble getting this to work; the "Calendar button" is only showing
>> on the first row. And if i select a date in the control; the date is
>> copied to all rows.
>>
>> Here is part JSP:
>> <webuijsf:tableColumn binding="#{DataEntry.tableColumnFinish}"
>> headerText="FinishDate" id="tableColumnFinish" width="217">
>> <webuijsf:calendar binding="#{DataEntry.calendar2}" id="calendar2"
>> selectedDate="#{currentRow.value['finishDate']}"/>
>>
>> Here is part of the mapped data.
>> private Date finishDate;
>>
>> public Date getFinishDate() {
>> return finishDate;
>> }
>>
>> public void setFinishDate(Date FinishDate) {
>> this.finishDate = new java.sql.Date(FinishDate.getTime());
>> }
>>
>> Any ideas?
>> Thanks,janir
>>
>>
>
>