Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [riena-dev] Binding a 1:n:1-related Bean to a TableRidget - referring BUG 254447 - ITableRidget - formatter for columns

See Snippet017TableViewerWithDerivedColumns.java

:-)

Kind regards,
Elias.

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet017TableViewerWithDerivedColumns.java?view=co

On Thu, Feb 26, 2009 at 1:22 PM, Florian Pirchner
<florian.pirchner@xxxxxxxxx> wrote:
> Hi Elias,
>
> nested bindings! Thats great.. I did not know that there are nested
> bindings.
>
> Yesterday and the day before i have implemented a alike logic for
> notification chains. If a bean, somewhere in the bean-reference-tree
> changes, the affected ridgetControllers should be notified!
>
> So long, i think i'll waste my implementation and switch it to nested
> bindings...     ;-)
>
> Thanks a lot,
> your answer saved much time!!!
>
> Thanks,
> Flo
>
>
>
> 2009/2/26 Elias Volanakis <elias@xxxxxxxxxxxxxxxxx>
>>
>> Hi Florian,
>>
>> > I think it is important, to bind each column showing attributes of
>> > Address to the same property - the address. And the IColumnFormatter
>> > will
>> > resolve the desired attribute.
>>
>> The IColumnFormatter could do that, but how do you know if an
>> attribute of address has changed?
>>
>> The important point here that the IColumnFormatter is just a formatter
>> (i.e. it provides a string). It does not control the binding, i.e. how
>> does the table know that the cell's contents have changed.
>>
>> example: tableRidget.bindToModel(
>>  WritebleList<list_of_detail>,
>>  Detail.class,
>>  new String[] { "address.street", "address.city" },
>>  new String[] { "City", "Street");
>>
>> In your case I would first try to use "nested" bindings like above
>> ("address.street", "-> detail.getAddress().getStreet()). In the above
>> example, my understanding is that the databinding would refresh
>> column0 if street OR address changes, and column1 if city OR adfress
>> changes.
>>
>> The IColumnFormatter can provide additional formatting for a column.
>> It gets the row element (i.e. a Detail) and must work from there.
>>
>> Hope this helps. If not, feel free to share a working snippet.
>>
>> Elias.
>>
>> On Thu, Feb 26, 2009 at 11:07 AM, Florian Pirchner
>> <florian.pirchner@xxxxxxxxx> wrote:
>> > Hi,
>> >
>> > actually i am searching for a way to resolve the following problem and
>> > thought about using a IColumnFormatter. But I am not sure, if this is
>> > the
>> > best matching solution using riena.
>> >
>> > I am binding a bean (Header) to a tableRidget. This bean offers a
>> > Collection<Details>. A Detail has a 1:1 relation to the AdressBean. And
>> > i'd
>> > like to show the attributes of the AddressBean mixed with attributes of
>> > Detail as tableColumns. I think this wont work without using a
>> > IColumnFormatter.
>> >
>> > The IColumnFormatter returns the desired attribute value. So i will
>> > create a
>> > IColumnFormatter for each column and register them at the tableRidget.
>> >
>> > I think it is important, to bind each column showing attributes of
>> > Address to the same property - the address. And the IColumnFormatter
>> > will
>> > resolve the desired attribute.
>> >
>> >
>> > What do you think about this approach?
>> >
>> > Thanks in advance,
>> > Flo
>> >
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > riena-dev mailing list
>> > riena-dev@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/riena-dev
>> >
>> >
>>
>>
>>
>> --
>> Elias Volanakis
>> Technical Lead
>> Innoopract (EclipseSource)
>> 351 NW 12th Avenue
>> Portland, Oregon 97209
>>
>> elias@xxxxxxxxxxxxxxxxx
>> evolanakis@xxxxxxxxxxxxxx
>> Tel: +1-503-552-1457
>> Fax: +1-503-715-4915
>> Mobile: +1-503-929-5537
>> ---
>> Innoopract is becoming EclipseSource - www.eclipsesource.com
>> _______________________________________________
>> riena-dev mailing list
>> riena-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/riena-dev
>
>
> _______________________________________________
> riena-dev mailing list
> riena-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/riena-dev
>
>



-- 
Elias Volanakis
Technical Lead
Innoopract (EclipseSource)
351 NW 12th Avenue
Portland, Oregon 97209

elias@xxxxxxxxxxxxxxxxx
evolanakis@xxxxxxxxxxxxxx
Tel: +1-503-552-1457
Fax: +1-503-715-4915
Mobile: +1-503-929-5537
---
Innoopract is becoming EclipseSource - www.eclipsesource.com


Back to the top