![]() |
[1999 年 7 月号] |
[Happy Squeaking!!]
マルチビューとしてCounterアプリケーションを起動するにあたって便利なユーティリティとなるクラスを作成しましょう。これでワークスペースにビュー起動用のメッセージ群をいちいち書かずに済むようになります。
以下のようにクラス定義を行います。
Object subclass: #CounterLauncher
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'MVC tutorial'
CounterLauncherは、ユーティリティクラスとして、簡単に使えることを考えています。そこでインスタンスをいちいち生成しなくともCounterLauncherが使えるように、クラス操作やクラス属性を追加していくことにします。
まず、クラスインスタンス変数として、counterを定義します。ここにはビューが同時に参照するモデルとしてCounterのインスタンスが入ります。
ブラウザを"class"側に合わせて以下のようにテンプレートに記入し、"accept"します。
CounterLauncher class
instanceVariableNames: 'counter '
次に操作を追加します。(これらもすべて"class"側で行います)
まずは定義したcounterの初期化操作です。
(CounterLauncher class >> class initializationカテゴリ)
initialize
counter := Counter new
アクセス用の操作も定義しましょう。
次に更新受け取りメッセージを作成します。
(CounterLauncher class >> accessingカテゴリ)
counter
^counter
counter: aCounter
counter := aCounter
最後に起動用の操作を定義します。引数としてビューのインスタンスを受け取り、同一モデル(counter)を参照させて起動するようにします。
(CounterLauncher class >> actionsカテゴリ)
launchBy: aCounterView
aCounterView model: self counter.
aCounterView label: aCounterView name.
aCounterView maximumSize: 200 @ 100.
aCounterView minimumSize: 50 @ 30.
aCounterView borderWidth: 5.
aCounterView backgroundColor: Color yellow.
aCounterView controller open.
これで完成です。
FileIn: CounterLauncher.st (<=Click)
| © 1999-2001 OGIS-RI Co., Ltd. |
|