[Squeak-ja: 2912] Re: PluggableTextMorphについて
Thoru Yamamoto
tango @ eggegg.co.jp
2006年 4月 7日 (金) 17:08:15 JST
やまもとです。
> PluggableTextMorphをキャンセルするため、
> 左上に×印のマークがありますが、
どうやらPluggableListとウィンドウ(SystemWindow)を
混同されているのでわ?
で、久保さんの投稿をきっかけに
おいらもPluggableListがよくわからんちんで
いままでなかなか使えなかったのですが
これをきっかけに再お勉強、再トライしてみますた。
左がサブクラスを表示するPluggableListMorphで
右ペインが左ペインで選択したクラスのメソッドを表示する
PluggableTextMorphでする。
それらをSystemWindowにaddMorphしています。
TestWindow new initialize openAViewOnMe
でWindowがひらくです。
とりあえず思ったとおりにはどうさしているのですが
問題がありましたらごめん。<ご指摘大歓迎。
ここにソースコード書くの勇気いりまする・・・・(汗)
以下ソースコード。
'From Squeakland.396-Nihongo7.29 of 18 March 2005 [latest update: #100] on 7
April 2006 at 4:55:52 pm'!
Object subclass: #TestWindow
instanceVariableNames: 'list selectedIndex contents'
classVariableNames: ''
poolDictionaries: ''
category: 'ThoruTest'!
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:04'!
contents
^ contents! !
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'!
initialize
list _ (Collection withAllSubclasses collect: [ :each | each name])
asSortedCollection: [ :a :b | a = b].
selectedIndex _ 1.! !
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'!
list
^list! !
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'!
listIndex
^selectedIndex! !
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/6/2006 00:23'!
listIndex: anInteger
selectedIndex _ anInteger.
contents _ (Smalltalk at: (list at: selectedIndex)) organization
allMethodSelectors asString.
self changed: #listIndex.
self changed: #contents! !
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:12'!
listMenu: aMenu
| targetClass differentMenu className |
className _ list
at: selectedIndex
ifAbsent: [
^aMenu add: 'nothing selected' target: self selector: #beep
].
targetClass _ Smalltalk
at: className
ifAbsent: [
^aMenu add: 'that class is history!!!!' target: self selector: #beep
].
differentMenu _ DumberMenuMorph new.
differentMenu
add: 'browse' target: targetClass selector: #browse;
add: 'inspect' target: targetClass selector: #inspect;
add: 'explore' target: targetClass selector: #explore.
^ differentMenu! !
!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:16'!
openAViewOnMe
| window aListMorph aTextMorph |
aListMorph _ PluggableListMorph
on: self
list: #list
selected: #listIndex
changeSelected: #listIndex:
menu: #listMenu:.
aListMorph color: Color white.
aTextMorph _ PluggableTextMorph
on: self
text: #contents
accept: #acceptContents
readSelection: nil
menu: nil.
window _ SystemWindow labelled: 'ThoruTest'.
window
color: Color white;
setWindowColor: (Color r: 0.645 g: 0.645 b: 1.0);
addMorph: aListMorph
frame: (0 @ 0 corner: 0.3 @ 1);
addMorph: aTextMorph
frame: (0.3 @ 0 corner: 1 @ 1).
window extent: 400 @ 200.
^ window openInHand
!
]style[(13 399 104 100)f2b,f2,f4,f2! !
-------------------------------
Thoru Yamamoto
mail : tango @ eggegg.co.jp
www: http://www.thoruman.com
-------------------------------
Squeak-ja メーリングリストの案内