1: ================================================================================
2:
3: Smalltalk defineClass: #MyFirstModel
4: superclass: #{UI.ApplicationModel}
5: indexedType: #none
6: private: false
7: instanceVariableNames: 'rectangles selection '
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 dependents
40: detect: [:aView | (aView isKindOf: MyFirstView) and: [aView topComponent isActive]]
41: ifNone: [nil]) ifNotNil: [:aView | aView controller processKeyboardEvent: event]].
42: super postBuildWith: aBuilder
43:
44: ------------------------------------------------------------
45:
46: MyFirstModel method for 'accessing'
47:
48: rectangles
49:
50: rectangles ifNil: [rectangles := OrderedCollection new].
51: ^rectangles
52:
53: ------------------------------------------------------------
54:
55: MyFirstModel method for 'selecting'
56:
57: selection
58:
59: ^selection
60:
61: ------------------------------------------------------------
62:
63: MyFirstModel method for 'selecting'
64:
65: selection: anIndex
66:
67: selection := anIndex.
68: self changed
69:
70: ================================================================================
71:
72: Smalltalk.MyFirstModel class
73: instanceVariableNames: ''
74:
75: ================================================================================
76:
77: MyFirstModel class method for 'examples'
78:
79: example1
80: "MyFirstModel example1."
81:
82: | aModel |
83: aModel := MyFirstModel new.
84: aModel open.
85: ^aModel
86:
87: ------------------------------------------------------------
88:
89: MyFirstModel class method for 'examples'
90:
91: example2
92: "MyFirstModel example2."
93:
94: | aModel |
95: aModel := MyFirstModel new.
96: aModel addRectangle: (10 @ 10 extent: 100 @ 50).
97: aModel addRectangle: (200 @ 200 extent: 100 @ 50).
98: aModel addRectangle: (350 @ 250 extent: 100 @ 50).
99: aModel open.
100: ^aModel
101:
102: ------------------------------------------------------------
103:
104: MyFirstModel class method for 'examples'
105:
106: example3
107: "MyFirstModel example3."
108:
109: | aModel |
110: aModel := MyFirstModel new.
111: aModel addRectangle: (10 @ 10 extent: 100 @ 50).
112: aModel addRectangle: (200 @ 200 extent: 100 @ 50).
113: aModel addRectangle: (350 @ 250 extent: 100 @ 50).
114: 3 timesRepeat: [aModel open].
115: ^aModel
116:
117: ------------------------------------------------------------
118:
119: MyFirstModel class method for 'resources'
120:
121: menuBar
122: "Tools.MenuEditor new openOnClass: self andSelector: #menuBar"
123:
124: <resource: #menu>
125: ^#(#{UI.Menu} #(
126: #(#{UI.MenuItem}
127: #rawLabel: 'ファイル'
128: #submenu: #(#{UI.Menu} #(
129: #(#{UI.MenuItem}
130: #rawLabel: '終了'
131: #value: #closeRequest ) ) #(1 ) nil ) )
132: #(#{UI.MenuItem}
133: #rawLabel: 'その他'
134: #submenu: #(#{UI.Menu} #(
135: #(#{UI.MenuItem}
136: #rawLabel: '検査'
137: #value: #inspect ) ) #(1 ) nil ) ) ) #(2 ) nil ) decodeAsLiteralArray
138:
139: ------------------------------------------------------------
140:
141: MyFirstModel class method for 'interface specs'
142:
143: windowSpec
144: "Tools.UIPainter new openOnClass: self andSelector: #windowSpec"
145:
146: <resource: #canvas>
147: ^#(#{UI.FullSpec}
148: #window:
149: #(#{UI.WindowSpec}
150: #label: '初めてのアプリケーション'
151: #min: #(#{Core.Point} 200 150 )
152: #max: #(#{Core.Point} 0 0 )
153: #bounds: #(#{Graphics.Rectangle} 1080 570 1480 870 )
154: #flags: 4
155: #menu: #menuBar )
156: #component:
157: #(#{UI.SpecCollection}
158: #collection: #(
159: #(#{UI.ArbitraryComponentSpec}
160: #layout: #(#{Graphics.LayoutFrame} 2 0 2 0 -2 1 -2 1 )
161: #name: #displayView
162: #flags: 11
163: #component: #displayView ) ) ) )
164:
165: ================================================================================
This document was generated by KSU.TextDoclet on 2012/09/19 at 23:48:21.