Thread Rating:
  • 476 Vote(s) - 2.84 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Curl Sonntagのイベントハンドリング処理について
08-17-2011, 08:03 PM,
#5
RE: Curl Sonntagのイベントハンドリング処理について
Sonntagは比較的シンプルな画面やUIの標準ががっちり固まっている画面を量産するような、伝統的な(?)業務アプリケーション開発で使われることを想定したフレームワークです。(逆に少数の画面で複雑なUIを実現するようなアプリケーションの開発には向いていません。例えばGoogleカレンダーみたいなのを作るにはSonntagは全然嬉しくない)

こういったアプリケーションの開発だと、Sonntag以外にもそれ固有の標準や共通仕様を実現するためのさまざまなライブラリ(共通部品とかカスタムコントロールとか呼び方はいろいろ)を用意していくと思います。そしてそれらを使って「アプリケーションロジック」を組み立てていく。


具体的なイベントやイベントターゲットに依存するような処理は、SonntagではアプリケーションロジックではなくUIの詳細だと考えて、スクリーンコマンドで無理やり実装させることは想定していません。そういった処理はたいてい、ライブラリコード側に組み込まれる方が好ましいと思われるからです。

例えば、
・○○画面の××ボタンが押された場合・・・を行う
・△△画面の□□メニューが選択された場合・・・を行う

というような処理と、

・xxにキーフォーカスがあるときにyyキーが押された場合にxxを・・・する
・aaのオブジェクトをbbにドラッグ&ドロップした場合にbbを・・・する

のような処理では粒度がまったく異なるので、これらに同じ作り方をさせなくても問題ないでしょう。
前者はSonntagのスクリーンコマンドで実装し、後者はライブラリコード側なりで(Sonntagを使わない)それぞれに適切な作り方を選択することになると思います。

define-screen-command で Event や EventTarget に直接依存させないようになっているのは一応意図した結果です。
(それらが必要なら素直に on マクロを使う)

ただし、特定のイベント発生時にスクリーンコマンドを実行したいというケースは多々考えられます。
(例えば PasswordField で Enter キーを押したらログインボタンと同じコマンドを実行したい、など)

こういった場合は以下のような記述が可能です。

Code:
{PasswordField
    {bind-screen-command "login" on Action}
}

ちなみにこれは以下のコードと同等です。参考まで

Code:
{PasswordField
    {on Action at v:Visual do
        {if-non-null screen = v.screen then
            {screen.do-command
                "login",
                throw-exception-on-failure? = false
            }
        }
    }
}


Messages In This Thread
RE: Curl Sonntagのイベントハンドリング処理について - by fukuta - 08-17-2011, 08:03 PM

Possibly Related Threads...
Thread Author Replies Views Last Post
  Curl execute Oracle database procedure NamDH 3 4,054 04-21-2017, 03:40 PM
Last Post: tdeng
  TLS通信下でCould not deserialize the object from Curl.発生 MIT 3 4,767 03-10-2017, 08:35 AM
Last Post: MIT
  Protecting SSL private key in a Curl script aensys 1 2,363 02-10-2017, 02:02 PM
Last Post: heavybugtracker
  curl library 7.36.0: curl_easy_perform() function call failed when used for getting a joezhao 1 3,632 10-19-2016, 09:41 AM
Last Post: dyoshida
  Curl IDE からのランチャが見つかりません umemura 1 3,771 06-30-2016, 10:12 AM
Last Post: umemura
  Curl RTE Install smtit 1 2,738 05-06-2016, 12:36 PM
Last Post: dice256
  Curl RTE Command line smtit 1 2,917 04-19-2016, 09:35 AM
Last Post: dice256
  What OS that CURL can support for deloyment? tiennv 1 4,574 08-22-2015, 02:12 AM
Last Post: tdeng
  Curl RTEのPPAPIプラグインについて でり 1 4,398 06-09-2015, 11:03 AM
Last Post: でり
  cURL Client app Michael-2015 1 3,852 04-16-2015, 12:27 PM
Last Post: dyoshida
Forum Jump:


Users browsing this thread:
2 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('208')