Eclipse/プラグイン開発のTIPS集/イベントの仕組み
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
//ここにコンテンツを記述します。
SWTやEclipseプラグインのイベントドリブンの仕組みについて...
#contents
***イベントとは [#jff8a7c6]
そのまえに一般的に、GUIプログラミングにおける「イベント」...
-マウスでクリックされた
-値が変わった
-ウィンドウがCloseされた
などの「状態の変化」のことで、「イベント駆動型」の処理と...
***たとえば [#wd5e9c22]
上の例だと
-マウスでクリックしたときに、ダイアログを出す
-値が変わったときに、値チェックをする
-ウィンドウがCloseされたときに、いろいろなりソースを解放...
などがそのイベント駆動型の処理にあたります。
***オブザーバパターン [#l83db791]
で、そのイベント駆動型(イベントドリブン)の処理を実現する...
オブザーバパターンとは
-ある状態を監視するObserver <- ダイアログを出すヤツ
-ある状態を監視されているSubject <- マウスでクリックされ...
があり「Subjectの状態が変化するとObserverのあるメソッドを...
正確にはObserver(s)はあらかじめSubjectに「なんかあったら...
もっと正確には、Observer(s)はあらかじめSubjectに自分を登...
#ref(diagram.png)
ポイントは
-Observerは監視しつつ何かあったら起動するようなことをいっ...
-Subjectは最初に登録されるものの、どの様なObserverが登録...
-つまり何かあったら登録してる奴ら全員に通知する、みたいな...
-こうすることで、たとえば「時計ロジック(Subject)」「アナ...
といったところです。
さて上でメソッド名やinterfaceなどが出てきましたが、まとめ...
-SubjectはObserverを登録するためのメソッドaddObserverをもつ
-Subjectは一般的にフィールドにObserverをListなどで保持し...
-ObserverはSubjectに起動される共通のメソッドをもつ、つま...
-Subject側はしかるべき時に、フィールドのObserverのListか...
***イベントドリブンの処理を実装する [#bafb71d4]
ところで、いわゆるイベントドリブンの実装をするときはObser...
先の話をListenerに置換して繰り返すと
-SubjectはListenerを登録するメソッドSubject#addHogeListen...
-Subjectは一般的にフィールドにListener(s)をListなどで保持...
-Listenerインターフェースを実装するクラスは、Subjectに起...
-Subjectはしかるべき時に、フィールドのListenerのListからL...
となります。なんとなく処理が見えてきましたね。
#ref(diagram2.png)
***イベントクラス [#ke525869]
**SWTでのイベント [#i44fdc5c]
----
この記事は
#vote(おもしろかった[32],そうでもない[3])
-Eclipseの話にはいれねー、じかんがねー -- [[きの]] &new{2...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
//ここにコンテンツを記述します。
SWTやEclipseプラグインのイベントドリブンの仕組みについて...
#contents
***イベントとは [#jff8a7c6]
そのまえに一般的に、GUIプログラミングにおける「イベント」...
-マウスでクリックされた
-値が変わった
-ウィンドウがCloseされた
などの「状態の変化」のことで、「イベント駆動型」の処理と...
***たとえば [#wd5e9c22]
上の例だと
-マウスでクリックしたときに、ダイアログを出す
-値が変わったときに、値チェックをする
-ウィンドウがCloseされたときに、いろいろなりソースを解放...
などがそのイベント駆動型の処理にあたります。
***オブザーバパターン [#l83db791]
で、そのイベント駆動型(イベントドリブン)の処理を実現する...
オブザーバパターンとは
-ある状態を監視するObserver <- ダイアログを出すヤツ
-ある状態を監視されているSubject <- マウスでクリックされ...
があり「Subjectの状態が変化するとObserverのあるメソッドを...
正確にはObserver(s)はあらかじめSubjectに「なんかあったら...
もっと正確には、Observer(s)はあらかじめSubjectに自分を登...
#ref(diagram.png)
ポイントは
-Observerは監視しつつ何かあったら起動するようなことをいっ...
-Subjectは最初に登録されるものの、どの様なObserverが登録...
-つまり何かあったら登録してる奴ら全員に通知する、みたいな...
-こうすることで、たとえば「時計ロジック(Subject)」「アナ...
といったところです。
さて上でメソッド名やinterfaceなどが出てきましたが、まとめ...
-SubjectはObserverを登録するためのメソッドaddObserverをもつ
-Subjectは一般的にフィールドにObserverをListなどで保持し...
-ObserverはSubjectに起動される共通のメソッドをもつ、つま...
-Subject側はしかるべき時に、フィールドのObserverのListか...
***イベントドリブンの処理を実装する [#bafb71d4]
ところで、いわゆるイベントドリブンの実装をするときはObser...
先の話をListenerに置換して繰り返すと
-SubjectはListenerを登録するメソッドSubject#addHogeListen...
-Subjectは一般的にフィールドにListener(s)をListなどで保持...
-Listenerインターフェースを実装するクラスは、Subjectに起...
-Subjectはしかるべき時に、フィールドのListenerのListからL...
となります。なんとなく処理が見えてきましたね。
#ref(diagram2.png)
***イベントクラス [#ke525869]
**SWTでのイベント [#i44fdc5c]
----
この記事は
#vote(おもしろかった[32],そうでもない[3])
-Eclipseの話にはいれねー、じかんがねー -- [[きの]] &new{2...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: