プログラム断片(2009/05/05)

for VisualWorks 7.6 with Jun776

まず、次のメッセージ式(プログラム)をワークスペースなどで実行してください。

| aString aURL aDirectory aFilename |
aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Programs/VisualWorks/20090505/Patch_for_JunTextMedia_in_Jun793.st'.
aURL := JunURL named: aString.
aURL exists ifFalse: [^nil].
aDirectory := Filename defaultDirectory construct: 'Downloads'.
aDirectory exists ifFalse: [aDirectory makeDirectory].
aFilename := aDirectory construct: aURL asURI tail.
aURL downloadTo: aFilename.
aFilename exists ifFalse: [^nil].
aFilename fileIn

テキスト(文章)をダウンロードして開く

| aString aURL aDirectory aFilename |
aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/Takenoko.txt'.
aURL := JunURL named: aString.
aURL exists ifFalse: [^nil].
aDirectory := Filename defaultDirectory construct: 'Downloads'.
aDirectory exists ifFalse: [aDirectory makeDirectory].
aFilename := aDirectory construct: aURL asURI tail.
aURL downloadTo: aFilename.
aFilename exists ifFalse: [^nil].
JunTextMedia openFile: aFilename
TextWoDownloadShiteHiraku

イメージ(画像)をダウンロードして開く

| aString aURL aDirectory aFilename |
aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/Takenoko.jpg'.
aURL := JunURL named: aString.
aURL exists ifFalse: [^nil].
aDirectory := Filename defaultDirectory construct: 'Downloads'.
aDirectory exists ifFalse: [aDirectory makeDirectory].
aFilename := aDirectory construct: aURL asURI tail.
aURL downloadTo: aFilename.
aFilename exists ifFalse: [^nil].
JunImageDisplayModel openFile: aFilename
ImageWoDownloadShiteHiraku

ムービー(映像)をダウンロードして開く

| aString aURL aDirectory aFilename |
aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/Takenoko.mov'.
aURL := JunURL named: aString.
aURL exists ifFalse: [^nil].
aDirectory := Filename defaultDirectory construct: 'Downloads'.
aDirectory exists ifFalse: [aDirectory makeDirectory].
aFilename := aDirectory construct: aURL asURI tail.
aURL downloadTo: aFilename.
aFilename exists ifFalse: [^nil].
JunQuickTimeMovie openFile: aFilename
MovieWoDownloadShiteHiraku

サウンド(音楽)をダウンロードして開く

| aString aURL aDirectory aFilename |
aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/Takenoko.mp3'.
aURL := JunURL named: aString.
aURL exists ifFalse: [^nil].
aDirectory := Filename defaultDirectory construct: 'Downloads'.
aDirectory exists ifFalse: [aDirectory makeDirectory].
aFilename := aDirectory construct: aURL asURI tail.
aURL downloadTo: aFilename.
aFilename exists ifFalse: [^nil].
JunQuickTimeMovie openFile: aFilename
SoundWoDownloadShiteHiraku

ボディ(立体)をダウンロードして開く

| aString aURL aDirectory aFilename |
aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/Takenoko.lst'.
aURL := JunURL named: aString.
aURL exists ifFalse: [^nil].
aDirectory := Filename defaultDirectory construct: 'Downloads'.
aDirectory exists ifFalse: [aDirectory makeDirectory].
aFilename := aDirectory construct: aURL asURI tail.
aURL downloadTo: aFilename.
aFilename exists ifFalse: [^nil].
JunOpenGLDisplayModel openFile: aFilename
BodyWoDownloadShiteHiraku

合わせてみると…(手続き的なプログラム)

#('Takenoko.txt' 'Takenoko.jpg' 'Takenoko.mov' 'Takenoko.mp3' 'Takenoko.lst')
    do:
        [:each | 
        | aString aURL aDirectory aFilename |
        aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/' , each.
        aURL := JunURL named: aString.
        aURL exists ifFalse: [^nil].
        aDirectory := Filename defaultDirectory construct: 'Downloads'.
        aDirectory exists ifFalse: [aDirectory makeDirectory].
        aFilename := aDirectory construct: aURL asURI tail.
        aURL downloadTo: aFilename.
        aFilename exists ifFalse: [^nil].
        aFilename extension = '.txt'
            ifTrue: [JunTextMedia openFile: aFilename].
        aFilename extension = '.jpg'
            ifTrue: [JunImageDisplayModel openFile: aFilename].
        aFilename extension = '.mov'
            ifTrue: [JunQuickTimeMovie openFile: aFilename].
        aFilename extension = '.mp3'
            ifTrue: [JunQuickTimeMovie openFile: aFilename].
        aFilename extension = '.lst'
            ifTrue: [JunOpenGLDisplayModel openFile: aFilename]]

次のようにすると…(オブジェクト指向プログラム)

#('Takenoko.txt' 'Takenoko.jpg' 'Takenoko.mov' 'Takenoko.mp3' 'Takenoko.lst') 
    do: 
        [:each | 
        | aString aMedia |
        aString := 'http://www.cc.kyoto-su.ac.jp/~atsushi/Media/Takenoko/' , each.
        aMedia := JunMultiMedia named: aString.
        aMedia show]

for VisualWorks 7.6 with Jun776


Updated: 2015/11/08 (Created: 2008/05/05) KSU AokiHanko