ConvertedValue.st
author Claus Gittinger <cg@exept.de>
Sat, 11 Nov 1995 17:05:49 +0100
changeset 114 e577a2f332d0
parent 96 948318b2fbd4
child 258 9d218cd753c0
permissions -rw-r--r--
uff - version methods changed to return stings

'From Smalltalk/X, Version:2.10.7 on 24-aug-1995 at 8:28:49'                    !

ValueHolder subclass:#ConvertedValue
	 instanceVariableNames:'conversion'
	 classVariableNames:''
	 poolDictionaries:''
	 category:'Interface-Support-Channels'
!

!ConvertedValue class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libview2/ConvertedValue.st,v 1.3 1995-11-11 16:04:22 cg Exp $'
!

documentation
"
    a ConvertedValue translates changes on input via a conversion block
    to the output. For example, if you want to have a toggle to change the
    color inputs of some other labels, use a convertedValue which translates
    true/false into colors:

	|toggle label converter|

	converter := ConvertedValue new
			conversion:[:input | input == true
						ifTrue:[Color red]
						ifFalse:[Color blue]];
			value:false.
        

	toggle := Toggle label:'change color'.
	toggle controller pressChannel:converter.

	label := Label label:'see me changing'.
	label foregroundChannel:converter.

	toggle open.
	label open.
"
!

examples
"
    examples to be added.
"
! !

!ConvertedValue methodsFor:'accessing'!

conversion:aBlock 
    conversion := aBlock
!

initialValue:someValue
    self value:someValue
!

value:input
    ^ super value:(conversion value:input)
! !