[Pharo-project] Nested progress bars
Hi all. Given the next code, could you explain me why nested progress bars are not handled by my #on:do:? How can I achieve that? [ 'main task' displayProgressFrom: 0 to: 5 during: [ :bar | 0 to: 5 do: [:x | bar value: x. (Delay forMilliseconds: 200) wait. 'nested task ' , x printString displayProgressFrom: 5 to: 10 during: [ :bar2 | 5 to: 10 do: [:x2 | bar2 value: x2. (Delay forMilliseconds: 200) wait] ] ] ] ] on: ProgressInitiationException do: [ :ex | ex sendNotificationsTo: [ :min :max :curr | self traceCr: curr ] ]. Thanks in advance. MartÃn
I didn't mention that my question comes from trying and finding bugs in the method BlockClosure>>silentlyValue, in Pharo 2.0 (should be in 1.4 also): silentlyValue "evaluates the receiver but avoiding progress bar notifications to show up." ^[ self value ] on: ProgressInitiationException do: [ :ex | ex sendNotificationsTo: [ :min :max :curr | self traceCr: min printString,' ',max printString,' ',curr printString; cr ]. ]. ----> "; cr" has to be removed from code. After this easy fix, the other bug makes visible: #silentlyValue is not that silently with nested progress bars. Try: [ 'main task' displayProgressFrom: 0 to: 5 during: [ :bar | 0 to: 5 do: [:x | bar value: x. (Delay forMilliseconds: 200) wait. 'nested task ' , x printString displayProgressFrom: 5 to: 10 during: [ :bar2 | 5 to: 10 do: [:x2 | bar2 value: x2. (Delay forMilliseconds: 200) wait] ] ] ]. ] silentlyValue. Cheers. MartÃn On Tue, May 8, 2012 at 12:28 AM, Martin Dias <tinchodias@gmail.com> wrote:
Hi all.
Given the next code, could you explain me why nested progress bars are not handled by my #on:do:? How can I achieve that?
[ 'main task' Â Â Â Â displayProgressFrom: 0 to: 5 Â Â Â Â during: [ :bar | Â Â Â Â Â Â Â Â 0 to: 5 do: [:x | bar value: x. Â Â Â Â Â Â Â Â (Delay forMilliseconds: 200) wait.
        'nested task ' , x printString             displayProgressFrom: 5 to: 10             during: [ :bar2 |                 5 to: 10 do: [:x2 | bar2 value: x2.                 (Delay forMilliseconds: 200) wait] ] ] ]
]    on: ProgressInitiationException     do: [ :ex |         ex sendNotificationsTo: [ :min :max :curr |             self traceCr: curr ] ].
Thanks in advance. MartÃn
Hi martin can you open a bug entry? Stef
I didn't mention that my question comes from trying and finding bugs in the method BlockClosure>>silentlyValue, in Pharo 2.0 (should be in 1.4 also):
silentlyValue "evaluates the receiver but avoiding progress bar notifications to show up."
^[ self value ] on: ProgressInitiationException do: [ :ex | ex sendNotificationsTo: [ :min :max :curr | self traceCr: min printString,' ',max printString,' ',curr printString; cr ]. ].
----> "; cr" has to be removed from code. After this easy fix, the other bug makes visible: #silentlyValue is not that silently with nested progress bars. Try:
[ 'main task' displayProgressFrom: 0 to: 5 during: [ :bar | 0 to: 5 do: [:x | bar value: x. (Delay forMilliseconds: 200) wait.
'nested task ' , x printString displayProgressFrom: 5 to: 10 during: [ :bar2 | 5 to: 10 do: [:x2 | bar2 value: x2. (Delay forMilliseconds: 200) wait] ] ] ].
] silentlyValue.
Cheers. MartÃn
On Tue, May 8, 2012 at 12:28 AM, Martin Dias <tinchodias@gmail.com> wrote:
Hi all.
Given the next code, could you explain me why nested progress bars are not handled by my #on:do:? How can I achieve that?
[ 'main task' displayProgressFrom: 0 to: 5 during: [ :bar | 0 to: 5 do: [:x | bar value: x. (Delay forMilliseconds: 200) wait.
'nested task ' , x printString displayProgressFrom: 5 to: 10 during: [ :bar2 | 5 to: 10 do: [:x2 | bar2 value: x2. (Delay forMilliseconds: 200) wait] ] ] ]
] on: ProgressInitiationException do: [ :ex | ex sendNotificationsTo: [ :min :max :curr | self traceCr: curr ] ].
Thanks in advance. MartÃn
participants (2)
-
Martin Dias -
Stéphane Ducasse