You could also have a look at ZnClientTests>>#testProgress where Notification 
are used, try the example in the comment. But that is probably not what you are 
looking for.

> On 5 Feb 2017, at 20:32, Yuriy Tymchuk <[email protected]> wrote:
> 
> This is a really nice solution for STON, thank you!
> 
> But in general terms, imagine I have some task and it’s not the trivial to 
> add a progress bar. I could spawn a string morph and make circle the digits 
> with some interval, but maybe there is something easier. For example Kommiter 
> had a spinner morph that you could just open and it would be spinning. So 
> when you run a task you can easily see that the task is still running
> 
> Uko
> 
>> On 5 Feb 2017, at 20:01, Sven Van Caekenberghe <[email protected]> wrote:
>> 
>> A bit off topic, but I would do the STON writing as follows:
>> 
>> [
>> (FileLocator temp / 'file.ston') writeStreamDo: [ :out |
>> (STON writer on: out) in: [ :stonWriter |
>>   30 timesRepeat: [ 
>>     stonWriter nextPut: Smalltalk allClasses ] ] ].
>> ] timeToRun. "0:00:00:02.176"
>> 
>> But in light of alternative streams and some optimisation, this works too:
>> 
>> [
>> | file |
>> file := (File named: '/tmp/file.ston') openForWrite.
>> [ 
>> ZnBufferedWriteStream on: (ZnCharacterWriteStream on: file) do: [ :out | 
>>   (STON writer on: out) in: [ :stonWriter |
>>     30 timesRepeat: [ 
>>       stonWriter nextPut: Smalltalk allClasses ] ] ] 
>> ] ensure: [ file close ].
>> ] timeToRun. "0:00:00:00.385"
>> 
>> Which is faster.
>> 
>> Total file size is ~1.2MB.
>> 
>> BTW, we need #readStreamDo: and #writeStreamDo: on File I think, as it 
>> encourages proper resource management.
>> 
>>> On 5 Feb 2017, at 19:16, Henrik Nergaard <[email protected]> wrote:
>>> 
>>> http://smalltalkhub.com/#!/~Latsabben/GafletFremgangFremviser
>>> 
>>> ---------------------
>>> | ston file|
>>> 
>>> ston := (1 to: 30) flatCollect: [:ix |STON toStringPretty: Smalltalk 
>>> allClasses].
>>> file := (FileStream fileNamed: 'file.ston').
>>> 
>>> ston whileDisplayingProgress
>>>     action: [ :stream | file nextPutAll: stream ] whenDone: [ file close ];
>>>     open;
>>>     fillOwner
>>> ---------------------
>>> 
>>> Best regards,
>>> Henrik
>>> 
>>> -----Opprinnelig melding-----
>>> Fra: Pharo-dev [mailto:[email protected]] På vegne av Yuriy 
>>> Tymchuk
>>> Sendt: 05 February 2017 16:56
>>> Til: Pharo Development List <[email protected]>
>>> Emne: [Pharo-dev] How can I create a trivial "spinner" etc, to see if image 
>>> is busy?
>>> 
>>> Hi all,
>>> 
>>> is there an easy was to do some thing that is constantly changing? so if my 
>>> image freezes (to export a 1gb ston file for example) I can see when it’s 
>>> done.    Or maybe there is a way to send a mac notification from Pharo?
>>> 
>>> Cheers.
>>> Uko
>> 
>> 
> 
> 


Reply via email to