I think the ProgressNotification was only used in older pharo version (like 1.4, where this displayProgress: ... with progress title worked) 2014-03-19 16:46 GMT+01:00 Ben Coman <btc@openinworld.com>:
Friedrich Dominicus wrote:
Bernat Romagosa <tibabenfortlapalanca@gmail.com> <tibabenfortlapalanca@gmail.com> writes:
ouch, I added a . in the middle, sorry!
elements := #('eins' 'zwei' 'drei' 'vier'). elements do: [ :element | (Delay forSeconds: 2) wait ] displayingProgress: [ :element | 'Working on', element asString ].
2014-03-18 9:55 GMT+01:00 Bernat Romagosa<tibabenfortlapalanca@gmail.com> <tibabenfortlapalanca@gmail.com>:
Without having tried it, I think you're missing a #wait message in there:
elements := #('eins' 'zwei' 'drei' 'vier'). elements do: [ :element | (Delay forSeconds: 2) wait ].
displayingProgress: [ :element | 'Working on', element asString ].
Sorry even with that I do not see the 'Working on ' message. It's just a progress bar with nothing else. No "Working on" anywhere.
Regards Friedrich
I'm not sure what the expected result is, but if you debug/step into that code a few times you find yourself in... Array(Collection)>>do:displayingProgress:every:
Looking at expression... aStringOrBlock isString I guessed something might be learnt from stepping through... elements := #('eins' 'zwei' 'drei' 'vier'). elements do: [ :element | (Delay forSeconds: 2) wait ] displayingProgress: 'MyProgress' and indeed progress bar text is updated by the line... bar label: aStringOrBlock.
Now stepping through your original script, #label: never seems to be executed So replacing... [ProgressNotification signal: '' extra: (oldLabel := newLabel)] with... [ bar label: newLabel. ProgressNotification signal: '' extra: (oldLabel := newLabel). ]. seems to do the trick, although as I said before, I don't know what the expected behaviour is. Is that what you need?
I've not looked at this code before so I've learnt something new today. In particular, for a while I was wondering purpose ProgressNotification served since tracing through it seemed to do nothing, and then I realised it might be used something like this... elements := #('eins' 'zwei' 'drei' 'vier' ). [ elements do: [ :element | (Delay forSeconds: 2) wait ] displayingProgress: [ :element | 'Working on ', element asString ] ] on: ProgressNotification do: [ :notice | self inform: notice extraParam printString. notice resume ]
I've logged a case https://pharo.fogbugz.com/f/cases/13101/Progress-bar-progressive-text-update...
cheers -ben