[Seaside] Problem with callback blocks sharing context using closure image

Levente Uzonyi leves at elte.hu
Mon Nov 1 02:28:02 UTC 2010


On Sun, 31 Oct 2010, Bob Arning wrote:

> Actually, that would not work as written in a closure image. To make it work 
> in closure image, you could write something like:
>
> ...
> 	aRenderer anchor
> 		callback: (makeCallBackWith: index );
> ...
>
> And then write a method
>
> makeCallBackWith: n
> 	^[self callbackFor: n]
>
>
> In a non-closure image, it would work as written since fixCallbackTemps would 
> have been sent automatically.

Argh. That's right, maybe it's time for me to get some sleep. :)


Levente

>
> Cheers,
> Bob
>
> On 10/31/10 9:52 PM, Levente Uzonyi wrote:
>> On Mon, 1 Nov 2010, Hernán Morales Durand wrote:
>> 
>>> Hi all,
>>> 
>>> I'm experimenting different behavior between Seaside 2.8 and 3.0
>>> regarding parameters passed in callback blocks. Attached there is code
>>> to test in both platforms (just click in any of the first 8 links),
>>> the problem is in the variable index in the #callback: of the
>>> following code
>>> 
>>>>> renderBlabla
>>>     | index |
>>>     index := 1.
>>>     8 timesRepeat: [
>>>         aRenderer tableRow: [
>>>             5 timesRepeat: [
>>>                 aRenderer tableData: [
>>>                     aRenderer anchor
>>>                         callback: [ self callbackFor: index ];
>>>                         with: 'image link'.
>>>                     index := index + 1.
>>>                 ]  ] ] ].
>>> 
>>> In Seaside 2.8 after clicking the link 3 for example, the
>>> #callbackFor: method received 3 as parameter.
>>> In Seaside 3.0 #callbackFor: receive 41.
>>> 
>>> I would like to preserve the parameter value configured in the
>>> rendering phase, any suggestion how to do that in Seaside 3? (Using
>>> PharoVM 4.0.2 12/4/2010 and Pharo1.1rc2 #11400)
>> 
>> Use an image with support for closures. Or if that's not possible, then 
>> send #fixTemps to the callback block.
>> 
>> 
>> Levente
>> 
>>> Cheers,
>>> 
>>> -- 
>>> Hernán Morales
>>> Information Technology Manager,
>>> Institute of Veterinary Genetics.
>>> National Scientific and Technical Research Council (CONICET).
>>> La Plata (1900), Buenos Aires, Argentina.
>>> Telephone: +54 (0221) 421-1799.
>>> Internal: 422
>>> Fax: 425-7980 or 421-1799.
>>> 
>> 
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>


More information about the seaside mailing list