12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- Smalltalk current createPackage: 'Moka-Examples'!
- Object subclass: #MKCounterBuilder
- instanceVariableNames: 'counter'
- package: 'Moka-Examples'!
- !MKCounterBuilder methodsFor: 'accessing'!
- build
- (MKLabelView model: self counter aspect: #count) render.
- (MKButtonView model: self counter aspect: #increase)
- label: 'Increase';
- render.
- (MKInputView model: self counter aspect: #text)
- render.
- (MKCheckboxView model: self counter aspect: #checked)
- render.
- (MKButtonView model: self counter aspect: #decrease)
- label: 'Decrease';
- render
- !
- counter
- ^ counter ifNil: [ counter := MKCounterModel new ]
- ! !
- !MKCounterBuilder class methodsFor: 'initialization'!
- initialize
- self new build
- ! !
- MKModel subclass: #MKCounterModel
- instanceVariableNames: 'count text checked'
- package: 'Moka-Examples'!
- !MKCounterModel methodsFor: 'actions'!
- checked
- ^ checked ifNil: [ false ]
- !
- checked: aBoolean
- checked := aBoolean.
- self changed: 'checked'
- !
- count
- ^ count asString
- !
- decrease
- count := count - 1.
- self changed: #count
- !
- increase
- count := count + 1.
- self changed: #count
- !
- text
- ^ text ifNil: [ '' ]
- !
- text: aString
- text := aString.
- self changed: 'text'
- ! !
- !MKCounterModel methodsFor: 'initialization'!
- initialize
- super initialize.
- count := 0
- ! !
|