|
Class: ValueHolder
Object
|
+--Model
|
+--ValueModel
|
+--ValueHolder
|
+--BooleanValueHolder
|
+--BufferedValueHolder
|
+--RadioButtonGroup
|
+--RangeAdaptor
|
+--SelectionInList
|
+--TriggerValue
|
+--ValueHolderWithRememberedPreviousValue
|
+--ValueHolderWithWeakDependents
- Package:
- stx:libview2
- Category:
- Interface-Support-Models
- Version:
- rev:
1.23
date: 2017/02/22 18:06:25
- user: cg
- file: ValueHolder.st directory: libview2
- module: stx stc-classLibrary: libview2
- Author:
- Claus Gittinger
A valueHolder can be used as a model for editFields, buttons etc.
It stores some value internally, and sends update messages to its
dependents when changed.
Notice:
this class was implemented using protocol information
from alpha testers - it may not be complete or compatible to
the corresponding ST-80 class.
If you encounter any incompatibilities, please forward a note
describing the incompatibility verbal (i.e. no code) to the ST/X team.
instance creation
-
newBoolean
-
return a new ValueHolder holding false as initial value
-
newFraction
-
return a new ValueHolder holding 0.0 as initial value.
The name is somewhat missleading - actually it should be called newFloat.
-
newNumber
-
return a new ValueHolder holding 0 as initial value
-
newString
-
return a new ValueHolder holding an empty string as initial value
-
with: anObject
-
return a new ValueHolder holding anObject as initial value
accessing
-
setValue: anObject
-
set my value without notification.
-
value
-
return my value
printing & storing
-
displayOn: aGCOrStream
-
Compatibility
append a printed desription on some stream (Dolphin, Squeak)
OR:
display the receiver in a graphicsContext at 0@0 (ST80).
This method allows for any object to be displayed in some view
(although the fallBack is to display its printString ...)
-
printOn: aStream
-
return a string for display in inspectors etc.
See many examples in DialogBox & EditField
edit strings:
|firstName lastName dialog|
firstName := ValueHolder newString.
lastName := ValueHolder newString.
dialog := Dialog new.
(dialog addTextLabel:'Name:') adjust:#left.
dialog addInputFieldOn:firstName.
dialog addVerticalSpace.
(dialog addTextLabel:'Address:') adjust:#left.
dialog addInputFieldOn:lastName.
dialog addAbortButton; addOkButton.
dialog open.
dialog accepted ifTrue:[
Transcript show:firstName value; show:' '; showCR:lastName value
]
|
|