Re: Different behavior from Pharo and Gemstone

Mariano Martinez Peck <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.squeak.seaside
Message-ID <CAA+-=mU2+WXo1+mKY-YW285UnCS2MX9a9yFx-zp7L3BLJqg+kw@mail.gmail.com>
Yes. #contents

On Sun, May 6, 2018, 10:51 AM [email protected] <[email protected]>
wrote:

> Ciao Johan,
>
>
>
> Hi Dario,
>
> This sounds like a known bug in GemStone when using temporary variables in
> separate callbacks with the same lexical scope.
>
> What you can do to work around this is to not assign directly to the
> variable but wrap the value in a holder.
> For example:
>
> dialogId := ValueHolder new.
>
> and in your callback use:
>
> dialogId value: xxx
>
> and
>
> dialogId value
>
> to assign and retrieve the value.
>
> Does this work for you?
>
>
> Yes.
>
> But ValueHolder don't know: value and  value:   methods.
>
> I need to use:  contents   and  contents:
>
> Do you agree?
> Very thanks,
>
> Dario
>
>
> cheers,
> Johan
>
>
> On 6 May 2018, at 11:02, [email protected] wrote:
>
> Ciao,
>
> i have this code into Pharo 4.0 Seaside 3.1
>
> renderDbAnchorIncrementVoce: aVoceCompilata index: anIndexRow  nominative:
> nominative on:html
> " DataBase TableData row increment "
> | flagDialog dialogId  |
> flagDialog:= false.
> html anchor
> onClick:( html jQuery script:[ :script |
>           script << (JSStream on: 'this.onclick = function(){ return
> false; }').
> script << html jQuery ajax
>   callback:[ flagDialog := false.
>   [ masterView increaseVoce: aVoceCompilata ]
> on: DTRError do:[:ex | masterView exception: ex.
> flagDialog := true.
> (ex isMemberOf: DTRStockError)
> ifTrue:[ dialogId :=  #stockErrorDialogId ]
> ifFalse:[ dialogId := #genericErrorDialogId]]];
> onComplete: ( html jQuery ajax script: [ :s |
> flagDialog
> ifTrue:[ s << (s  jQuery: dialogId ) dialog open ]
> ifFalse:[ s << (s jQuery: #'idVoceAttiva') load
>                             html: [ :h | self masterView
> renderVoceAttivaOn: h ].
> self updateRow: anIndexRow with: aVoceCompilata on: html nominative:
> nominative script: s ]])]);
> with: [ html image
> url:  DTRFileLibrary / #greenupGif ;
> altText: 'Incrementa';
> title:'Incrementa']
>
> It works fine into Pharo :
>
> the ajax callback update the data:  [ masterView increaseVoce:
> aVoceCompilata ]
>
> and if error is detected setup some variables used into onComplete: code
> to display a relative dialog open.
>
> But this code run in GLASS ( Gemstone 3.3.6 )  Seaside 3.1  don't works.
>
> As if the variables used in the onComplete: code are not updated to what
> is done in the callback.
>
> So even if an error is detected, the relative dialog is not displayed.
>
> Considerations?
>
> Thanks,
>
> Dario
>
> _______________________________________________
> seaside mailing list
> [email protected]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> _______________________________________________
> seaside mailing list
> [email protected]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> _______________________________________________
> seaside mailing list
> [email protected]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>

_______________________________________________
seaside mailing list
[email protected]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.