ヘッダーをスキップ
Oracle Application Development Framework開発ガイドライン・マニュアル
10gリリース2(10.1.2) 
B15737-02
  目次
目次

戻る
戻る
次へ
次へ
 

4 Oracle ADFモデル・レイヤー概要

JDeveloperのOracle Application Development Framework(Oracle ADF)は、Javaクラス、EJB Session Bean、WebサービスおよびOracle ADFアプリケーション・モジュールに基づくデータ・コントロールをサポートします。データ・コントロールとデータ・バインディングを含むOracle ADFコンポーネントは、XMLメタデータを使用して構成されます。この機能により、フレームワークをベースとした最低限のクラスで、アプリケーション開発のほとんどのニーズに、コーディングなしで対応できます。JDeveloperでは、必要なビジネス・サービスのデータソースを、設計時にOracle ADFモデル・レイヤーに公開します。設計時ツールを使用すれば、公開されたビジネス・サービスを一貫した方法でビジュアル化できます。

この章では、JDeveloperを使用した、ADFモデル・レイヤーのOracle ADFデータ・コントロールおよびデータ・バインディング・オブジェクトの作成方法について、概要を記載します。Oracle ADFモデル・レイヤーのオブジェクト作成は、アプリケーションのコントローラ・レイヤーおよびビュー・レイヤーのデータ・バインディング・オブジェクトを使用した作業の最初のステップです。詳しくは、「Oracle ADFとStrutsの統合」および「ビュー・テクノロジにおけるOracle ADFデータ・バインディングの概要」を参照してください。

4.1 要約

4.2 モデル・レイヤーの役割

Oracle ADFモデルを使用するJ2EEアプリケーションでは、モデル・データは、データ・プロバイダのタイプごとに実装されたデータ・コントロール・オブジェクトを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。モデル専用のデータ・コントロールのセットの機能は次のとおりです。

データがデータ・コントロールのアダプタ・クラスによって公開されると、J2EEアプリケーションでは、データ・オブジェクトおよびコレクションに作用するメソッド、またはそこからデータを取得するメソッド(行および行セット)を使用して、ビジネス・サービスとの対話が可能となります。

4.2.1 Oracle ADFバインディング・コンテキスト用のメタデータについて

JDeveloperでは、開発者が設計時にOracle ADFデータ・コントロールおよびデータ・バインディングを宣言的に定義する一連のXMLファイルを作成します。実行時には、アプリケーションがこれらのファイルからOracle ADFバインディング・コンテキストを作成します(次の図を参照)。

ADFバインディング・コンテキストの作成

クライアント・バインディング記述ファイル(.cpx)は、クライアント・バインディング・コンテナ定義ファイル(.xml)内のバインディング定義を参照します。.cpxファイルには、データ・コントロール記述ファイル(.dcx)への参照も含まれます。このファイルは、特定のビジネス・サービスに対して使用するデータ・コントロール・ファクトリを指定します。

設計時には、データ・コントロール・パレット、ビジュアル・エディタ、構造ウィンドウおよびプロパティ・インスペクタでの操作を介してこれらのファイルが作成されます。データ・コントロール・パレットを使用して、表示されたWebページまたはJClientパネルにデータ・バインドされたUIコンポーネントを挿入すると、そのドキュメントのバインディング定義ファイルにバインディング定義が作成されます。また、ドキュメントにバインディング・オブジェクトを参照するソース・コードが追加されます。アプリケーションは、Oracle ADFバインディング・コンテキストのbindingsネームスペースを介してこのバインディング・オブジェクトを使用可能にします。

作成されるプロジェクト・ファイルと設計時ツールの詳細は、「ビュー・テクノロジにおけるOracle ADFデータ・バインディングの概要」を参照してください。

4.2.2 Oracle ADFモデルAPIの概要

