Thread Rating:
  • 252 Vote(s) - 2.88 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Sonntag で別画面(Screen)のイベントを呼ぶ
08-03-2011, 07:44 PM,
#1
Sonntag で別画面(Screen)のイベントを呼ぶ
Sonntag は ある画面(ScreenAとする)で起きるイベント等のロジックは、そのScreenA に関連付けられた Command を呼び出すことで実行できますよね。

しかし、画面を越えてイベントを起こしたい場合はどうすればよいのでしょうか。

たとえば、ScreenA とScreenB がともにScreenX のタブコンテナの中に入っている子オブジェクトだとして、
「ScreenX を閉じる」というイベントが起きたときに、ScreenA とScreenB の値が保存されているか確認して終了処理をしたい、
と言うような場合です。

もちろん、子オブジェクトのインスタンスを保持すれば可能なことは理解できていますが、
直接的な関連付けになるため、あまり気持ちのいい実装と思えません。

あるスクリーンのイベントと、別スクリーンのイベントを関連付ける良い方法はありますでしょうか。


Reply
08-03-2011, 07:54 PM,
#2
RE: Sonntag で別画面(Screen)のイベントを呼ぶ
Sonntag には EventBus という機能があり、スクリーン間の関連付けを担ってくれます。

ヘルプに情報があまりないので見過ごされがちですが、非常に強力な機能を提供してくれます。

Sonntagフレームワークには、イベントバス(EventBus)というトポロジーが存在し、
Sonntag のScreen でインスタンス化したものは、自動的にこのEventBus に関連付けられます。

あるスクリーンからこの EventBus にメッセージを投げると、EventBus は関連付けられているScreenすべてにそのメッセージをブロードキャストします。

イベントを起こしたいScreenにあらかじめどんなメッセージがきたらどんなイベントを起こすかを記述しておけば、
キャストされたメッセージを受け取ったタイミングで、その処理が実行される、と言う形になります。

下記サイトに記事を投稿しました。
参考にしてください

■Sonntag のEventBus について
http://developers.curlap.com/re-referenc...tbus-.html
Reply
08-04-2011, 02:47 AM,
#3
RE: Sonntag で別画面(Screen)のイベントを呼ぶ
(08-03-2011, 07:54 PM)umemura Wrote: An English version of Sonntag-Event-Bus is now also at http://developers.curl.com/docs/DOC-1746
(08-03-2011, 07:54 PM)umemura Wrote: The same is attached below.



Attached Files
.zip   Sontag-event-bus.zip (Size: 42.81 KB / Downloads: 255)
Robert Shiplett, Curlr
Fredericton NB

Canada
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Sonntag MVC without strings or name RobertShiplett 3 4,718 08-09-2011, 01:12 AM
Last Post: RobertShiplett
  Sonntag でCommand を呼び出す umemura 4 4,120 08-02-2011, 09:24 AM
Last Post: fukuta
Forum Jump:


Users browsing this thread:
1 Guest(s)