ConvertedValue.st
author Claus Gittinger <cg@exept.de>
Sun, 29 Oct 1995 20:36:22 +0100
changeset 109 9e1383121df4
parent 96 948318b2fbd4
child 114 e577a2f332d0
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
90
claus
parents:
diff changeset
     1
'From Smalltalk/X, Version:2.10.7 on 24-aug-1995 at 8:28:49'                    !
claus
parents:
diff changeset
     2
claus
parents:
diff changeset
     3
ValueHolder subclass:#ConvertedValue
claus
parents:
diff changeset
     4
	 instanceVariableNames:'conversion'
claus
parents:
diff changeset
     5
	 classVariableNames:''
claus
parents:
diff changeset
     6
	 poolDictionaries:''
claus
parents:
diff changeset
     7
	 category:'Interface-Support-Channels'
claus
parents:
diff changeset
     8
!
claus
parents:
diff changeset
     9
claus
parents:
diff changeset
    10
!ConvertedValue class methodsFor:'documentation'!
claus
parents:
diff changeset
    11
claus
parents:
diff changeset
    12
version
claus
parents:
diff changeset
    13
"
96
claus
parents: 90
diff changeset
    14
$Header: /cvs/stx/stx/libview2/ConvertedValue.st,v 1.2 1995-08-29 17:43:25 claus Exp $
90
claus
parents:
diff changeset
    15
"
claus
parents:
diff changeset
    16
!
claus
parents:
diff changeset
    17
claus
parents:
diff changeset
    18
documentation
claus
parents:
diff changeset
    19
"
claus
parents:
diff changeset
    20
    a ConvertedValue translates changes on input via a conversion block
claus
parents:
diff changeset
    21
    to the output. For example, if you want to have a toggle to change the
claus
parents:
diff changeset
    22
    color inputs of some other labels, use a convertedValue which translates
claus
parents:
diff changeset
    23
    true/false into colors:
claus
parents:
diff changeset
    24
claus
parents:
diff changeset
    25
	|toggle label converter|
claus
parents:
diff changeset
    26
claus
parents:
diff changeset
    27
	converter := ConvertedValue new
claus
parents:
diff changeset
    28
			conversion:[:input | input == true
claus
parents:
diff changeset
    29
						ifTrue:[Color red]
claus
parents:
diff changeset
    30
						ifFalse:[Color blue]];
claus
parents:
diff changeset
    31
			value:false.
claus
parents:
diff changeset
    32
        
claus
parents:
diff changeset
    33
claus
parents:
diff changeset
    34
	toggle := Toggle label:'change color'.
claus
parents:
diff changeset
    35
	toggle controller pressChannel:converter.
claus
parents:
diff changeset
    36
claus
parents:
diff changeset
    37
	label := Label label:'see me changing'.
claus
parents:
diff changeset
    38
	label foregroundChannel:converter.
claus
parents:
diff changeset
    39
claus
parents:
diff changeset
    40
	toggle open.
claus
parents:
diff changeset
    41
	label open.
claus
parents:
diff changeset
    42
"
claus
parents:
diff changeset
    43
!
claus
parents:
diff changeset
    44
claus
parents:
diff changeset
    45
examples
claus
parents:
diff changeset
    46
"
claus
parents:
diff changeset
    47
    examples to be added.
claus
parents:
diff changeset
    48
"
claus
parents:
diff changeset
    49
! !
claus
parents:
diff changeset
    50
claus
parents:
diff changeset
    51
!ConvertedValue methodsFor:'accessing'!
claus
parents:
diff changeset
    52
claus
parents:
diff changeset
    53
conversion:aBlock 
claus
parents:
diff changeset
    54
    conversion := aBlock
claus
parents:
diff changeset
    55
!
claus
parents:
diff changeset
    56
claus
parents:
diff changeset
    57
initialValue:someValue
claus
parents:
diff changeset
    58
    self value:someValue
claus
parents:
diff changeset
    59
!
claus
parents:
diff changeset
    60
claus
parents:
diff changeset
    61
value:input
claus
parents:
diff changeset
    62
    ^ super value:(conversion value:input)
claus
parents:
diff changeset
    63
! !