表で使用するデータ・オブジェクトを指定する場合、EL構文のデータ・バインディングの式を使用できます。詳細は、「ADF UIX開発者ガイド」のADF UIXでのデータ・バインディングに関する説明を参照してください。
Oracle Application Development Framework(Oracle ADF)のバインディングで提供されるデータ・バインドUIコンポーネントを使用すると、データ・バインド表を作成できます。データ・バインド表を簡単に作成する際にデータ・コントロール・パレットを使用する場合は、モデルの属性はADF UIXにより自動的に更新されます。
Example:
...
<table model="${bindings.EmpView1}" id="EmpView18">
<contents>
<column>
<columnFormat columnDataFormat="numberFormat"/>
<columnHeader>
<sortableHeader model="${ctrl:createSortableHeaderModel(bindings.EmpView1,'Empno')}"/>
</columnHeader>
<contents>
<messageTextInput model="${uix.current.Empno}" columns="10" readOnly="true">
<onSubmitValidater>
<decimal/>
</onSubmitValidater>
</messageTextInput>
</contents>
</column>
...
</contents>
<tableSelection>
<singleSelection model="${bindings.EmpView1Iterator}" text="Select and ">
<primaryClientAction>
<firePartialAction targets="EmpView18" source="EmpView18" event="select"/>
</primaryClientAction>
</singleSelection>
</tableSelection>
</table>
...
ADFバインディングとデータ・コントロール・パレットの詳細は、次を参照してください。
列スタンプは、表の行別には変更されません。したがって、各列のセルにスタンプされているコンテンツのタイプは、buttonコンポーネントなどのように類似したものになります。しかし、コンテンツ自体は異なってもかまいません。たとえば各buttonコンポーネント内部に表示するテキストは行ごとに異なります。データ・バインディングは、表のコンテンツを行ごとに変更する際に表内で使用します。
列スタンプの属性は、名前の付けられた特定のdataObjectではなく現在のdataObjectにバインドされるため、データ・バインディングは表内で動作します。表は、各表の行をレンダリングするときに現在のdataObjectを変更します。列スタンプの属性を、現在のdataObjectの同じキーにバインドすると、表の行内のコンテンツが変わります。
インライン・データを使用すると、次のUIX XMLコードでは列が2、行が3の表がレンダリングされます。tableData属性は、demoTableDataという名前でインライン・データにバインドされます。demoRowDataというdataObjectListは、3つのdataObjectから成ります。1番目の表の列の各セルには、子であるテキストがスタンプされます。テキストの値は、firstColumnTextキーを使用して現在のdataObjectに問い合せて返された結果にバインドされます。2番目の表の列の各セルには、子であるボタンがスタンプされます。ボタンのテキストの値は、secondColumnTextキーを使用して現在のdataObjectに問い合せて返された結果にバインドされます。
また、dataObjectListという表の各要素は、対応する行の現在のdataObjectとして使用されます。列にスタンプする際にUIXが認識する行数はこのdataObjectListのサイズにより決定されます。したがってUIXは、dataObjectList内の各dataObjectに対して各列のスタンプを1回レンダリングします。
Example:
<dataScope xmlns="http://xmlns.oracle.com/uix/ui">
<provider>
<data name="demoTableData">
<inline>
<demoRowData firstColumnText="First row" secondColumnText="First Button"/>
<demoRowData firstColumnText="Second row" secondColumnText="Second Button"/>
<demoRowData firstColumnText="Third row" secondColumnText="Third Button"/>
</inline>
</data>
</provider>
<contents>
<table name="table1"
tableData="${uix.data.demoTableData.demoRowData}">
<contents>
<column>
<contents>
<!-- first column stamp -->
<text text="${uix.current.firstColumnText}"/>
</contents>
</column>
<column>
<contents>
<!-- second column stamp -->
<button text="${uix.current.secondColumnText}"/>
</contents>
</column>
</contents>
</table>
</contents>
</dataScope>
データ(つまりモデル)と表の外観(つまりビュー)とを分離することにより、開発者は列のスタンプを変更して表の外観を変更し、後で任意のデータソースをプラグインしてこれらのスタンプにデータを提供できます。
上のコードでは、次の表が生成されます。
また、Javaを使用してdataObjectListを構築し、そのリストを、UIXで作成した表のデータとして提供できます。
Example:
<dataScope ... >
<provider>
<data name="demoTableData">
<method class="test.MyTable" method="getTableData" />
</data>
</provider>
<contents>
<table tableData="${uix.data.demoTableData}">
...
</table>
</contents>
</dataScope>
表の構造およびスタンプについて
データ・バインドUIXページについて
表の作成
Oracle ADFを使用したStrutsベースのWebアプリケーションの作成
Oracle ADFを使用したモデル1スタイルのWebアプリケーションの作成
tableコンポーネントの使用
Copyright © 1997, 2004, Oracle. All rights reserved.