[SML 7993] Re: 第40回Smalltalk勉強会@京都
hirowadenden
hirowadenden @ hera.eonet.ne.jp
2012年 2月 3日 (金) 18:56:29 JST
ハンドル名で失礼します、hirowadendenと申します。
yellow button menuからsource dataを切り替える部分を勉強会とは異なる
方法でやってみたので投稿します。
妹尾さん執筆の勉強会ログの5ページの真ん中あたりの
FourierPaneController>>yellowButtonMenu
^nil
を追加するところまでは同じです。
(勉強会ログでは、yellowButtonPressedEventとなっていますが、
yellowButtonMenuですよね?)
そのあとは、以下のFourierPaneModel>>yellowButtonMenuと
Fourier1dModel>>yellowButtonMenuを追加します。
(GUIビルダは使いません)
FourierPaneModel>>yellowButtonMenu
^self application ifNotNil: [:anApplication | anApplication
yellowButtonMenu] ifNil: [super yellowButtonMenu]
Fourier1dModel>>yellowButtonMenu
| labels values |
labels := OrderedCollection new.
values := OrderedCollection new.
(self defaultFourierTransformClass class organization
listAtCategoryNamed: #data) do:
[:aSelector |
| aStream aString |
aStream := String new writeStream.
aSelector asString do:
[:aCharacter |
aCharacter isLowercase
ifTrue: [aStream nextPut: aCharacter]
ifFalse:
[aStream
space;
nextPut: aCharacter]].
aString := aStream contents.
aStream close.
aString := aString copyFrom: (aString findFirst: [:aCharacter |
aCharacter = Character space]) + 1
to: aString size.
labels add: aString.
values add: [self setSourceData: (self defaultFourierTransformClass
perform: aSelector)]].
^Menu labelArray: labels asArray values: values asArray
以上です。
-- hirowadenden
SML メーリングリストの案内