[SML 7864] Re: インクリメンタル・サーチ・ダイアログ

AOKI Atsushi atsushi @ cc.kyoto-su.ac.jp
2010年 11月 22日 (月) 11:00:43 JST


変数名が適切ではなかったので、再ポストします、あしからず。

こんにちは、皆さん、青木淳@京都上賀茂です。

京都のSmalltalk勉強会において用いたインクリメンタル・サーチ・
ダイアログのプログラミング・イディオムをポストしておきます。

| anArray aBlock aDialog |
anArray := (Smalltalk allClasses
            collect: [:aClass | aClass toolListDisplayString]) asSortedCollection
            anArray.
aBlock :=
        [:aPattern |
        aPattern isEmpty
            ifTrue: [anArray yourself]
            ifFalse: [anArray select: [:anElement | aPattern , '*' match: anElement]]].
aDialog := IncrementalSearchDialog forSelectionWithSearch: aBlock.
^(aDialog select)
    ifNotNil:
            [:anElement |
            Transcript
                cr;
                nextPutAll: anElement printString;
                flush];
    yourself

------------------------------------------------------------
AOKI Atsushi          http://www.cc.kyoto-su.ac.jp/~atsushi/


(10/11/22 10:51), AOKI Atsushi wrote:
> こんにちは、皆さん、青木淳@京都上賀茂です。
> 
> 京都のSmalltalk勉強会において用いたインクリメンタル・サーチ・
> ダイアログのプログラミング・イディオムをポストしておきます。
> 
> | asArray aBlock aDialog |
> asArray := (Smalltalk allClasses
>              collect: [:aClass | aClass toolListDisplayString]) asSortedCollection
>              asArray.
> aBlock :=
>          [:aPattern |
>          aPattern isEmpty
>              ifTrue: [asArray yourself]
>              ifFalse: [asArray select: [:anElement | aPattern , '*' match: anElement]]].
> aDialog := IncrementalSearchDialog forSelectionWithSearch: aBlock.
> ^(aDialog select)
>      ifNotNil:
>              [:anElement |
>              Transcript
>                  cr;
>                  nextPutAll: anElement printString;
>                  flush];
>      yourself
> 
> ------------------------------------------------------------
> AOKI Atsushi          http://www.cc.kyoto-su.ac.jp/~atsushi/




SML メーリングリストの案内