UserConfirmation.st
author Stefan Vogel <sv@exept.de>
Wed, 02 May 2007 12:52:12 +0200
changeset 10536 d1da7d71bcf5
parent 10518 f2717d1ae95d
child 10845 948ce25c5209
permissions -rw-r--r--
Put additionalDefinitions before localIncludes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10518
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
UserNotification subclass:#UserConfirmation
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'canCancel'
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	category:'Kernel-Exceptions'
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
!UserConfirmation methodsFor:'accessing'!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
aspect
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
    "the aspect the user is asked. Set this to a symbol. 
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
     It can be used by a exception handler"
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
    ^ parameter
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
aspect:aSymbol
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
    "the aspect the user is asked. Set this to a symbol. 
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
     It can be used by a exception handler"
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
    parameter := aSymbol
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    25
!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
canCancel
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
    "answer true, if the user is allowed to press the cancel button
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
     in a confirmation dialog"
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
    ^ canCancel ? false
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
canCancel:something
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
    canCancel := something.
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
! !
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
!UserConfirmation methodsFor:'default actions'!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
defaultAction
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
    "Default action for confirmations: open a info box with description.
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
     If no GUI present, assume that the user pressed 'yes'"
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
    |text|
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
    text := self description.
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
    self hasDialog ifTrue:[
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
        self canCancel ifTrue:[
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
            ^ Dialog confirmWithCancel:text
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
        ] ifFalse:[
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
            ^ Dialog confirm:text
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
        ].
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
    ].
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
    "
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
     on systems without GUI, simply show
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
     the message on the Transcript and assume, that he would have typed 'yes'.
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
    "
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
    self canCancel ifTrue:[    
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
        Transcript show:'User confirmation requested (assuming cancel): '; showCR:text.
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
        ^ nil
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
    ] ifFalse:[
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
        Transcript show:'User confirmation requested (assuming yes): '; showCR:text.
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
        ^ true
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
    ].
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    69
    "
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
      UserConfirmation raiseRequestErrorString:'Please click yes or no!!'
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
    "
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
! !
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    74
!UserConfirmation class methodsFor:'documentation'!
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    75
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    76
version
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    77
    ^ '$Header: /cvs/stx/stx/libbasic/UserConfirmation.st,v 1.1 2007-04-16 13:44:06 stefan Exp $'
f2717d1ae95d initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    78
! !