具体的には、ADFモデル・レイヤーの次のオブジェクトがビジネス・サービスへの実行時アクセスを提供します。

  • バインディング・コンテキスト・オブジェクト(oracle.adf.model.BindingContext

    クライアント・アプリケーションが使用する共通のネームスペースを定義し、すべてのモデル・オブジェクトをルート名で公開できるようにします。各WebページまたはJavaパネルは、変数名bindingに対する定義を使用して、バインディング・コンテキストに登録します。

  • データ・コントロール・インタフェース(oracle.adf.model.binding.DCDataControl

    クライアント・アプリケーションに、モデル・オブジェクトへのインタフェースを提供します。各ビジネス・サービス構成のモデル・オブジェクトに対し、ラップするデータ・コントロールが1つ必要です。また、JavaBeansのモデル・オブジェクトでは、プログラム的なアクセスが必要な場合に、ネイティブ・オブジェクトへの直接アクセスを提供します。

  • バインディング・コンテナ・オブジェクト(oracle.adf.model.binding.DCBindingContainer

    イテレータ・バインディングおよびコントロール・バインディングを含むデータ・バインディング・オブジェクト用のコンテナを定義します。各WebページまたはJavaパネルに対して1つのバインディング・コンテナが作成されますが、同じデータを使用するページおよびパネルであれば再利用できます。バインディング・コンテナ・オブジェクトでは、ページまたはパネルがデータ入力モードと問合せモードのどちらで使用されるかも指定できます。

  • イテレータ・バインディング・オブジェクト(oracle.adf.model.binding.DCIteratorBinding

    関連付けられるビジネス・サービスの行イテレータから生成されたイベントを処理し、現在の行を個々のコントロール・バインディングに送信して現在のデータを表示します。イテレータ・バインディングには、Webページに表示する行数を指定できます。

  • コントロール・バインディング・オブジェクト(oracle.jbo.uicli.binding.JUControlBinding

    特定のUIコンポーネントとそれに対応するビジネス・サービスとの対話方法を定義します。たとえば、選択したコントロール・バインディングよっては、テキスト・フィールドをOracle ADF Business Componentsビュー・オブジェクト属性にバインドし、編集可能なフィールドまたは固定ラベルとして表示できます。または、ビジネス・サービス属性が列挙された値リストを定義している場合には、バインドされたUIコンポーネントは静的リスト、単一選択リストまたは複数選択リストを表示できます。表やグラフといったより複雑なUIコンポーネントも、専用のコントロール・バインディングによってサポートされます。

  • アクション・バインディング・オブジェクト(oracle.jbo.uicli.binding.JUCtrlActionBinding

    実行時に、ユーザーがボタン・コントロールを使用してあるアクションを実行すると、アクション・バインディングがOracle ADFバインディング・コンテキストにアクセスし、選択されたコレクションのデータ・オブジェクトに対して指定されたアクションを実行します。アクション・バインディングはパラメータを取ることができ、パラメータはコントローラに渡されて処理されます。

4.3 Oracle ADFモデル・レイヤーのメリット

4.3.1 Oracle ADFデータ・コントロールの役割

Oracle ADFデータ・コントロールは、ビジネス・サービスのデータ・モデルの抽象化を提供します。Oracle ADFデータ・コントロールは、クライアントおよびWebアプリケーション・コントローラに対し、次のデータ・プロバイダ・テクノロジによって定義されたデータおよびアクションにアクセスするための一貫したメカニズムを提供します。

  • Oracle ADF Business Components

  • TopLink Plain Old Java Objects(TopLink POJO)を含むJavaBeans

  • EJB Session Bean

  • Webサービス

ほとんどの場合、データ・コントロールはアダプタ・クラスのシン・レイヤーによって実装されます。ただしOracle ADF Business Componentsは例外で、データ・コントロールはコンポーネント・クラスに直接実装されます。

Oracle ADFデータ・コントロールはデータ・コントロール・パレットに表示され、UIコントロールとしてビューに追加したり、操作としてコントローラに追加したりできます。

以降、この項では、提供されるデータ・コントロールの基本機能について概要を説明します。説明中に登場する用語の意味は次のとおりです。

  • ビジネス・サービス: ビジネス・オブジェクトを公開し、ビジネス・オブジェクトを操作するメソッドを提供する、あらゆるJavaBean。ビジネス・サービスの例としては、Webサービス、EJB Session Bean、またはなんらかの機能へのインタフェースとして使用される任意のJavaクラスがあります。

  • ビジネス・オブジェクト: ビジネス・エンティティをモデリングするJavaBean。通常、ビジネス・オブジェクトはデータソースに対して永続化されます。注文入力アプリケーションのビジネス・オブジェクトの例としては、注文、顧客および製品があります。

  • データ・コレクション: ビジネス・オブジェクトの集まり。コレクションには、java.util.Collectionjava.util.Iteratorまたは配列オブジェクトのインスタンス、もしくは単一のビジネス・オブジェクト(1つからなるコレクションとして扱われる)を使用できます。

4.3.1.1 ビジネス・オブジェクト・アクセス・サービス

ビジネス・オブジェクト・アクセス・サービスは、ビジネス・サービスまたはビジネス・オブジェクトを使用したデータ・コレクションおよびビジネス・オブジェクトへのバインディングをサポートする、Oracle ADFの組込み機能です。ビジネス・オブジェクト・アクセス・サービスには、次のものがあります。

  • ビジネス・コレクション反復サービス

    Oracle ADFデータ・コントロールは、ビジネス・コレクションとともに使用されるイテレータ・パターンの実装を提供します。このイテレータ・バインディングの実装に対して組込みの操作を使用すれば、ビジネス・オブジェクトを表示または反復できます。操作にはfirst、next、previousおよびlastがあります。

  • 検索およびリフレッシュ・サービス

    Oracle ADFモデルは、ページ・モデルまたはADFモデル・レイヤー・イテレータに対して検索パラメータを定義する機能を提供します。組込みの操作を使用して、Oracle ADFモデルをFindモードに切り替えて検索パラメータを定義し、Oracle ADFモデル・レイヤーのイテレータ・バインディングをリフレッシュできます。

  • ビジネス・オブジェクト・プロパティ・サービス

    Oracle ADFモデルは、ビジネス・オブジェクトのJavaBeans形式のプロパティにアクセスする機能を提供します。組込みの操作を使用して、ビジネス・オブジェクトのプロパティにバインドできます。ビジネス・オブジェクト・プロパティの特別なクラスには、アクセッサ・メソッド(Customer.getOrders()など)がビジネス・コレクションにアクセスするプロパティが含まれます。このようなプロパティはアクセッサ属性プロパティまたはアクセッサ属性と呼ばれます。

  • メソッド起動サービス

    Oracle ADFモデルは、ビジネス・オブジェクトおよびビジネス・サービスのメソッドを起動する機能を提供します。組込みの操作を使用して、メソッドを起動し、イテレータを操作の結果にバインドできます。

4.3.1.2 トランザクション・サービス

トランザクション・サービスは、ビジネス・オブジェクトに変更を加えるための、Oracle ADFモデル・レイヤー組込みの機能です。ただし、Oracle ADFモデルのトランザクション・サービスでは、トランザクション・システム自体は提供されません。かわりに、Oracle ADFモデルのトランザクション・サービスでは、個々のOracle ADFデータ・コントロールが統合する通知システムを提供します。通知システムがあることで、カスタムのOracle ADFデータ・コントロールを作成でき、それによってモデル・トランザクション・サービスをOracle ADFモデル・レイヤーと統合できます。

トランザクション・サービスには次のものがあります。

  • ビジネス・オブジェクト・サービス

    Oracle ADFモデルは、コレクションへのビジネス・オブジェクトの追加、コレクションからのビジネス・オブジェクトの削除、およびビジネス・オブジェクトのJavaBeans形式プロパティの変更のための機能を提供します。組込みの操作を使用してこれらのサービスを起動すれば、Oracle ADFモデル・レイヤーはOracle ADFデータ・コントロールに対し、作成、削除または更新イベントを自動的に通知します。

  • トランザクション境界サービス

    Oracle ADFモデルは、トランザクションをコミットおよびロールバックする機能を提供します。組込みの操作を使用して、Oracle ADFデータ・コントロールに対し、トランザクションの変更をコミットまたはロールバックするよう通知できます。

4.3.1.3 状態管理サービス

状態管理サービスは、Oracle ADFデータ・コントロールのユーザー状態を管理するための、Oracle ADFモデル・レイヤー組込みの機能です。状態管理サービスには次のものがあります。

  • データ・コントロール・ライフサイクル通知

    Oracle ADFモデルは、Oracle ADFデータ・コントロールに対してOracle ADFデータ・コントロール・ライフサイクル通知を提供します。個々のデータ・コントロールは、これらの通知を実装して、ビジネス・サービスのユーザー状態を受動化または活性化します。

  • 状態配置サービス

    Oracle ADFモデルは、他の層に状態を配置またはフェイルオーバーする機能を提供します。

Oracle ADFモデル・レイヤーを使用した設計時の作業と、設計時に生成されるコードの詳細は、「JDeveloperでのOracle ADFモデル・レイヤーの作成」を参照してください。

4.3.2 Oracle ADFバインディングの役割

Oracle ADFでは、次にあげるタイプのバインディング・オブジェクトを提供し、特定のビジネス・オブジェクトに対してOracle ADFデータ・コントロールによって公開される属性または操作をサポートします。

  • イテレータ・バインディング: ページまたはパネルに表示される各アクセッサ属性に1つ。データ・コレクションのビジネス・オブジェクトに対して繰返し実行し、行の現在行位置および状態を維持します。

  • 値バインディング: データ・バインドされた各UIコンポーネントに1つ。データへのアクセスを提供します。

  • アクション・バインディング: 各ボタン・コンポーネントに1つ。ビジネス・オブジェクトによって定義された操作へのアクセスを提供します。

これらのバインディングは、JDeveloperのデータ・コントロール・パレット、ビジュアル・エディタ、構造ウィンドウおよびプロパティ・インスペクタを使用して作成します。アプリケーション内のバインディングを確認するには、次の方法があります。

Webページのソース・コード・ビューでは、バインディングの参照は、式言語(EL)機能を使用して実行時に評価される式に含まれます。コード・ビューでは次のように式が表示されます。

<c:forEach var="rv"
            items="${bindings.DataBindingObject.theCollectionProperty}"

データ・バインディング・オブジェクトは、bindings変数を介してOracle ADFバインディング・コンテナにアクセスします。この変数は、Oracle ADFバインディング・コンテキスト内にバインディング・コンテナ用のネームスペースを指定する変数です。バインディング・コンテナは、Model 2形式のWebアプリケーションに対して、Oracle ADFクラスoracle.adf.controller.struts.actions.DataActionで初期化されます。


注意:

データ・アクション・クラスはプロジェクトに表示されませんが、データ・アクション用のアクション・マッピングはstruts-config.xmlファイルに含まれます。このファイルは、modelReferenceプロパティを定義してpageNameUIModel.xmlファイルからバインディング・コンテナを初期化します。

  • JClientパネルまたはフォームのコード・ビューでは、UIコンポーネントに対するsetModel()メソッド・コールがデータ・バインディング・オブジェクトを初期化し、ADFバインディング・コンテキスト(データ・パネルに対するsetBindingContext()メソッド・コールで指定される)を介してバインディング・コンテナにアクセスします。

バインディング・コンテナは、パネル・バインディングが(JUPanelBinding panelBindingコンストラクタによって)作成されたときに、JClientプロジェクト内のPanelNameUIModel.xmlファイルから初期化されます。

  • それぞれのクライアント・タイプ(WebページまたはJClientパネル)用の構造ウィンドウでは、ビュー・ドキュメント内の各UIコンポーネントに対して定義されたデータ・バインディング・オブジェクトが、「UIモデル」タブに表示されます。バインディング定義の宣言的プロパティを編集するには、右クリックして「編集」を選択します。実行時専用のプロパティに対して設定可能な値を確認するには、バインディング・ノードを選択して[F1]を押します。

4.3.3 すべてのOracle ADFデータ・バインディングに共通なランタイム・プロパティ

データ・コントロール・パレットを使用してデータ・バインドされたコンポーネントを作成すると、作業中のビュー/コントローラ・プロジェクトに対して定義されたUIModel.xmlファイルに、メタデータが追加されます。メタデータは、データ・バインドされた各UIコンポーネントのデフォルトの表示方法を決定し、実行時にバインディング・オブジェクトのプロパティを設定します。データ・バインディングのメタデータに対して作業するには、次のツールを使用します。

  • 構造ウィンドウの「UIモデル」タブで、特定のバインディングに対して表示する設計時のエディタ。

    この他に、各バインディングの実装クラスは、バインディングに関する実行時の情報にアクセスするためのメソッドを定義します。実行時固有のプロパティに対して作業するには、次の方法を使用します。

  • WebページのHTMLに挿入するEL式。値バインディング・オブジェクトのランタイム・プロパティにアクセスする際に使用します。

    oracle.jbo.uicli.binding.DCControlBindingクラスはこれらのプロパティに対して、次のアクセッサ・メソッドを提供します。これらのメソッドはすべての値バインディングからアクセス可能です。

  • error: バインディングがバインドされているメソッドまたはアクションの起動中に発生した、あらゆるキャッシュ済の例外を戻します。

  • fullName: Oracle ADFバインディング・コンテキスト内のバインディング・オブジェクトの完全修飾名を戻します。

  • iteratorBinding: データ・コレクションへのアクセスを提供するイテレータ・バインディングを戻します。

  • name: バインディング・オブジェクトが登録されているバインディング・コンテナのコンテキスト内でのバインディング・オブジェクトの名前を戻します。

  • rowKeyStr: データ・コレクションのキーを戻します。キーはデータ・オブジェクトの場所を指定するもので、Stringで戻されます。

4.4 Oracle ADFデータ・コントロールとビジネス・サービスの実行時統合

実行時には、クライアントまたはコントローラから起動されたビジネス・サービスとのやり取りは、Oracle ADFモデル・バインディング・コンテキストと呼ばれる1つのオブジェクトを介してアプリケーションで管理されます。Oracle ADFバインディング・コンテキストは、次の図に示すように、Oracle ADFモデル・レイヤーから導出されたデータ・コントロールおよびデータ・バインディング・オブジェクトの階層を定義するコンテナ・オブジェクトです。

Oracle ADFバインディング・コンテキスト

バインディング・コンテキストはこれらの階層を定義します。階層内のオブジェクトは相互に参照するため、Oracle ADFモデルからコントローラ・レイヤーとビュー・レイヤーへのサービスの提供が可能となります。

データ・コントロールの階層は次のようになります。

データ・バインディング・オブジェクトの階層(同じ親コンテナから開始)は次のようになります。

その他に、次のものがあります。

次の図は、バインディング・コンテナの階層を詳しく示したものです。アプリケーションに提供されるバインディング・コンテキストおよびデータ・バインディング・オブジェクトの定義が、クライアント・プロジェクト・レベルでXMLベースのファイルによって指定されている点に注目してください。クライアント・プロジェクトの詳細は、「ビュー・テクノロジにおけるOracle ADFデータ・バインディングの概要」を参照してください。

バインディング・コンテナ階層

イテレータ・バインディングは、イテレータ・バインディングのオブジェクト階層パスを通ってデータ・コレクションにアクセスし、そのデータ・オブジェクトに対して反復処理を実行します。一方値バインディング・オブジェクトは、反復処理が行われているコレクションの現在のデータ・オブジェクトを、UIコンポーネントが表示または更新できるようにします。

たとえば、WebページまたはJavaパネルのソースでは、UIコンポーネントの値バインディング定義がそのページまたはパネルのイテレータ・バインディング・オブジェクトを参照します。さらにイテレータ・バインディング・オブジェクトがデータ・コントロールを参照して、データアクセス・パスが完成し、Oracle ADFモデルはオブジェクト階層間を次のように移動できるようになります。

  1. コントロール・バインディングが受信したイベント(データのレンダリングなど)からスタートします。

  2. バインディング・コンテキストで指定されたデータ・コントロールまで戻り、最終的にビジネス・サービスと対話します。


    注意:

    前述の説明は、WebアプリケーションとJavaクライアント・アプリケーションの両方に関するため、単純化されています。実際のWebアプリケーションでは、コントローラ・レイヤーが、ビュー・レイヤーにディスパッチする前にOracle ADFモデルのバインディング・コンテキストへの移入を行います。次に、対話型Webアプリケーション用のプル・モデルに従って、ビュー・レイヤーがデータをプルして値をページにレンダリングします。

4.5 JDeveloperでのOracle ADFモデル・レイヤーの作成

Oracle ADFデータ・コントロールは、アプリケーション・クライアントがアプリケーションのモデル・オブジェクト・レイヤーによって定義されたビジネス・サービスにアクセスできるようにします。ビジネス・サービスは、モデル・プロジェクトが定義するあらゆるコレクション、値またはアクションです。実行時には、Oracle ADFバインディング・コンテキストがデータ・コントロール定義とともに初期化され、データ・バインドされたUIコンポーネントからビジネス・サービスへのアクセスが可能となります。

データ・コントロールを作成する前に、必ずビジネス・サービスを作成しておくか、ビジネス・サービスへのアクセスを確保しておいてください。

4.5.1 データ・コントロールとしてのOracle ADF Business Components


注意:

Oracle ADF Business Componentsに対してはデータ・コントロールを作成する必要はありません。Oracle ADF Business Componentsデータ・モデルのコンポーネントには、あらかじめデータ・コントロール・インタフェースが実装されています。

Oracle ADF Business Componentsをビジネス・サービス・テクノロジとして使用する場合、データ・モデルのコンポーネントはOracle ADFデータ・コントロールとしてモデル・レイヤーに公開されます(次の図を参照)。

ADF Business Componentsのモデル・レイヤーでの公開状況

1 アプリケーション・モジュール

このノードはトップレベルのアプリケーション・モジュール本体を表します(ネストされたアプリケーション・モジュールは同じアイコンで表されます)。このノードのすぐ下には、ネストされたアプリケーション・モジュール、トップレベルのビュー・オブジェクト・インスタンス、およびアプリケーション・モジュール・レベルのメソッドがあります。

2 行セット

これらのノードは行セットを表します。通常はデータ・モデル内のビュー・オブジェクト・インスタンスですが、ビュー・リンク・アクセッサによって戻された行セットも含まれます。上の図では、AllDepartmentsはトップレベルのビュー・オブジェクト・インスタンスを、DepartmentEmployeesAllDepartmentsのディテール・インスタンスを、DeptMgrFkLinkDetailEmpMgrFkLinkDetailはどちらも同じ名前のビュー・リンク・アクセッサによって戻された静的行セットを表しています。ビュー・リンクの詳細はJDeveloperのヘルプ・システムを参照してください。

3 属性

これらのノードは個々のビュー・オブジェクト属性を表します。

4 標準操作

これらのノードは、行セット・レベルの標準操作を表します。アプリケーション・モジュールには、トランザクション・レベルの操作を表す同様のノードがあります。行セットで実行できる操作にはprevious setとnext setがあり、これらはレンジ・サイズに基づいて行セットをスクロールします。詳細は、「Oracle ADFデータ・コントロール操作の要約」を参照してください。

5 特別なナビゲーション操作

これらのノードは、行セットの現在行を、表示されている特定の行に設定するためのものです。

6 カスタム・メソッド

エクスポートされたカスタム・サービス・メソッドは、データ・コントロール・パネルに表示されます。

4.5.2 EJBコンポーネント用Oracle ADFデータ・コントロール

EJBをビジネス・サービス・テクノロジとして使用する場合、モデル情報は、Oracle独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。

アダプタ・クラスおよびデータ・コントロールを作成するには、次のようにします。

  1. ナビゲータで、アプリケーション・クライアントに公開するモデル・オブジェクトを含む「モデル」プロジェクトを選択します。

  2. モデル・プロジェクトで、ステートレスSession Beanを右クリックして「データ・コントロールの作成」を選択します。

    または

  3. Session Beanをアプリケーション・ナビゲータからデータ・コントロール・パレットへドラッグし、データ・コントロールを作成します。


    注意:

    データ・コントロールは、ステートレスSession Beanからのみ作成できます。BeanがCollection型を戻す属性またはメソッドを定義している場合、データ・コントロールの戻り型を指定する必要があります。JDeveloperでは、データ・コントロール定義ファイル(DataControls.dcx)がモデル・プロジェクトに追加されます。.dcxファイルはOracle ADFモデル・レイヤーのアダプタ・クラスを識別します。このクラスは、クライアントと利用可能なビジネス・サービス間の対話をサポートします。

クライアント・アプリケーションで使用するために登録したビジネス・サービスを表示するには、次のようにします。

  • パレットが表示されていない場合は、「表示」「データ・コントロール・パレット」を選択します。

    または

  • パレットがすでに表示されている場合は、パレットを右クリックしてパレットのリフレッシュを選択します。

EJBをビジネス・サービス・テクノロジとして使用する場合、モデル情報は、Oracle独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます(次の図を参照)。

EJBモデル・データがOracle ADFデータ・コントロール・インタフェースを介してビュー・レイヤーおよびコントローラ・レイヤーに公開されている状況

1 データ・コントロール

このノードはデータ・コントロール(この例ではセッション・ファサード)を表します。Oracle ADFデータ・コントロールを作成、またはその内容をリフレッシュするには、ステートレスSession Beanをナビゲータからデータ・コントロール・パレットへドラッグします。

2 行セット

これらのノードは次のコレクションを表します。

  • AllDepartmentsは、Departmentsデータ転送オブジェクト(DTO)のコレクションです。

  • employees_departmentIdDTOAllDepartments内のコレクションで、マスター/ディテール関係に該当します。

3 属性

これらのノードは個々の属性を表します。

4 標準操作

これらのノードは標準のコレクション操作を表します。セッション・ファサードには、トランザクション・レベルの操作を表す同様のノードがあります。コレクションで実行できる操作にはprevious setとnext setがあり、これらはレンジ・サイズに基づいてデータをスクロールします。

5 特別なナビゲーション操作

これらのノードは、行セットの現在行を、表示されている特定の行に設定するためのものです。

6 カスタム・メソッド

カスタムのサービス・メソッドは、データ・コントロール・パネルに表示されます。

Session Beanからデータ・コントロールを作成すると、4つのファイル(Javaファイル×2、XMLファイル×2)が生成されます。JDeveloperの設計時にXMLファイルが自動的に作成されるのは、プロパティ・インスペクタでのアクセッサ・タイプの解決などをサポートするためです。生成される4つのファイルは次のとおりです。

  • SessionEJB.xml: 生成されるXML文書で、java.lang.Stringなどの組込みクラス以外の、ADFデータ・コントロールを介して公開されるすべてのJavaBeanを表します。Session EJBデータ・コントロールを介して公開されるcreate()メソッドは、Session EJBインスタンスを戻します。これは、そのJava型を表すためのXMLファイルです。

  • SessionEJBDataControl.java: 生成されるJavaクラス。ステートレスSession Beanのリモート(リモート・インタフェースが1つも公開されていない場合はローカル)・メソッドを公開するためのJavaBeansラッパーを提供し、メソッドのリクエストを作成されたSession Beanインスタンスに委譲します。

  • SessionEJBDataControl.xml: プロパティ・インスペクタで編集可能なXML文書。代表的な編集理由は、Session Beanのコンポーネント・インタフェースを介して公開されたコレクションまたはlistメソッドに対し、メンバー・タイプ情報を割り当てるためです。

  • SessionEJBDataControlBeanInfo.java: SessionEJBDataControl.java用のBeanInfoクラスです。BeanInfoクラスは、非コンポーネントのインタフェース・メソッドを除外します。

4.5.3 Webサービス用Oracle ADFデータ・コントロール

Webサービスをビジネス・サービス・テクノロジとして使用する場合、モデル情報は、Oracle独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。

JDeveloperでは、サービスへのスタブまたはプロキシを生成し、そのスタブからデータ・コントロールを作成することで、Webサービス用のOracle ADFデータ・コントロールを作成します。JDeveloperの設計時にスタブを作成可能なWebサービスは、すべてデータ・コントロールとして公開可能です。

アプリケーションの一部としてJDeveloperで作成したWebサービスのデータ・コントロールは、マウスを1回クリックするだけで作成できます。外部のWebサービス(Web上のどこかにあるサービス)の場合、データ・コントロールを作成するには、まずWSDLドキュメントをナビゲータで使用できるようにする必要があります。以降の項で、それぞれのケースについてデータ・コントロールの作成方法を説明します。

最終的に、クライアント・アプリケーションで使用するために登録したビジネス・サービスを表示できます。

4.5.3.1 JDeveloperで作成されたWebサービス用データ・コントロールの作成方法

JDeveloperで作成したWebサービスの機能は、アプリケーションに組み込むことができます。これらのWebサービスとしてはSOAPまたはJ2EEがあり、どちらのサービスも、データ・コントロールを作成する前に通常の方法でデプロイする必要があります。JDeveloperでWebサービスを作成した場合、Webサービス・コンテナがナビゲータに表示されます。

JDeveloperで作成されたWebサービス用のデータ・コントロールを作成するには、次のようにします。

  • Webサービスをデプロイし、ナビゲータでWebサービスを右クリックして「データ・コントロールの作成」を選択します。または、Webサービス・コンテナのノードをデータ・コントロール・パレットへドラッグします。

    または

  • ナビゲータでWebサービス・コンテナを選択し、構造ウィンドウでWSDLを右クリックして「データ・コントロールの作成」を選択します。または、WSDLノードをデータ・コントロール・パレットへドラッグします。

4.5.3.2 外部Webサービス用データ・コントロールの作成

WSDLドキュメントのURLがわかっている場合は、サービス用のデータ・コントロールを作成する前に、WSDLをアプリケーション・ナビゲータで使用できるようにする必要があります。これには、次の2つの方法があります。

  • WSDLドキュメントを新しく作成し、外部のWSDLドキュメントをそこにインポートする。

  • Webサービスへのスタブを作成し、ウィザードでWSDLドキュメントをナビゲータに追加する。

Oracle ADFアプリケーションで外部Webサービスを使用するもう1つの方法として、UDDIレジストリ内のサービスを選択し、接続ナビゲータからデータ・コントロールを作成する方法があります。

この3つのケースについて、次に説明します。

新規のWSDLドキュメントを作成して、外部Webサービス用のデータ・コントロールを作成するには、次のようにします。

  1. デフォルトの設定で新規WSDLドキュメントを作成します。

  2. サービス・プロバイダとして使用する外部WebサービスのWSDLドキュメントを、ブラウザで開きます。ドキュメントのソースを表示し、WSDLのXMLソースをコピーします。

  3. 作成した新規WSDLドキュメントの内容を、データ・コントロールを作成するWebサービスのWSDLドキュメントからコピーしたソースで置き換えます。

  4. WSDLドキュメントを右クリックし、「データ・コントロールの作成」を選択します。または、WSDLノードをナビゲータからデータ・コントロール・パレットへドラッグします。

ウィザードを使用して外部Webサービス用のデータ・コントロールを作成するには、次のようにします。

  1. Webサービスへのスタブを作成し、WSDLのURLを「Webサービス記述を選択」ページの「WSDLドキュメントURL」フィールドに貼り付けます。同じページの「WSDL URLをプロジェクトにインポート」を選択し、ウィザードを完了します。

  2. WSDLドキュメントを右クリックし、「データ・コントロールの作成」を選択します。または、WSDLノードをナビゲータからデータ・コントロール・パレットへドラッグします。

UDDIレジストリ内で選択したWebサービス用のデータ・コントロールを作成するには、次のようにします。

  1. UDDIレジストリ内のWebサービスを選択します。サービスは、接続ナビゲータのUDDIレジストリ・ノードの下に表示されます。

  2. Webサービスを右クリックし、「データ・コントロールの作成」を選択します(次の図を参照)。

UDDI Webサービス用データ・コントロールの作成

クライアント・アプリケーションで使用するために登録したビジネス・サービスを表示するには、次のようにします。

  • パレットが表示されていない場合は、「表示」「データ・コントロール・パレット」を選択します。

    または

  • パレットがすでに表示されている場合は、パレットを右クリックしてパレットのリフレッシュを選択します。

Webサービスをビジネス・サービス・テクノロジとして使用する場合、モデル情報は、Oracle独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます(次の図を参照)。

ビュー・レイヤーおよびコントローラ・レイヤーへのWebサービス・モデル・データの公開

1 Webサービスのデータ・コントロール

MyWebService1DataControlはデータ・コントロールのノードです。ナビゲータでWebサービス・コンテナMyWebService1を右クリックし、「データ・コントロールの作成」を選択すると作成されます。

2 操作

Operationsノードの下には、Webサービスで使用可能なWebメソッドが表示されます。

3 Webサービス・メソッドに関連したデータ・コントロール

returnAllPersons()ノードは、Webサービスに関連したデータ・コントロールです。

4 returnノード

このノードは、Webサービスに対するメソッドからの戻り値です。

4.5.3.3 配列を戻すWebサービス

Webサービスが配列を戻す場合、その配列ノードが、アプリケーションで戻り値の提供に使用されるノードであることが重要です(次の図を参照)。

Webサービスからアプリケーションへの値の戻し方

作成されるファイルは次のとおりです。

  • DataControls.dcx: Oracle ADFモデル・レイヤーのアダプタ・クラスを識別します。このクラスは、クライアントと利用可能なビジネス・サービス間の対話をサポートします。

  • <WebService>.xml: データ・コントロールが使用するメタデータを格納します。

  • <WebService>.java: サービスへの接続情報を格納します。

  • <WebService>BeanInfo.java: Webサービスで使用可能なメソッドを提供します。

  • <Bean>.java: アプリケーション・ナビゲータのWSDLノードから外部Webサービスを登録すると作成され、サービスへのプロキシとして機能します。

4.5.4 JavaBeansおよびTopLinkベースのBeanコンポーネント用Oracle ADFデータ・コントロール

JavaBeansをビジネス・サービス・テクノロジとして使用する場合、モデル情報は、Oracle独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。


注意:

JavaBeanは、指定したTopLinkマッピングに基づいて作成されたものを使用できます。

アダプタ・クラスおよびデータ・コントロールを作成するには、次のようにします。

  1. ナビゲータで、アプリケーション・クライアントに公開するモデル・オブジェクトを含む「モデル」プロジェクトを選択します。

  2. モデル・プロジェクトで、Beanを右クリックして「データ・コントロールの作成」を選択します。

    または

    Beanをアプリケーション・ナビゲータからデータ・コントロール・パレットへドラッグし、データ・コントロールを作成します。

  3. BeanがCollection型を戻す属性またはメソッドを定義している場合、データ・コントロールの戻り型を指定する必要があります。

JDeveloperでは、データ・コントロール定義ファイル(DataControls.dcx)がモデル・プロジェクトに追加されます。.dcxファイルはOracle ADFモデル・レイヤーのアダプタ・クラスを識別します。このクラスは、クライアントと利用可能なビジネス・サービス間の対話をサポートします。

クライアント・アプリケーションで使用するために登録したビジネス・サービスを表示するには、次のようにします。

  • パレットが表示されていない場合は、「表示」「データ・コントロール・パレット」を選択します。

    または

  • パレットがすでに表示されている場合は、パレットを右クリックしてパレットのリフレッシュを選択します。

JavaBeansをビジネス・サービス・テクノロジとして使用する場合、モデル情報は、Oracle独自のアダプタ・クラス(シン)によって実装されるADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。

Oracle TopLink POJOを使用してビジネス・サービス・テクノロジとして使用するJavaBeansを作成した場合、アプリケーションはOracle ADFデータ・コントロールでもこのJavaBeansにアクセスできます。

詳細は、JDeveloperのヘルプ・システムにあるTopLinkに関するドキュメントを参照してください。

4.6 Oracle ADFデータ・コントロール操作の要約

アプリケーション用のビジネス・サービスを作成および登録すると、データ・コントロール・パレットには次の2種類のアクションが表示されます。

ビジネス・サービスによって定義される、典型的なデータ・コントロール・レベルのグローバル・アクションには、次のものがあります。

ビジネス・サービスによって定義される、典型的なデータ・コレクション専用操作には、次のものがあります。

4.7 Oracle ADFバインディングの要約

Oracle ADFが提供するバインディングには、次のタイプがあります。

4.7.1 イテレータ・バインディングについて

oracle.jbo.uicli.binding.JUIteratorBindingクラスが、イテレータ・バインディングを実装します。

イテレータ・バインディングは、アプリケーションがOracle ADFバインディング・コンテキストにアクセスするために作成する、ランタイム・オブジェクトです。イテレータ・バインディングはバインドされたデータ・コレクションへの参照を保持しており、データ・コレクションへのアクセスや、データ・オブジェクトに対する反復処理を実行します。イテレータ・バインディングは、行の現在行位置と状態を値バインディングに通知します。次に、開発者が定義した値バインディングが、反復処理が行われているコレクションの現在のデータ・オブジェクトを、UIコンポーネントで表示または更新できるようにします。この方法により、イテレータ・バインディングは、異なるビジネス・サービスの様々なコレクション・タイプへ一貫したアクセスを提供します。

Oracle ADF Business Componentsビュー・オブジェクトの場合、UIコンポーネント用のOracle ADFバインディングに、行の現在行位置インジケータを表示できます。たとえばある表で、現在の行に対し、実行時にはその最初の列にアスタリスク(*)が表示されます。このインジケータは、バインドされたビュー・オブジェクトにキー属性が定義されている場合にのみ、イテレータ・バインディングを介して使用できます。バインドされたビュー・オブジェクトにキー属性が定義されていない場合には、表の各行にアスタリスクが表示されます。この場合、ビジュアル・エディタでUIコンポーネントを編集し、実行時にアスタリスクが表示されないようにすることができます。

oracle.jbo.uicli.binding.JUIteratorBindingクラスには、コレクションおよび現在行位置管理用に最もよく使用される次のメソッドがまとめられています。

  • error: イテレータまたはイテレータに関連付けられるOracle ADFデータ・コントロール経由のデータ変更を検証中にキャッシュされた例外をすべて戻します。

  • estimatedRowCount: このイテレータ・バインディングが関連付けられるコレクションの最大行数を戻します。

  • name: このイテレータ・バインディングの名前を戻します。

  • rangeSize: Oracle ADF Business Components行セット・イテレータのレンジ・サイズを戻します。このプロパティは、Oracle ADF Business Componentsに登録されたデータ・コントロールのみを対象とします。

  • rowAtRangeIndex: コレクションの指定された索引にあるデータ・オブジェクトを戻します。Oracle ADF Business Componentsに登録されたデータ・コントロールの場合、現在のレンジ内の索引の行を戻します。

4.7.2 値バインディングについて

4.7.2.1 属性値バインディング

oracle.jbo.uicli.binding.JUCtrlValueBindingクラスが、属性値バインディングを実装します。

属性値バインディングにより、データ・バインドされたUIコンポーネントで、指定されたコレクションのデータ・オブジェクトの属性値を取得できます。UIコンポーネントのタイプによって、ユーザーは属性値を表示、また場合によっては編集できます。

oracle.jbo.uicli.binding.JUCtrlAttrsBindingクラスには、独自のプロパティは定義されません。

ただし、属性バインディングのクラス階層によって定義される、次のプロパティを使用できます。

  • attributeValue: バインディングが関連付けられる最初の属性の値を戻します。

  • attributeValues: バインディングが関連付けられるすべての属性の値を、順序付きの配列で戻します。

  • attributeDef: バインディングが関連付けられる最初の属性の属性定義を戻します。

  • attributeDefs: バインディングが関連付けられるすべての属性の属性定義を戻します。

  • displayHint: バインディングが関連付けられる最初の属性の表示ヒントを戻します。ヒントには、属性を表示するべきかどうかが指定されています。

  • inputValue: バインディングが関連付けられる最初の属性の値を戻します。バインディングが属性に値を設定するために使用されていて、設定操作が失敗した場合、このメソッドは設定されようとしていた無効な値を戻します。

  • label: バインディングが関連付けられるすべての属性の属性名によってキーが指定されたラベルのマップを戻します。

  • labels: バインディングの最初の属性のラベルを戻します。

  • labelSet: バインディングが関連付けられるすべての属性について、順序付きのラベルのセットを戻します。

  • mandatory: バインディングが関連付けられる最初の属性が必須かどうかを戻します。

  • tooltip: バインディングが関連付けられる最初の属性のツールチップ・ヒントを戻します。

  • updateable: バインディングが関連付けられる最初の属性が更新可能かどうかを戻します。

この他に、ルート・クラスDCControlBindingによって定義される汎用プロパティを使用できます。

4.7.2.2 ブール値バインディング

oracle.jbo.uicli.binding.JUCtrlBoolBindingクラスが、ブール・バインディングを実装します。

ブール・バインディングは、指定されたコレクションのデータ・オブジェクトの属性値を、コントロールの選択状態に基づいて取得します。

oracle.jbo.uicli.binding.JUCtrlBoolBindingクラスには、独自のプロパティはありません。

ただし、ブール・バインディングのクラス階層によって定義される、次のプロパティを使用できます。

  • attributeValue: バインディングが関連付けられる最初の属性の値を戻します。

  • attributeValues: バインディングが関連付けられるすべての属性の値を、順序付きの配列で戻します。

  • attributeDef: バインディングが関連付けられる最初の属性の属性定義を戻します。

  • attributeDefs: バインディングが関連付けられるすべての属性の属性定義を戻します。

  • displayData: マップ要素のリストを戻します。各マップ・エントリには、次の要素が含まれます。

    • selected: 現在のエントリが選択されている場合はTRUE

    • index: 現在のエントリの索引値

    • prompt: 現在のエントリのすべての表示属性値を連結した文字列

    • displayValues: 表示属性値のイテレータ

    • selectedIndex: バインディングが関連付けられる選択されたエントリの索引

  • displayHint: バインディングが関連付けられる最初の属性の表示ヒントを戻します。ヒントには、属性を表示するべきかどうかが指定されています。

  • displayHints: バインディングが関連付けられるすべての表示属性について、UIヒントの名前/値ペアのリストを戻します。マップには、次の要素が含まれます。

    • label: 現在の属性に表示するラベル

    • tooltip: 現在の属性に表示するツールチップ

    • displayHint: 現在の属性の表示ヒント

    • displayHeight: 現在の属性の高さ(行数)

    • displayWidth: 現在の属性の幅(文字数)

    • controlType: 現在の属性のコントロール・タイプ・ヒント

    • format: 現在の属性に使用する書式

  • inputValue: バインディングが関連付けられる最初の属性の値を戻します。バインディングが属性に値を設定するために使用されていて、設定操作が失敗した場合、このメソッドは設定されようとしていた無効な値を戻します。

  • label: バインディングが関連付けられるすべての属性の属性名によってキーが指定されたラベルのマップを戻します。

  • labels: バインディングの最初の属性のラベルを戻します。

  • labelSet: バインディングが関連付けられるすべての属性について、順序付きのラベルのセットを戻します。

  • mandatory: バインディングが関連付けられる最初の属性が必須かどうかを戻します。

  • tooltip: バインディングが関連付けられる最初の属性のツールチップ・ヒントを戻します。

  • updateable: バインディングが関連付けられる最初の属性が更新可能かどうかを戻します。

この他に、ルート・クラスDCControlBindingによって定義される汎用プロパティを使用できます。

4.7.2.3 リスト値バインディング

oracle.jbo.uicli.binding.JUCtrlListBindingクラスが、リスト・バインディングを実装します。

UIコンポーネントのタイプによって、リスト・バインディングは次の処理を行います。

  • バインドされたコレクション内のデータ・オブジェクトの属性を更新します。

  • バインドされたコレクション内のデータ・オブジェクト間を移動します。

  • あるコレクション内のデータ・オブジェクトを、別のコレクションのデータ・オブジェクトの値で更新します。

oracle.jbo.uicli.binding.JUCtrlListBindingクラスは、使用可能な次のプロパティ用のアクセッサ・メソッドを提供します。

  • displayData: マップ要素のリストを戻します。各マップ・エントリには、次の要素が含まれます。

    • selected: 現在のエントリが選択されている場合はTRUE

    • index: 現在のエントリの索引値

    • prompt: 現在のエントリのすべての表示属性値を連結した文字列

    • displayValues: 表示属性値のイテレータ

    • selectedIndex: バインディングが関連付けられる選択されたエントリの索引

  • displayHints: バインディングが関連付けられるすべての属性について、UIヒントの名前/値ペアのリストを戻します。マップには、次の要素が含まれます。

    • label: 現在の属性に表示するラベル

    • tooltip: 現在の属性に表示するツールチップ

    • displayHint: 現在の属性の表示ヒント

    • displayHeight: 現在の属性の高さ(行数)

    • displayWidth: 現在の属性の幅(文字数)

    • controlType: 現在の属性のコントロール・タイプ・ヒント

    • format: 現在の属性に使用する書式

この他に、リスト・バインディングのクラス階層によって定義される、次のプロパティを使用できます。

  • attributeValue: バインディングが関連付けられる最初の属性の値を戻します。

  • attributeValues: バインディングが関連付けられるすべての属性の値を、順序付きの配列で戻します。

  • attributeDef: バインディングが関連付けられる最初の属性の属性定義を戻します。

  • attributeDefs: バインディングが関連付けられるすべての属性の属性定義を戻します。

  • displayHint: バインディングが関連付けられる最初の属性の表示ヒントを戻します。ヒントには、属性を表示するべきかどうかが指定されています。

  • inputValue: バインディングが関連付けられる最初の属性の値を戻します。バインディングが属性に値を設定するために使用されていて、設定操作が失敗した場合、このメソッドは設定されようとしていた無効な値を戻します。

  • label: バインディングが関連付けられるすべての属性の属性名によってキーが指定されたラベルのマップを戻します。

  • labels: バインディングの最初の属性のラベルを戻します。

  • labelSet: バインディングが関連付けられるすべての属性について、順序付きのラベルのセットを戻します。

  • mandatory: バインディングが関連付けられる最初の属性が必須かどうかを戻します。

  • tooltip: バインディングが関連付けられる最初の属性のツールチップ・ヒントを戻します。

  • updateable: バインディングが関連付けられる最初の属性が更新可能かどうかを戻します。

この他に、ルート・クラスDCControlBindingによって定義される汎用プロパティを使用できます。

4.7.2.4 レンジ値バインディング

oracle.jbo.uicli.binding.JUCtrlRangeBindingクラスが、レンジ・バインディングを実装します。

レンジ・バインディングにより、バインドされたUIコンポーネントで、指定されたコレクションのデータ・オブジェクトから属性値のレンジを取得し、そのレンジに対する現在のデータ・オブジェクトの位置を表示できます。

oracle.jbo.uicli.binding.JUCtrlRangeBindingクラスは、使用可能な次のプロパティ用のアクセッサ・メソッドを提供します。

  • estimatedRowCount: このイテレータ・バインディングが関連付けられるコレクションの最大行数を戻します。

  • rangeSet: 関連付けられるイテレータ・バインディングの行のレンジに対する、マップ要素のリストを戻します。このリスト内の要素は、レンジ内の索引付けされた行に対するラッパー・オブジェクトで、バインディングがバインドされた属性にアクセスを制限します。参照オブジェクトに対して戻されるプロパティは次のとおりです。

    • index: この参照が指している行のレンジ索引。

    • key: この参照が指している行のキー。

    • keyStr: この参照が指している行のキーをStringで表したもの。

    • currencyString: 現在の索引付けされた行をStringで表したもの。現在のエントリが現在の行に属する場合には"*"を、そうでない場合には" "を戻します。このプロパティは、JSPアプリケーションで現在の行を表示する場合に便利です。

    • attributeValues: 行の適用可能な属性値の配列。

また、rangeSet.Dnameのように、レンジ・セットに対して名前で属性値にアクセスすることもできます(Dnameがレンジ・バインディング内のバインドされた属性の場合)。

この他に、レンジ・バインディングのクラス階層によって定義される、次のプロパティを使用できます。

  • attributeValue: バインディングが関連付けられる最初の属性の値を戻します。

  • attributeValues: バインディングが関連付けられるすべての属性の値を、順序付きの配列で戻します。

  • attributeDef: バインディングが関連付けられる最初の属性の属性定義を戻します。

  • attributeDefs: バインディングが関連付けられるすべての属性の属性定義を戻します。

  • displayHint: バインディングが関連付けられる最初の属性の表示ヒントを戻します。ヒントには、属性を表示するべきかどうかが指定されています。

  • inputValue: バインディングが関連付けられる最初の属性の値を戻します。バインディングが属性に値を設定するために使用されていて、設定操作が失敗した場合、このメソッドは設定されようとしていた無効な値を戻します。

  • label: バインディングが関連付けられるすべての属性の属性名によってキーが指定されたラベルのマップを戻します。

  • labels: バインディングの最初の属性のラベルを戻します。

  • labelSet: バインディングが関連付けられるすべての属性について、順序付きのラベルのセットを戻します。

  • mandatory: バインディングが関連付けられる最初の属性が必須かどうかを戻します。

  • tooltip: バインディングが関連付けられる最初の属性のツールチップ・ヒントを戻します。

  • updateable: バインディングが関連付けられる最初の属性が更新可能かどうかを戻します。

この他に、ルート・クラスDCControlBindingによって定義される汎用プロパティを使用できます。

4.7.2.5 スクロール値バインディング

oracle.jbo.uicli.binding.JUCtrlScrollBindingクラスが、スクロール・バインディングを実装します。

スクロール・バインディングにより、データ・バインドされたUIコンポーネントで、選択されたコレクション内のデータ・オブジェクトの現在位置を表示できます。ユーザーがUIコンポーネントをスクロールした場合、スクロール・バインディングはコレクション内の現在位置を維持します。

oracle.jbo.uicli.binding.JUCtrlScrollBindingクラスには、独自のランタイム・プロパティは定義されません。

ただし、ルート・クラスDCControlBindingによって定義される汎用プロパティを使用できます。

4.7.3 アクション・バインディングについて

oracle.jbo.uicli.binding.JUCtrlActionBindingクラスが、アクション・バインディングを実装します。

アクション・バインディングは、Oracle ADFによって定義されるバインディング・オブジェクトで、バインドされたデータ・コレクションの行セット・イテレータでアクションを実行します。実行時に、ユーザーがボタン・コントロールを使用してあるアクションを実行すると、アクション・バインディングがOracle ADFバインディング・コンテキストにアクセスし、選択されたコレクションのデータ・オブジェクトに対して指定されたアクションを実行します。アクション・バインディングは、事前に定義された多数のアクションをサポートします。

oracle.jbo.uicli.binding.JUCtrlActionBindingクラスは、メソッド型アクション・バインディングの使用可能な次のプロパティ用に、アクセッサ・メソッドを提供します。

  • params: アクションがバインドされたメソッドに渡されるパラメータ値のリストを戻します。

  • paramsMap: パラメータ値のマップを戻します。マップは、設計時にメタデータとして指定された順序付きのリストに変換され、マップ上のキーはパラメータの名前に変換されます。

  • result: メソッド起動の結果を戻します。メソッドはオブジェクトを戻す必要があります。

この他に、ルート・クラスDCControlBindingによって定義される汎用プロパティを使用できます。