ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Frameworkデスクトップ統合開発者ガイド
11gリリース1(11.1.1.6.0)
B66694-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

H ADFデスクトップ統合モデルAPIの使用

この付録では、ツリー・ノード・バインディングに使用可能な実際の行がない場合に、アップロード・プロセスで渡される属性値にアクセスするために、ADFデスクトップ統合モデルAPIライブラリを使用してカスタムのApplicationModuleメソッドを有効化する方法について説明します。

この付録の内容は次のとおりです。

H.1 一時行オブジェクトの概要

各ADF表コンポーネントは、ページ定義内で定義されているツリー・バインディングにバインドされます。各ツリー・コントロール・バインディングには、1つ以上のノードが定義されています。親子関係の場合、ツリー・バインディングには2つのノードがあり、一方は親表用、もう一方は子表用です。実行時には、ADF表コンポーネントによって各ワークシート行に親と子の両方の属性が表示されます。アップロード時に、ADFデスクトップ統合によって親ノードと子ノードの両方に属性値が設定されます。

特定の状況では、Table.Uploadリクエストの処理中に使用できる実際のデータ行が特定のツリー・ノードにない場合があります。ツリー・ノードにデータがない場合について、一般的な2つのシナリオを次に示します。

状況によっては、サーバー上に使用可能な実際の行がない場合でも、エンド・ユーザーがワークシートに値を入力してサーバーにアップロードできるようにすることがあります。アップロード時に、ADFデスクトップ統合によって一時行オブジェクトが作成され、ワークシート行からアップロードされた値が格納されます。ADFデスクトップ統合モデルAPIを使用すると、カスタムのJavaコードを記述して一時行オブジェクトにアクセスし、その値を収集できます。

アップロード時にカスタムのJavaコードをコールするには、pageDefアクション・バインディングを介してカスタムのJavaコードを公開し、ADF表コンポーネントのUpdateRowActionIDまたはInsertAfterRowActionIDを構成してpageDefアクション・バインディングを指すようにする必要があります。

H.2 ADFデスクトップ統合モデルAPIの概要

データをアップロードする際にADF表コンポーネントのツリー・ノードに実際の行がない場合、ADFデスクトップ統合のリモート・サーブレットにより、属性値を格納する一時行オブジェクトが作成されます。一時行オブジェクトおよびその属性値にアクセスするには、ADFデスクトップ統合モデルAPIライブラリを使用するカスタムのJavaコードを記述する必要があります。

APIで使用できるクラスおよびメソッドの詳細は、H.3項「ADFデスクトップ統合モデルAPIのクラスおよびメソッド」を参照してください。

H.2.1 JDeveloperプロジェクトへのADFデスクトップ統合モデルAPIライブラリの追加方法

通常、ADFデスクトップ統合モデルAPIライブラリはアプリケーションのデータ・モデル・プロジェクトに追加します。このライブラリは独立ライブラリで、いずれのテクノロジ・スコープにも含まれません。「プロジェクト・プロパティ」ダイアログ・ボックスを介して追加できます。

ADFデスクトップ統合モデルAPIライブラリをプロジェクトに追加する手順:

  1. 「アプリケーション・ナビゲータ」でデータ・モデル・プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。

  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」を選択して、使用可能なライブラリのリストを表示します。

  3. 「ライブラリの追加」ダイアログ・ボックスで「ライブラリの追加」をクリックし、「ADFデスクトップ統合モデルAPI」ライブラリを選択します。

    図H-1 「ライブラリの追加」ダイアログ

    モデルAPIライブラリが表示されている「ライブラリの追加」ダイアログ
  4. 「OK」をクリックします。ライブラリ名が「クラスパス・エントリ」リストに追加されます。

  5. 「OK」をクリックして「プロジェクト・プロパティ」ダイアログ・ボックスを閉じます。

H.3 ADFデスクトップ統合モデルAPIのクラスおよびメソッド

ADFデスクトップ統合モデルAPIライブラリには1つのpublicクラスがあり、一時行オブジェクトを取得するためのAPIが含まれています。

H.3.1 oracle.adf.desktopintegration.model.ModelHelperクラス

ModelHelperクラスはpublicクラスであり、モデルAPIを公開します。このクラスで使用できるメソッドを、次のシナリオで説明します。

H.3.1.1 getAdfdiTempChildRowメソッド

このメソッドは、特定のマスター行に関連付けられている一時子行オブジェクト(ViewRowImplオブジェクト)を参照するために使用します。使用可能な実際のViewRowImplオブジェクトがない場合には、必要に応じてサーブレット・コードによって一時オブジェクトViewRowImplが作成され、属性値が格納されます。

このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImplを戻します。

メソッド構文

public static final ViewRowImpl getAdfdiTempChildRow(ViewRowImpl masterRow, java.lang.String childAccessor)

パラメータ

  • masterRow – マスター行オブジェクト

  • childAccessor – 子属性名

H.3.1.2 getAdfdiTempRowForViewメソッド

このメソッドは、特定のビューに関連付けられている一時子行オブジェクト(ViewRowImplオブジェクト)を参照するために使用します。使用可能な実際のViewRowImplオブジェクトがない場合には、必要に応じてサーブレット・コードによって一時オブジェクトViewRowImplが作成され、属性値が格納されます。

このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImplを戻します。

メソッド構文

public static final ViewRowImpl getAdfdiTempRowForView(ApplicationModuleImpl am,java.lang.String viewDefName)

パラメータ

  • am – アプリケーション・モジュール・インスタンス

  • viewDefName – ビュー定義名

H.3.1.3 getChildViewDefメソッド

このメソッドは、ビュー・リンクの宛先属性によって1つ以上の子識別子属性が指定される場合に、多相子ビュー定義を参照するために使用します。マスター行のソース属性は、ViewObjectImpl.findViewDefFromDiscrValues APIを介して正しい多相子ビュー定義を参照します。子識別子属性が定義されていない場合、または子ビューが多相でない場合は、デフォルトの子オブジェクトViewDefImplが戻されます。

このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImplを戻しますが、オブジェクトが見つからない場合はNULLを戻します。

メソッド構文

public static final ViewDefImpl getChildViewDef(ViewRowImpl masterRow,java.lang.String childAccessor)

パラメータ

  • masterRow – マスター行オブジェクト

  • childAccessor – 子属性名