データ参照パネルには、ユーザーがデータを表示および編集するためのコントロールが含まれます。つまり、パネルには、フィールドとして宣言され、インスタンス化された一連のコントロールがあります。データ参照パネルは、親フレームまたは親パネルから(setPanelBinding()
コールを介して)パネル・バインドを受け取ります。親コンテナがデータ参照パネルおよびパネル・バインドを作成した後、jbInit()
がコールされます。
jbInit()
メソッドでは、コントロールから属性へのバインドが行われます。次のコードを参照してください。
textFieldDeptName.setDocument(JUTextFieldBinding.createAttributeBinding(getPanelBinding(), textFieldDeptName, "DeptView", null, "DeptViewIter", "DName"));
このコードでは、textFieldDeptName
というテキスト・フィールドに対して、SwingのDocumentオブジェクトを設定しています。つまりtextFieldDeptName
は、DeptView
というビュー・オブジェクトのDName
属性を表示および編集するフィールドです。
JUTextFieldBinding
のstaticメソッドcreateAttributeBinding()
は、JTextField内のDocumentオブジェクトをBC4Jビュー・オブジェクトの属性に関連付けるコントロール・バインド・オブジェクトを作成します。JClientでは、コントロール・バインド・オブジェクトはSwingコントロールとBC4Jの行との間の対話を受渡しします。
createAttributeBinding()
への最初のパラメータはJUPanelBindingです。2番目のパラメータは、テキスト・フィールド・コントロール自身です。3番目のパラメータであるDeptView
には、ビュー・オブジェクトを指定します。ビュー・オブジェクトを指定するには、ビュー・オブジェクト名に加えてアプリケーション・モジュールが必要です。JUPanelBindingはJUApplicationオブジェクトに登録されているため、アプリケーション・モジュールはJUPanelBinding(最初のパラメータ)によって提供されます。この間に、JUPanelBindingは、JUApplicationオブジェクトからアプリケーション・モジュールの参照を受け取ります。このアプリケーション・モジュールが、指定されたビュー・オブジェクトを検索するコンテキストとして使用されます。
4番目のパラメータは、ビュー・オブジェクト内の行セット・イテレータの任意の名前です。必要に応じて、2番目の行セット・イテレータを使用できます。2番目の行セット・イテレータを使用するには、コードを手動で変更し、行セット・イテレータの名前を入力する必要があります。nullの場合、コントロールは、ビュー・オブジェクトのデフォルトの行セット・イテレータにバインドされます。
JUPanelBindingでは、イテレータ・バインドのリストを保持します。各JUIteratorBindingは、ビュー・オブジェクト・インスタンスと(オプションで)行セット・イテレータを指定します。(JUPanelBinding内の)JUIteratorBindingは、名前で識別されます。5番目のパラメータ(DeptViewIter
)は、JUIteratorBindingの名前を指定します。この名前は、後でJUPanelBindingからJUIteratorBindingを検索する際に使用できます。名前は、JUPanelBindingのコンテキスト内で一意である必要があります。
したがって、createAttributeBinding()
がコールされると、JClientは指定された名前(DeptViewIter
)のイテレータ・バインドの検索を試行します。検索で見つかった場合、そのJUIteratorBindingが使用されます。見つからなかった場合、JClientは、ビュー・オブジェクト名と行セット・イテレータ名を使用して新規のJUIteratorBindingを作成し、名前を割り当てて、JUPanelBindingに登録します。
最後のパラメータ(DName
)は、テキスト・フィールドがバインドされるビュー・オブジェクト属性の名前です。