1: ================================================================================
  2: 
  3: Smalltalk defineClass: #MyFirstModel
  4:     superclass: #{UI.ApplicationModel}
  5:     indexedType: #none
  6:     private: false
  7:     instanceVariableNames: 'rectangles '
  8:     classInstanceVariableNames: ''
  9:     imports: ''
 10:     category: ''
 11: 
 12: ================================================================================
 13: 
 14: MyFirstModel method for 'adding'
 15: 
 16: addRectangle: aRectangle
 17: 
 18:     self rectangles add: aRectangle
 19: 
 20: ------------------------------------------------------------
 21: 
 22: MyFirstModel method for 'interface opening'
 23: 
 24: displayView
 25: 
 26:     | aView |
 27:     aView := MyFirstView model: self.
 28:     aView controller: MyFirstController new.
 29:     ^aView
 30: 
 31: ------------------------------------------------------------
 32: 
 33: MyFirstModel method for 'interface opening'
 34: 
 35: postBuildWith: aBuilder
 36: 
 37:     aBuilder keyboardProcessor keyboardHook: 
 38:             [:event :controller |
 39:             (self controllerAt: #displayView)
 40:                 ifNotNil: [:aController | aController processKeyboardEvent: event]].
 41:     super postBuildWith: aBuilder
 42: 
 43: ------------------------------------------------------------
 44: 
 45: MyFirstModel method for 'accessing'
 46: 
 47: rectangles
 48: 
 49:     rectangles ifNil: [rectangles := OrderedCollection new].
 50:     ^rectangles
 51: 
 52: ================================================================================
 53: 
 54: Smalltalk.MyFirstModel class
 55:     instanceVariableNames: ''
 56: 
 57: ================================================================================
 58: 
 59: MyFirstModel class method for 'examples'
 60: 
 61: example1
 62:     "MyFirstModel example1."
 63: 
 64:     | aModel |
 65:     aModel := MyFirstModel new.
 66:     aModel open.
 67:     ^aModel
 68: 
 69: ------------------------------------------------------------
 70: 
 71: MyFirstModel class method for 'examples'
 72: 
 73: example2
 74:     "MyFirstModel example2."
 75: 
 76:     | aModel |
 77:     aModel := MyFirstModel new.
 78:     aModel addRectangle: (10 @ 10 extent: 100 @ 50).
 79:     aModel addRectangle: (200 @ 200 extent: 100 @ 50).
 80:     aModel addRectangle: (350 @ 250 extent: 100 @ 50).
 81:     aModel open.
 82:     ^aModel
 83: 
 84: ------------------------------------------------------------
 85: 
 86: MyFirstModel class method for 'resources'
 87: 
 88: menuBar
 89:     "Tools.MenuEditor new openOnClass: self andSelector: #menuBar"
 90: 
 91:     <resource: #menu>
 92:     ^#(#{UI.Menu} #(
 93:             #(#{UI.MenuItem} 
 94:                 #rawLabel: 'ファイル' 
 95:                 #submenu: #(#{UI.Menu} #(
 96:                         #(#{UI.MenuItem} 
 97:                             #rawLabel: '終了' 
 98:                             #value: #closeRequest ) ) #(1 ) nil ) ) 
 99:             #(#{UI.MenuItem} 
100:                 #rawLabel: 'その他' 
101:                 #submenu: #(#{UI.Menu} #(
102:                         #(#{UI.MenuItem} 
103:                             #rawLabel: '検査' 
104:                             #value: #inspect ) ) #(1 ) nil ) ) ) #(2 ) nil ) decodeAsLiteralArray
105: 
106: ------------------------------------------------------------
107: 
108: MyFirstModel class method for 'interface specs'
109: 
110: windowSpec
111:     "Tools.UIPainter new openOnClass: self andSelector: #windowSpec"
112: 
113:     <resource: #canvas>
114:     ^#(#{UI.FullSpec} 
115:         #window: 
116:         #(#{UI.WindowSpec} 
117:             #label: '初めてのアプリケーション' 
118:             #min: #(#{Core.Point} 200 150 ) 
119:             #max: #(#{Core.Point} 0 0 ) 
120:             #bounds: #(#{Graphics.Rectangle} 1080 570 1480 870 ) 
121:             #flags: 4 
122:             #menu: #menuBar ) 
123:         #component: 
124:         #(#{UI.SpecCollection} 
125:             #collection: #(
126:                 #(#{UI.ArbitraryComponentSpec} 
127:                     #layout: #(#{Graphics.LayoutFrame} 2 0 2 0 -2 1 -2 1 ) 
128:                     #name: #displayView 
129:                     #flags: 11 
130:                     #component: #displayView ) ) ) )
131: 
132: ================================================================================

This document was generated by KSU.TextDoclet on 2012/09/14 at 09:27:11.