2017-02-02 9 views
1

私はあなたのQooxdooコードを設計する方法を知っていただきたいと思います。Qooxdooデスクトップデザインのベストプラクティス

私は満足している正しい建築を得られません。

ビューをサービスのようなロジックでカプセル化することは難しいです。

誰かが私にパターンや何かに良いヒントを与えるヒントを与えることができることを願っています。

答えて

4

Qooxdooの最大の機能の1つは強力なOOクラスシステムです。実際に使用するパターンはあなた次第です.QooxdooのOOシステムはあなたの好みのパターンを実装するツールを提供するので、MVC、MVVCなどがすべて可能ですs)。

特に大きなアプリを作成する際に非常に便利なパターンの1つは、モデルを編集するためのカスタムウィジェットを定義することです。あなたがCustomerEditorInvoiceEditorInvoiceLineEditorのためのウィジェットを持つCustomerInvoiceInvoiceLine、およびAddressのモデル(別名「ビジネスオブジェクト」など)、などを持っている場合は、コードをカプセル化しているため、だけでなく、それがサポートしているため、例えば、最初に非常に便利ですバインディング

バインドはQooxdooの非常に強力な機能です。なぜなら、編集ウィジェットのそれぞれが編集中のものであるvalueというプロパティを持っているとしましょう。単純な結合で

は、自動的にあなたのqx.ui.form.TextFieldのカップルにどの表示ウィジェットにモデルの性質を結合して、これらのプロパティを編集することができ、エディタ、例えばCustomerEditorバインドvalue.firstNamevalue.lastNameとはに変わり、顧客のfirstNameまたはlastNameがで更新されます2つのTextField他の方法でバインドすることもできます。そのため、TextFieldの変更はモデルにコピーされます。

qx.data.controller.Formというコントローラクラスがあり、これを簡単にすることができ、オプションでユーザー値とユーザーフィードバックの検証も組み込むことができます。あなたが別のエディタウィジェットを使用している場合

、あなたはまた、それらに特異的に結合することができます - CustomerAddressEditorのインスタンスにvalue.addressをバインドすることができ、例えば、そしてInvoiceEditorは、現在選択されて結合することができInvoiceLineInvoiceLineEditorになど

関連する問題