ProgressNotification.st
author Claus Gittinger <cg@exept.de>
Fri, 15 Jun 2018 10:54:35 +0200
changeset 5816 7876c07931a7
parent 5715 7af87f717f65
child 6187 285169601f27
permissions -rw-r--r--
#DOCUMENTATION by cg class: ComboListView class comment/format in: #documentation

"{ Encoding: utf8 }"

"
 COPYRIGHT (c) 2008 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libwidg2' }"

"{ NameSpace: Smalltalk }"

ActivityNotification subclass:#ProgressNotification
	instanceVariableNames:'statusInfo'
	classVariableNames:''
	poolDictionaries:''
	category:'Kernel-Exceptions-Notifications'
!

!ProgressNotification class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2008 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    This should be used in long-going activities to tell the caller about any
    progress (percentage).
    Being a notification, it will be ignored if no one is interested.
    If someone is interested, the caller may present this information as a progress-bar,
    percentage display or whatever is useful in the UI.
    Examples are:
        http-requests, ftp requests, long lint checks etc.

    See examples (look for references to this class) on how this is used.

     ProgressNotification handle:[:ex |
        Transcript showCR:(ex progressValue rounded).
        ex proceed.
     ] do:[
         #(0 1 2 3 4 5 6 6 7 8 9)
             do:[:i| Delay waitForMilliseconds: 50]
             displayingProgress: 'Progress'
     ].

"
! !

!ProgressNotification class methodsFor:'notification'!

notify:message progress:aPercentageNumber
    ^ self new
        messageText: message;
        parameter: aPercentageNumber;
        raiseRequest

    "Created: / 31-07-2012 / 16:13:54 / cg"
!

progressPercentage:aPercentageNumber
    ^ self basicNew
        raiseRequestWith:aPercentageNumber 
        in:thisContext sender

    "Modified: / 23-02-2017 / 16:51:52 / cg"
!

progressPercentage:aPercentageNumber statusInfo:statusInfo
    ^ self basicNew
        statusInfo:statusInfo;
        raiseRequestWith:aPercentageNumber 
        in:thisContext sender

    "Created: / 23-02-2017 / 16:52:11 / cg"
! !

!ProgressNotification methodsFor:'accessing'!

progressValue
    "answer the parameter that was passed to the notification requrest
     as percentage parameter"

    ^ parameter
!

statusInfo
    "any additional info (opaque to me)"
    
    ^ statusInfo
!

statusInfo:something
    "any additional info (opaque to me)"

    statusInfo := something.
! !

!ProgressNotification class methodsFor:'documentation'!

version
    ^ '$Header$'
! !