私はあなたのQooxdooコードを設計する方法を知っていただきたいと思います。Qooxdooデスクトップデザインのベストプラクティス
私は満足している正しい建築を得られません。
ビューをサービスのようなロジックでカプセル化することは難しいです。
誰かが私にパターンや何かに良いヒントを与えるヒントを与えることができることを願っています。
私はあなたのQooxdooコードを設計する方法を知っていただきたいと思います。Qooxdooデスクトップデザインのベストプラクティス
私は満足している正しい建築を得られません。
ビューをサービスのようなロジックでカプセル化することは難しいです。
誰かが私にパターンや何かに良いヒントを与えるヒントを与えることができることを願っています。
Qooxdooの最大の機能の1つは強力なOOクラスシステムです。実際に使用するパターンはあなた次第です.QooxdooのOOシステムはあなたの好みのパターンを実装するツールを提供するので、MVC、MVVCなどがすべて可能ですs)。
特に大きなアプリを作成する際に非常に便利なパターンの1つは、モデルを編集するためのカスタムウィジェットを定義することです。あなたがCustomerEditor
、InvoiceEditor
、InvoiceLineEditor
のためのウィジェットを持つCustomer
、Invoice
、InvoiceLine
、およびAddress
のモデル(別名「ビジネスオブジェクト」など)、などを持っている場合は、コードをカプセル化しているため、だけでなく、それがサポートしているため、例えば、最初に非常に便利ですバインディング。
バインドはQooxdooの非常に強力な機能です。なぜなら、編集ウィジェットのそれぞれが編集中のものであるvalue
というプロパティを持っているとしましょう。単純な結合で
は、自動的にあなたのqx.ui.form.TextField
のカップルにどの表示ウィジェットにモデルの性質を結合して、これらのプロパティを編集することができ、エディタ、例えばCustomerEditor
バインドvalue.firstName
とvalue.lastName
とはに変わり、顧客のfirstName
またはlastName
がで更新されます2つのTextField他の方法でバインドすることもできます。そのため、TextFieldの変更はモデルにコピーされます。
qx.data.controller.Form
というコントローラクラスがあり、これを簡単にすることができ、オプションでユーザー値とユーザーフィードバックの検証も組み込むことができます。あなたが別のエディタウィジェットを使用している場合
、あなたはまた、それらに特異的に結合することができます - Customer
がAddressEditor
のインスタンスにvalue.address
をバインドすることができ、例えば、そしてInvoiceEditor
は、現在選択されて結合することができInvoiceLine
InvoiceLineEditor
になど