Moka-Examples.st 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. (MKCheckboxView model: self counter aspect: #checked)
  14. render.
  15. (MKButtonView model: self counter aspect: #decrease)
  16. label: 'Decrease';
  17. render
  18. !
  19. counter
  20. ^ counter ifNil: [ counter := MKCounterModel new ]
  21. ! !
  22. !MKCounterBuilder class methodsFor: 'initialization'!
  23. initialize
  24. self new build
  25. ! !
  26. MKModel subclass: #MKCounterModel
  27. instanceVariableNames: 'count text checked'
  28. package: 'Moka-Examples'!
  29. !MKCounterModel methodsFor: 'actions'!
  30. checked
  31. ^ checked ifNil: [ false ]
  32. !
  33. checked: aBoolean
  34. checked := aBoolean.
  35. self changed: 'checked'
  36. !
  37. count
  38. ^ count asString
  39. !
  40. decrease
  41. count := count - 1.
  42. self changed: #count
  43. !
  44. increase
  45. count := count + 1.
  46. self changed: #count
  47. !
  48. text
  49. ^ text ifNil: [ '' ]
  50. !
  51. text: aString
  52. text := aString.
  53. self changed: 'text'
  54. ! !
  55. !MKCounterModel methodsFor: 'initialization'!
  56. initialize
  57. super initialize.
  58. count := 0
  59. ! !