users@woodstock.java.net

Re: Calendar inside Table component

From: Dan Labrecque <Dan.Labrecque_at_Sun.COM>
Date: Tue, 18 Dec 2007 13:53:42 -0500

Venkatesh Babu wrote:
> 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.

I don't believe TableColumn was ever responsible for "clearing
component's values". Although, there was a rendering method that was
recently removed from RenderingUtilities -- I believe this cleared
component ids each time a component was rendered.

Dan

>
> -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
>>>
>>>
>>
>>
>