TypedValueHolder.st
author Claus Gittinger <cg@exept.de>
Tue, 03 Sep 2013 17:23:55 +0200
changeset 3228 187a4158a51a
parent 2786 c4cff3256a0b
permissions -rw-r--r--
class: FlyByHelp changed: #initiateHelpFor:at:now: #showHelp:for: changed the flyBy suppression slightly: if the same text is to be shown again, do not show it except if the help is for another widget. (used to check for the text only previously)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2785
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2009 by Claus Gittinger
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
2786
c4cff3256a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2785
diff changeset
    12
"{ Package: 'stx:libview2' }"
2785
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
ValueHolder subclass:#TypedValueHolder
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	instanceVariableNames:'types'
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'Interface-Support-Models'
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!TypedValueHolder class methodsFor:'documentation'!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
copyright
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
 COPYRIGHT (c) 2009 by Claus Gittinger
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
              All Rights Reserved
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
 This software is furnished under a license and may be used
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 only in accordance with the terms of that license and with the
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 be provided or otherwise made available to, or used by, any
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 other person.  No title to or ownership of the software is
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 hereby transferred.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
documentation
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    this is simply a valueHolder which checks new values against a given type.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    Useful to debug/trap invalid setters (such as those storing a true into a numeric holder)
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    [author:]
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
        Claus Gittinger
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
examples 
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
                                                                        [exBegin]
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
        |v|
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
        v := (TypedValueHolder with:1) type:Number.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
        (Delay forSeconds:3) wait.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        v value:nil.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
                                                                        [exEnd]
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
                                                                        [exBegin]
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
        |v|
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
        v := (TypedValueHolder with:1) types:{UndefinedObject. Number}.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
        (Delay forSeconds:3) wait.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
        v value:nil.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
        (Delay forSeconds:3) wait.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
        v value:'huh'.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
                                                                        [exEnd]
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
"
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
! !
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
!TypedValueHolder methodsFor:'accessing'!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
type:aClass
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    self types:(Array with:aClass)
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
types:aCollectionOfTypes
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    types := aCollectionOfTypes.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
value:newValue
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    types notNil ifTrue:[
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
        (types contains:[:type | newValue isKindOf:type]) ifFalse:[
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
            self error:'Unvalid value stored in typed valueHolder' mayProceed:true
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
        ]
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    ].
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    ^ super value:newValue.
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
! !
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!TypedValueHolder class methodsFor:'documentation'!
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
version_CVS
2786
c4cff3256a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2785
diff changeset
    93
    ^ '$Header: /cvs/stx/stx/libview2/TypedValueHolder.st,v 1.2 2009-11-06 19:24:27 cg Exp $'
2785
381dfb4c8d44 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
! !