この付録の内容は次のとおりです。
各ADF表コンポーネントは、ページ定義内で定義されているツリー・バインディングにバインドされます。各ツリー・コントロール・バインディングには、1つ以上のノードが定義されています。親子関係の場合、ツリー・バインディングには2つのノードがあり、一方は親表用、もう一方は子表用です。実行時に、ADF表コンポーネントは各ワークシート行に親と子の両方の属性を表示します。アップロード時に、ADFデスクトップ統合は親ノードと子ノードの両方に属性値を設定します。
特定の状況では、Table.Upload
リクエストの処理中に使用できる実際のデータ行が特定のツリー・ノードにないことがあります。ツリー・ノードにデータがない場合について、一般的な2つのシナリオを次に示します。
ツリー・ノードのイテレータ結果セットに、使用できるデータ行がありません。この原因は、ゼロ行を戻す問合せの可能性があります。
親子関係で外部キーが親表に移入されていない場合は、親と子のツリー・ノード間のリンクに実際の行が含まれていない可能性があります。
状況によっては、サーバー上に使用可能な実際の行がない場合でも、エンド・ユーザーがワークシートに値を入力してサーバーにアップロードできるようにすることがあります。アップロード時に、ADFデスクトップ統合は一時行オブジェクトを作成し、ワークシート行からアップロードされた値を格納します。ADFデスクトップ統合モデルAPIを使用すると、カスタムのJavaコードを記述して一時行オブジェクトにアクセスし、その値を収集できます。
アップロード時にカスタムのJavaコードをコールするには、pageDef
アクション・バインディングを介してカスタムのJavaコードを公開し、ADF表コンポーネントのUpdateRowActionID
またはInsertAfterRowActionID
を構成してpageDef
アクション・バインディングを指すようにする必要があります。
データをアップロードする際にADF表コンポーネントのツリー・ノードに実際の行がない場合、ADFデスクトップ統合のリモート・サーブレットにより、属性値を格納する一時行オブジェクトが作成されます。一時行オブジェクトおよびその属性値にアクセスするには、ADFデスクトップ統合モデルAPIライブラリを使用するカスタムのJavaコードを記述する必要があります。
注意:
EJBまたはTopLinkのデータ・コントロールでは、ADFデスクトップ統合モデルAPIはサポートされていません。
APIで使用できるクラスおよびメソッドの詳細は、「ADFデスクトップ統合モデルAPIのクラスおよびメソッド」を参照してください。
ADFデスクトップ統合モデルAPIライブラリには1つのpublicクラスがあり、一時行オブジェクトを取得するためのAPIが含まれています。
ModelHelper
クラスはpublicクラスであり、モデルAPIを公開します。次の各項で、このクラスで使用できるメソッドについて説明します。
このメソッドは、特定のマスター行に関連付けられている一時子行オブジェクト(ViewRowImpl
オブジェクト)を参照するために使用します。使用可能な実際のViewRowImpl
オブジェクトがない場合には、必要に応じてサーブレット・コードによって一時オブジェクトViewRowImpl
が作成され、属性値が格納されます。
このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImpl
を戻します。
メソッド構文
public static final ViewRowImpl getAdfdiTempChildRow(ViewRowImpl masterRow, java.lang.String childAccessor)
パラメータ
masterRow
– マスター行オブジェクト
childAccessor
– 子属性名
このメソッドは、特定のビューに関連付けられている一時子行オブジェクト(ViewRowImpl
オブジェクト)を参照するために使用します。使用可能な実際のViewRowImpl
オブジェクトがない場合には、必要に応じてサーブレット・コードによって一時オブジェクトViewRowImpl
が作成され、属性値が格納されます。
このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImpl
を戻します。
メソッド構文
public static final ViewRowImpl getAdfdiTempRowForView(ApplicationModuleImpl am,java.lang.String viewDefName)
パラメータ
am
– アプリケーション・モジュール・インスタンス
viewDefName
– ビュー定義名
このメソッドは、ビュー・リンクの宛先属性によって1つ以上の子識別子属性が指定される場合に、多相子ビュー定義を参照するために使用します。マスター行のソース属性は、ViewObjectImpl.findViewDefFromDiscrValues
APIを介して正しい多相子ビュー定義を参照します。子識別子属性が定義されていない場合、または子ビューが多相でない場合は、デフォルトの子オブジェクトViewDefImpl
が戻されます。
このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImpl
を戻しますが、オブジェクトが見つからない場合はNULLを戻します。
メソッド構文
public static final ViewDefImpl getChildViewDef(ViewRowImpl masterRow,java.lang.String childAccessor)
パラメータ
masterRow
– マスター行オブジェクト
childAccessor
– 子属性名