Yeah.  See my first reply to Edvin.

On 14 July 2011 05:28, Greg Brown <gk_br...@verizon.net> wrote:
> Ah, I see - like a decorator.
>
>
> On Jul 13, 2011, at 5:56 PM, Chris Bartlett wrote:
>
>> On 14 July 2011 04:32, Greg Brown <gk_br...@verizon.net> wrote:
>>>> It just seems cleaner to prepare the data first, and then let
>>>> ImageView simply show whatever it has been given.  Much the same as
>>>> when populating a ListView, TableView or TreeView for example.
>>>
>>> The difference is that the renderer would be modifying the data, rather 
>>> than the application. That isn't good.
>>
>> No, I am not suggesting the renderer do anything other than render,
>> and certainly not modify any data.  In fact the renderer wouldn't even
>> know that the 'clipped' image was in any way different to any other
>> image.  For that matter, neither would ImageView or anything else that
>> uses Images, as it is none of their concern where the data originally
>> came from, or comes from now.  They just need to know how to deal with
>> it once they are given it.
>>
>> Continuing the comparison with ListView - I can use a base
>> List<Widget> as the 'listData' for one ListView, and then create a 2nd
>> List<Widget> (which is backed by the other list) and use as the
>> 'listData' for another ListView.  (The old FilteredList class would be
>> a perfect example of one list backed by another)
>>
>> Similarly, offsets & clip bounds would be handled by a lightweight
>> Image (the equivalient of the FilteredList above).   That Image would
>> be backed by the 'source image' and just would paint the relevant part
>> of that source image when its own paint method was called.
>>
>> It could be considered similar to how the consumer of a
>> java.io.InputStream just deals with the data it receives, without
>> knowledge of any processing that may have occurred beforehand and
>> transformed the data in some way.
>>
>> Image = java.io.InputStream
>> ClippedImage = java.io.FilterInputStream
>
>

Reply via email to