Moka-Examples.st 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. Smalltalk current createPackage: 'Moka-Examples'!
  2. Object subclass: #MKCounterBuilder
  3. instanceVariableNames: 'counter'
  4. package: 'Moka-Examples'!
  5. !MKCounterBuilder methodsFor: 'accessing'!
  6. build
  7. (MKLabelView model: self counter aspect: #count) render.
  8. (MKButtonView model: self counter aspect: #increase)
  9. label: 'Increase';
  10. render.
  11. (MKInputView model: self counter aspect: #text)
  12. render.
  13. (MKInputView model: self counter aspect: #text)
  14. triggerChangeOnAnyKey;
  15. render.
  16. (MKTextAreaView model: self counter aspect: #text)
  17. render.
  18. (MKCheckboxView model: self counter aspect: #checked)
  19. render.
  20. (MKSwitchView model: self counter aspect: #checked)
  21. render.
  22. (MKButtonView model: self counter aspect: #decrease)
  23. label: 'Decrease';
  24. render
  25. !
  26. counter
  27. ^ counter ifNil: [ counter := MKCounterModel new ]
  28. ! !
  29. !MKCounterBuilder class methodsFor: 'initialization'!
  30. initialize
  31. self new build
  32. ! !
  33. MKModel subclass: #MKCounterModel
  34. instanceVariableNames: 'count text checked'
  35. package: 'Moka-Examples'!
  36. !MKCounterModel methodsFor: 'actions'!
  37. checked
  38. ^ checked ifNil: [ false ]
  39. !
  40. checked: aBoolean
  41. checked := aBoolean.
  42. self changed: 'checked'
  43. !
  44. count
  45. ^ count asString
  46. !
  47. decrease
  48. count := count - 1.
  49. self changed: #count
  50. !
  51. increase
  52. count := count + 1.
  53. self changed: #count
  54. !
  55. text
  56. ^ text ifNil: [ '' ]
  57. !
  58. text: aString
  59. text := aString.
  60. self changed: 'text'
  61. ! !
  62. !MKCounterModel methodsFor: 'initialization'!
  63. initialize
  64. super initialize.
  65. count := 0
  66. ! !