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.