1: ================================================================================ 2: 3: Smalltalk.KSU defineClass: #WhatTime 4: superclass: #{UI.ApplicationModel} 5: indexedType: #none 6: private: false 7: instanceVariableNames: 'outputMode showDate showWeekday showSeconds ' 8: classInstanceVariableNames: '' 9: imports: '' 10: category: 'KSU-Template' 11: 12: ================================================================================ 13: 14: KSU.WhatTime method for 'initialize-release' 15: 16: initialize 17: 18: super initialize. 19: outputMode := nil. 20: showDate := nil. 21: showWeekday := nil. 22: showSeconds := nil. 23: ^self 24: 25: ------------------------------------------------------------ 26: 27: KSU.WhatTime method for 'aspects' 28: 29: outputMode 30: 31: outputMode ifNil: [outputMode := 'トランスクリプト' asValue]. 32: ^outputMode 33: 34: ------------------------------------------------------------ 35: 36: KSU.WhatTime method for 'aspects' 37: 38: showDate 39: 40: showDate ifNil: [showDate := false asValue]. 41: ^showDate 42: 43: ------------------------------------------------------------ 44: 45: KSU.WhatTime method for 'aspects' 46: 47: showSeconds 48: 49: showSeconds ifNil: [showSeconds := false asValue]. 50: ^showSeconds 51: 52: ------------------------------------------------------------ 53: 54: KSU.WhatTime method for 'aspects' 55: 56: showWeekday 57: 58: showWeekday ifNil: [showWeekday := false asValue]. 59: ^showWeekday 60: 61: ------------------------------------------------------------ 62: 63: KSU.WhatTime method for 'actions' 64: 65: tellTime 66: "KSU.WhatTime new tellTime." 67: 68: | aTime aDate aStream aString | 69: aTime := Time now. 70: aDate := Date today. 71: aStream := String new writeStream. 72: self showDate value 73: ifTrue: 74: [aStream 75: nextPutAll: aDate year printString; 76: nextPutAll: '年'; 77: nextPutAll: aDate monthIndex printString; 78: nextPutAll: '月'; 79: nextPutAll: aDate dayOfMonth printString; 80: nextPutAll: '日']. 81: self showWeekday value 82: ifTrue: 83: [aStream 84: nextPutAll: '('; 85: nextPutAll: (#('月' '火' '水' '木' '金' '土' '日') at: aDate weekdayIndex); 86: nextPutAll: ')']. 87: aStream 88: nextPutAll: aTime hours printString; 89: nextPutAll: '時'; 90: nextPutAll: aTime minutes printString; 91: nextPutAll: '分'. 92: self showSeconds value 93: ifTrue: 94: [aStream 95: nextPutAll: aTime seconds printString; 96: nextPutAll: '秒']. 97: aString := aStream contents. 98: aStream close. 99: self outputMode value = 'トランスクリプト' 100: ifTrue: 101: [Transcript 102: cr; 103: show: aString] 104: ifFalse: [Dialog warn: aString] 105: 106: ================================================================================ 107: 108: KSU.WhatTime class 109: instanceVariableNames: '' 110: 111: ================================================================================ 112: 113: KSU.WhatTime class method for 'examples' 114: 115: example1 116: "KSU.WhatTime example1." 117: 118: | anApplication | 119: anApplication := KSU.WhatTime new. 120: anApplication open. 121: ^anApplication 122: 123: ------------------------------------------------------------ 124: 125: KSU.WhatTime class method for 'resources' 126: 127: menuBar 128: "Tools.MenuEditor new openOnClass: self andSelector: #menuBar" 129: 130: <resource: #menu> 131: ^#(#{UI.Menu} #( 132: #(#{UI.MenuItem} 133: #rawLabel: 'ファイル' 134: #submenu: #(#{UI.Menu} #( 135: #(#{UI.MenuItem} 136: #rawLabel: '終了' 137: #value: #closeRequest ) ) #(1 ) nil ) ) ) #(1 ) nil ) decodeAsLiteralArray 138: 139: ------------------------------------------------------------ 140: 141: KSU.WhatTime 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} 400 220 ) 152: #max: #(#{Core.Point} 0 0 ) 153: #bounds: #(#{Graphics.Rectangle} 1079 689 1479 909 ) 154: #flags: 4 155: #menu: #menuBar ) 156: #component: 157: #(#{UI.SpecCollection} 158: #collection: #( 159: #(#{UI.ActionButtonSpec} 160: #layout: #(#{Graphics.Rectangle} 120 25 280 56 ) 161: #name: #tellTime 162: #model: #tellTime 163: #label: 'いま何時かしら?' 164: #isDefault: true 165: #defaultable: true ) 166: #(#{UI.CheckBoxSpec} 167: #layout: #(#{Core.Point} 96 81 ) 168: #name: #showDate 169: #model: #showDate 170: #label: '日付' ) 171: #(#{UI.CheckBoxSpec} 172: #layout: #(#{Core.Point} 96 113 ) 173: #name: #showWeekday 174: #model: #showWeekday 175: #label: '曜日' ) 176: #(#{UI.CheckBoxSpec} 177: #layout: #(#{Core.Point} 96 145 ) 178: #name: #showSeconds 179: #model: #showSeconds 180: #label: '秒' ) 181: #(#{UI.RadioButtonSpec} 182: #layout: #(#{Core.Point} 216 97 ) 183: #name: #dialog 184: #model: #outputMode 185: #label: 'ダイアログ' 186: #select: 'ダイアログ' ) 187: #(#{UI.RadioButtonSpec} 188: #layout: #(#{Core.Point} 216 129 ) 189: #name: #transcript 190: #model: #outputMode 191: #label: 'トランスクリプト' 192: #select: 'トランスクリプト' ) ) ) ) 193: 194: ================================================================================
This document was generated by KSU.TextDoclet on 2012/11/10 at 11:02:02.