20 プレースホルダ・データ・コントロールによるページの設計

この章では、Oracle ADFアプリケーションでプレースホルダ・データ・コントロールを作成および使用する方法について説明します。ここでは、プレースホルダ・データ型の作成方法を、マスター/ディテール関係も含めて示します。また、サンプル・データの作成方法とインポート方法についても説明します。

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

プレースホルダ・データ・コントロールについて

ADFでは、宣言的なプロセスをサポートするために使用できるプレースホルダ・データ・コントロールが提供されており、これにはコーディングは不要です。実際のデータ・コントロールの準備ができている場合は、UIコンポーネントを再バインドできます。これにより、複雑なページの設計が簡単になります。

アプリケーション開発は通常、技術的実装とユーザー・インタフェース設計という2つの異なるプロセスに分けられます。一般的に、これらのプロセスは非常に異なるスキル・セットを持つ別々のチームによって実行されます。この2つのチームは、データ優先アプローチまたはUI優先アプローチ、もしくはこの2つを多少重複させた形で協業することができます。どちらのアプローチでも、通常、両チームは繰り返し協力して作業し、毎回アプリケーションを改良していきます。

データ優先アプローチでは、モデルまたはデータ・コントロールが最初に作成されます。設計者は次に、データ・コントロールをページにUIコンポーネントとしてドラッグ・アンド・ドロップして、レイアウトおよびページ・フローを作成します。モデル・データは、コンポーネントに自動的にバインドされます。このアプローチでは、設計者が作業を進める前に、データ・モデルが存在する必要があります。

UI優先アプローチでは、設計者は「コンポーネント」ウィンドウのコンポーネントを使用してレイアウトを作成します。データ・コントロールが使用可能になると、UIコンポーネントがそれらのコントロールにバインドされます。このアプローチでは、開発を評価するには、レイアウトおよびページ・フローの大半が確認可能である必要があります。ただし、データ・コントロールが使用可能になってコンポーネントにバインドされるまで、アプリケーションではその設計の意図を十分に伝えていない場合があります。たとえば、マスター/ディテール関係があるアプリケーションは、その関係を動的に駆動する実際のデータがある場合に、最も適切に確認されます。

プレースホルダ・データ・コントロールは、簡単に作成できる、十分な機能を備えた代理のデータ・コントロールで、設計開発プロセスの効率的な迅速化を可能にします。UI設計者は、プレースホルダ・データ・コントロールを使用することで、実際のデータ・コントロールを使用可能にする必要なく、ページ・レイアウトおよびページ・フローを作成できます。これらのプレースホルダ・コントロールにサンプル・データをロードすると、アプリケーションの実行を現実的にシミュレートして設計を評価できます。実際のデータ・コントロールが準備できた段階で、UIコンポーネントを簡単にリバインドしてアプリケーションを完成できます。

プレースホルダ・データ・コントロールの作成は完全に宣言的なプロセスであり、コーディングは不要です。基礎となるモデル、データソース・テクノロジ、実際のデータベース・スキーマ、実際の本番データ・コントロールにおける複雑な関係などに関する深い知識は必要ありません。プレースホルダ・データ・コントロールには、既存のデータソースやデータベース接続が不要です。複数の属性を使用して複数のデータ型を定義できます。また、データ型の間にネストされたマスター/ディテール階層を定義できます。プレースホルダ・データ・コントロールには、「Execute」、「Next」および「Create」などの同じ組込み操作があります。暗黙的に作成された名前付き基準アイテムを使用すると、ビュー・オブジェクトおよびビュー基準が使用できる場合と同様に、検索フォームを作成できます。

プレースホルダ・データ・コントロールのユースケースと例

複雑なアプリケーションの多くでは、UIの設計によってモデルやデータソースの開発が実質的に促進される場合があります。このUI優先のシナリオでは、プレースホルダ・データ・コントロールとサンプル・データを用意することが、アプリケーションの動作を適切にモデル化するために不可欠です。状況によっては、本番データ・コントロールを使用できる場合でも、UI設計者がその柔軟性と使用しやすさからプレースホルダ・データ・コントロールを使用することを選択する場合があります。

プレースホルダ・データ・コントロールは、様々な状況で使用できます。設計の確認および開発に使用する以外に、利便性の調査や概念の証明要件のための実際的なランタイム・モックアップの開発にも使用可能です。また、データ・モデルがまだ用意できていない段階でのデモの作成にも使用できます。

プレースホルダ・データ・コントロールの追加機能

プレースホルダ・データ・コントロールを使用する前に、いくつかのデータ・アクセス機能を理解しておくと役立つ場合があります。次に、関連する他の機能へのリンクを示します。

プレースホルダ・データ・コントロールの作成

ADFは、プロジェクトのプレースホルダ・データ・コントロールを作成するメニューを提供します。これは、組込み操作ノードがある「データ・コントロール」パネルにノードとして表示されます。このプレースホルダ・データ・コントロールをカスタマイズし、ページに追加してから、実際のデータ・コントロールに再バインドできます。

プレースホルダ・データ・コントロールは、「新規ギャラリ」を使用してプロジェクトに追加します。作成後のプレースホルダ・データ・コントロールは、「データ・コントロール」パネルにノードとして表示されます。このアイコンは、標準データ・コントロールのアイコンとは異なります。プレースホルダ・データ・コントロールには、「操作」ノードのかわりに「ビルトイン操作」ノードがあります。「ビルトイン操作」ノードにはCommitおよびRollback操作が含まれますが、データの実際のデータソースがないため、コミットまたはロールバックは実行されません。

データ・コントロールを最初に作成したときには、データ型が関連付けられていません。データ型は、「プレースホルダ・データ型の作成」の項の説明に従って、手動で作成する必要があります。

プレースホルダ・データ・コントロールの作成方法

プレースホルダ・データ・コントロールは、JDeveloperではプロジェクト・レベルで定義されます。プレースホルダ・データ・コントロールを作成する前に、プロジェクトが作成済である必要があります。

始める前に:

プレースホルダ・データ・コントロールを作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ・コントロールの作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

プレースホルダ・データ・コントロールを作成するには:

  1. 「アプリケーション」ウィンドウで、プレースホルダ・データ・コントロールを追加するプロジェクトを右クリックし、「新規」→「ギャラリから」を選択します。
  2. 「新規ギャラリ」で、「Business Tier」を展開し、「Data Controls」を選択した後、「プレースホルダ・データ・コントロール」を選択して「OK」をクリックします。
  3. 「プレースホルダ・データ・コントロール」ダイアログ(図20-1を参照)で、次の情報を入力します。
    • 名前: プレースホルダ・データ・コントロールの名前

    • パッケージ: プレースホルダ・データ・コントロールの参照に使用されるパッケージ名

    • 説明: プレースホルダ・データ・コントロールの説明(オプション)

    図20-1 新規の「プレースホルダ・データ・コントロール」ダイアログ

    この図は周囲のテキストで説明しています
  4. 「OK」をクリックします。

プレースホルダ・データ・コントロールの作成時の処理

プレースホルダ・データ・コントロールを作成するとき、データ・コントロールの保存先に選択したパッケージは、「アプリケーション」ウィンドウのプロジェクト・ノードに表示されます。データ・コントロールXMLファイルPlaceholderDataControl.xmlがこのパッケージの下に表示されます。ここで、PlaceholderDataControlはプレースホルダ・データ・コントロールの名前です。次の例は、サンプル・ファイルPlaceholder01.xmlを示しています。これは、Placeholder01データ・コントロールが作成されたときに作成されたファイルです。

<?xml version='1.0' encoding='windows-1252' ?>
<AppModule
   xmlns="http://xmlns.oracle.com/placeholder"
   Name="Placeholder01" >
</AppModule>

DataControls.dcxファイルが未定義の場合、このファイルもJDeveloperにより作成され、次の例に示すように、プレースホルダ・データ・コントロールのエントリが追加されます。

<?xml version="1.0" encoding="UTF-8" ?>
<DataControlConfigs xmlns="http://xmlns.oracle.com/adfm/configuration"
                    version="12.1.2" id="DataControls"
                    Package="model">
  <PlaceholderDataControl SupportsTransactions="true" SupportsFindMode="true"
                          SupportsResetState="true" SupportsRangesize="true"
                          SupportsSortCollection="true"
                          FactoryClass=
                            "oracle.adf.model.placeholder.DataControlFactoryImpl"
                          id="Placeholder01"
                          xmlns="http://xmlns.oracle.com/adfm/datacontrol"
                          Definition="model.prototype.Placeholder01"
                          Package="model.prototype"/>
</DataControlConfigs>

「データ・コントロール」パネルには、このプレースホルダ・データ・コントロールが他のデータ・コントロールとともにルート・ツリーに表示されます。データ型が未定義のプレースホルダ・データ・コントロールには、図20-2に示すように、CommitおよびRollbackの組込み操作のみが表示されます。

図20-2 「アプリケーション」ウィンドウと「データ・コントロール」パネル

この図は周囲のテキストで説明しています

プレースホルダ・データ型の作成

プレースホルダ・データ・タイプは、プレースホルダ・データ・コントロールのデータ・コレクションです。ADFには、プレースホルダ・データ・タイプの作成、既存のデータ・タイプまたはCSVファイルからの属性の追加、サンプル・データの追加、およびプレースホルダ・データ・タイプの構成のためのオプションが提供されています。

標準データ・コントロールは、そのデータ・コレクションおよび属性をモデルまたはビジネス・サービス・レイヤーにある基礎となるデータソースから取得します。たとえば、アプリケーション・モジュールのデータ・コントロールは、そのデータ・コレクションをビュー・オブジェクトおよび関連データベース表から取得します。

プレースホルダ・データ・コントロールには、データ・コレクションのかわりに、プレースホルダ・データ型があります。プレースホルダ・データ・タイプは、データ・コレクションに似ています。これをページにドロップすると、フォーム、表およびツリーなどの複雑なコンポーネントを作成できます。また、入力テキスト、出力テキスト、選択肢などの個々のコンポーネントとしてページにドロップできる属性セットも備えています。属性の中には、LOVとして定義できるものもあります。

プレースホルダ・データ・コントロールを初めて作成したとき、このコントロールにはデータ・タイプは1つもありません。これは、プレースホルダ・データ・コントロールが基礎となるデータベース表を参照していないからです。1つ以上のプレースホルダ・データ・タイプを宣言的に作成する必要があります。データ・タイプそれぞれについて、属性名、タイプ、デフォルトUIコンポーネントなどのオプションを指定します。アプリケーション・モジュールの複数のデータ・コレクションと同様、データ・コントロールについても複数のデータ・タイプを作成できます。

作成されたプレースホルダ・データ・タイプはその後、そのプレースホルダ・データ・コントロールの子ノードとして表示されます。また、ビルトイン操作ノードと、標準の操作セットも持っています。これは、標準データ・コントロールにあるビュー・オブジェクトの名前付きビュー基準に類似した「すべての問合せ可能な属性」項目を含む「名前付き基準」ノードを持ちます。「すべての問合せ可能な属性」項目をドラッグし、ページにドロップして、問合せやクイック問合せ検索フォームを作成できます。標準データ・コントロールでは、ビュー・オブジェクトに複数のビュー基準を作成できます。プレースホルダ・データ・タイプには実際のビュー・オブジェクトはないため、使用できる「すべての問合せ可能な属性」項目は1つのみです。問合せ検索フォームの詳細は、「ADFによるデータバインドされた検索フォームの作成」を参照してください。

標準データ・コントロールにおけるマスター/ディテール・データ・コレクションと同様に、プレースホルダ・データ型の間にマスター/ディテール関係を作成できます。マスター/ディテール・データ型をページにドロップすると、マスター/ディテール・フォームおよび表を作成できます。マスター/ディテール・フォームおよび表の詳細は、「マスター/ディテール・データの表示」を参照してください。

JDeveloperでは、同じプロジェクトの他のプレースホルダ・データ・コントロールに作成したプレースホルダ・データ型を再利用できます。データ型の作成時に、既存のデータ型を他のプレースホルダ・データ・コントロールからロードするオプションを選択できます。「インポート元: 既存のデータ型」オプションを選択すると、インポートするデータ型の属性が既存の属性のリストに追加されます。

属性の追加時には、インポートするデータ型に関連付けられているサンプル・データをインポートするオプションも選択できます。

ノート:

アプリケーションを実行するまでサンプル・データは必要ありませんが、設計時に一貫性を持ってコンポーネントをレンダリングするには、サンプル・データを追加する必要があります。

プレースホルダ・データ型の作成方法

プレースホルダ・データ・コントロールの作成後は、データ型の作成に進むことができます。データ型の名前を定義し、その各属性を定義します。属性ごとに、タイプ、フォーマット、デフォルトのUIコンポーネントおよびLOVにするかどうかを定義します。

プレースホルダ・データ型の作成プロセスを簡略化するため、StringBooleanDateおよびNumberの4つの最も一般的なタイプのリストから選択できます。プレースホルダの属性にはタイプが指定されているため、列ラベルを作成でき、UIのコントロールのヒントを設計に含めることができます。

カンマ区切り値(CSV)形式のサンプル・データ・ファイルがある場合は、サンプル・データ・ファイルのインポート機能を使用して、すべての属性の作成とサンプル・データのロードを実行できます。属性を作成する必要はありません。JDeveloperはそれらの属性をCSVファイルの形式から作成します。ファイルにはオプションで最初の行として列見出しのリストを含めることができます。属性のタイプはStringにデフォルトで設定されます。必要に応じて、各属性を別のタイプに手動でリセットできます。サンプル・データのインポート手順は、「属性とサンプル・データをプレースホルダ・データ型にインポートする方法」を参照してください。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

また、「プレースホルダ・データ・コントロールの作成方法」の説明に従って、まずプレースホルダ・データ・コントロールを作成する必要があります。

プレースホルダ・データ型を作成するには:

  1. 「アプリケーション」ウィンドウで、プレースホルダ・データ型を追加するプレースホルダ・データ・コントロールをダブルクリックします。

  2. 概要エディタの「データ型」セクションで、プレースホルダ・データ・コントロールを選択し、「新規プレースホルダ・データ型」アイコンをクリックします。

    ノート:

    または、「データ・コントロール」パネルのプレースホルダ・データ・コントロールを右クリックして「新規プレースホルダ・データ型」を選択しても、「プレースホルダ・データ型の作成」ダイアログを開くことができます。

    図20-3に、「プレースホルダ・データ型の作成」ダイアログを示します。

    図20-3 「プレースホルダ・データ型の作成」ダイアログ

    この図は周囲のテキストで説明しています
  3. 「プレースホルダ・データ型の作成」ダイアログで、プレースホルダ・データ型のファイル名とパッケージを入力します。

  4. 属性およびデータをインポートする既存のプレースホルダ・データ型または.csvファイルがある場合、「インポート元」を選択し、「.CSVファイル」または「既存のデータ型」を選択して、インポートのオプションを指定します。

    .csvファイルからインポートするには:

    1. 「ファイル名」フィールドで、インポート元にするファイルを指定し、「参照」アイコンをクリックしてファイルに移動して選択します。

    2. 「文字セット」ドロップダウン・リストから、ファイルで使用する文字セットを選択します。

    3. ファイルに列名を含むヘッダー行がある場合、「インポートするファイルの1行目に属性名を含めます。」を選択します。

    既存のプレースホルダ・データ型からインポートするには:

    1. ツリーを開き、既存のプレースホルダ・データ型を見つけて選択します。

    2. 既存のデータ型にインポートするデータが含まれる場合、「サンプル・データもインポートします。」を選択します。

  5. 「OK」をクリックします。

    プレースホルダ・データ型が作成され、概要エディタで開きます。

  6. 概要エディタで、「属性」ナビゲーション・タブをクリックし、プレースホルダ・データ型の属性を表示、追加および編集します。

  7. 「データ」ナビゲーション・タブをクリックして、プレースホルダ・データ型のサンプル・データを表示、追加および編集します。

    実行時用、および一貫性設計時用のサンプル・データが必要です。

属性とサンプル・データをプレースホルダ・データ型に追加する方法

プレースホルダ・データ・コントロールを使用するアプリケーションを実行する場合は、実行時に表示されるサンプル・データを追加する必要があります。サンプル・データは、手動で、またはデータを別のプレースホルダ・データ型あるいはCSVファイルからインポートすることで、プレースホルダ・データ型の属性に追加できます。サンプル・データは実行時にのみ必須ですが、設計時に一貫性を持ってコンポーネントをレンダリングするためには、サンプル・データを追加する必要があります。

プレースホルダ・データ型の作成時に属性をインポートしなかった場合、概要エディタの「属性」ページを使用して属性を追加できます。また、概要エディタの「データ」ページを使用して、実行時に表示されるサンプル・データを追加できます。「属性」ページと「データ」ページの両方に「インポート」ボタンがあり、これをクリックすると「プレースホルダ・データ型のインポート」ダイアログが開き、このダイアログから属性とサンプル・データをインポートできます。

サンプル・データをプレースホルダ・データ型を追加する前に、プレースホルダ・データ・コントロールおよびプレースホルダ・データ型を作成しておく必要があります。データを手動で入力する場合は、そのデータを用意しておく必要があります。データをCSVファイルからロードする場合は、ファイルの場所を把握しておく必要があります。別のプレースホルダ・データ型をインポートする場合は、もう一方のデータ型も作成している必要があります。

プレースホルダ・データ型への属性の手動による追加

概要エディタの「属性」ページを使用すると、プレースホルダ・データ型に属性を追加して構成できます。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

また、「プレースホルダ・データ・コントロールの作成方法」の説明に従って、まずプレースホルダ・データ・コントロールを作成し、「プレースホルダ・データ型の作成方法」に従って、プレースホルダ・データ型を作成する必要があります。

プレースホルダ・データ型を手動で追加するには:

  1. 「アプリケーション」ウィンドウで、属性を追加するプレースホルダ・データ型をダブルクリックします。
  2. 概要エディタで、「属性」ナビゲーション・タブをクリックします。
  3. 「属性」ページで、「追加」アイコンをクリックします。
  4. 「ビュー属性の追加」ダイアログで、属性の名前を入力し、「OK」をクリックします。
  5. 属性を追加したら、属性を選択し、属性リストの横のフィールドを使用して選択した属性を構成します。
    • 名前: 属性の名前を入力します。

    • データ型: 属性の型をドロップダウン・リストから選択します。サポートされるタイプは、StringBooleanDate、およびNumberです。

    • デフォルト・コンポーネント: 属性のデフォルトのコンポーネントをドロップダウン・リストから選択します。LOVの場合は、「値リストを使用したコンボ・ボックス」を選択します。次に、「編集」アイコンをクリックして、LOVを構成します。詳細は、「プレースホルダ・データ型の属性を値リストに構成する方法」を参照してください。

    • デフォルト値: 属性の初期値を入力します。

    • ラベル: 属性のラベルを入力します。このラベルは、コンポーネントが表示されるときに使用されます。

    • ツールチップ: 属性のツールチップとして表示されるテキストを入力します。

    • フォーマットの種類: このフィールドは、タイプがDateまたはNumberの場合にのみ使用できます。フォーマットの種類をドロップダウン・リストから選択します。

    • フォーマット: このフィールドは、このフォーマットの種類に対してフォーマット・マスクが定義されている場合のみ有効になります。

    • 表示幅: この属性を表示するコントロールで使用する文字幅を入力します。

    • 検索可能: 属性を検索可能にする場合にこのチェック・ボックスを選択します。

    別の属性を追加するには、「追加」アイコンをクリックします。

サンプルデータを手動で追加

「プレースホルダ・データ型の編集」ダイアログの「サンプル・データ」ページを使用すると、プレースホルダ・データ・コントロールのサンプル・データを手動で入力できます。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

プレースホルダ・データ型にサンプル・データを追加する前に、次のタスクを実行する必要があります。

サンプル・データをプレースホルダ・データ型に手動で追加するには:

  1. 「データ・コントロール」パネルで、サンプル・データを追加するプレースホルダ・データ型を右クリックし、「開く」を選択します。
  2. 概要エディタで、「データ」ナビゲーション・タブをクリックします。
  3. 「データ」ページで、「追加」アイコンをクリックして、データ表に行を追加し、各属性の値を入力します。十分なサンプル・データを入力するまで、必要に応じて繰り返します。
属性とサンプル・データをプレースホルダ・データ型にインポートする方法

属性とサンプル・データをプレースホルダ・データ型に手動で入力するかわりに、それらを1回の操作でインポートできます。概要エディタの「属性」ページを使用すると、既存のプレースホルダ・データ型または.csvファイルから属性をインポートできます。

.csv (カンマ区切りの値)ファイルは、カンマで区切られた、属性値の行を含むプレーン・テキスト・ファイルです。.csvファイルには、オプションで各属性の名前を定義するヘッダー行を含めることができます。

プレースホルダ・データ型の概要エディタで、「属性」ページと「データ」ページの両方に「インポート」ボタンがあり、これをクリックすると「プレースホルダ・データ型のインポート」ダイアログが開き、このダイアログから属性とサンプル・データをインポートできます。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

また、「プレースホルダ・データ・コントロールの作成方法」の説明に従って、まずプレースホルダ・データ・コントロールを作成し、「プレースホルダ・データ型の作成方法」に従って、プレースホルダ・データ型を作成する必要があります。

プレースホルダ・データ型に属性をインポートするには:

  1. 「アプリケーション」ウィンドウで、属性を追加するプレースホルダ・データ型をダブルクリックします。

  2. 概要エディタで、「属性」ナビゲーション・タブをクリックします。

  3. 属性とともにサンプル・データをインポートする場合は、プレースホルダ・データ型の既存の属性を削除する必要があります。

    既存の属性を削除しないと、JDeveloperでは最初から定義された属性の数のデータ列のみがインポートされます。たとえば、CSVファイルで、データ型に2つの属性が定義されており、サンプル・データに4つの列が存在する場合、JDeveloperはデータの最初の2つの列のみをインポートします。

  4. 「属性」ページで、「インポート」をクリックします。

  5. 「プレースホルダ・データ型のインポート」ダイアログで、属性のインポート元を指定します。

    .csvファイルを使用するには:

    1. 「.CSVファイルからインポート」を選択します。

    2. 「ファイル名」フィールドで、ファイルのフルパスと名前を指定し、「参照」アイコンをクリックしてファイルに移動して選択します。

    3. 「文字セット」ドロップダウン・リストから、指定された.csvファイルで示される文字セットを選択します。

    4. .csvファイルに属性名を含むヘッダー行がある場合、「インポートするファイルの1行目に属性名を含めます。」を選択します。

    既存のプレースホルダ・データ型を使用するには:

    1. 「既存のプレースホルダ・データ型からインポート」を選択します。

    2. 表示される利用できるプレースホルダ・データ・コントロールを開いて、それらに含まれるプレースホルダ・データ型を表示し、コピーするデータ型を選択します。

    図20-4 「プレースホルダ・データ型のインポート」ダイアログ

    この図は周囲のテキストで説明しています
  6. 「サンプル・データもインポートします。」チェック・ボックスを選択して、ファイルまたは既存のプレースホルダ・データ型からサンプル・データをロードします。

  7. プレースホルダ・データ型にすでに定義されている属性に対して、追加するか上書きするかを指定します。

    • 「追加」を選択すると、プレースホルダ・データ型の現在の属性リストにインポートした属性が追加されます。

    • 「上書き」を選択すると、現在の属性がインポートした属性で置き換えられます。

  8. 「OK」をクリックします。

  9. 属性をインポートしたら、オプションで「属性」ページに移動して属性を再構成できます。

サンプル・データの追加時の処理

プレースホルダ・サンプル・データは、手動で追加またはインポートされたかにかかわらず、メッセージ・バンドル・ファイルに格納されています。次の例は、5つの属性の2つの行を持つメッセージ・バンドルのサンプルを示しています。

model.prototype.SupplierLocationsDataType.SL_0_0=101
model.prototype.SupplierLocationsDataType.SL_0_1=so
model.prototype.SupplierLocationsDataType.SL_0_2=Houston
model.prototype.SupplierLocationsDataType.SL_0_3=TX
model.prototype.SupplierLocationsDataType.SL_0_4=USA
model.prototype.SupplierLocationsDataType.SL_1_0=101
model.prototype.SupplierLocationsDataType.SL_1_1=dw
model.prototype.SupplierLocationsDataType.SL_1_2=Atlanta
model.prototype.SupplierLocationsDataType.SL_1_3=GA
model.prototype.SupplierLocationsDataType.SL_1_4=USA

プレースホルダ・データ型の作成時の処理

プレースホルダ・データ型を作成すると、JDeveloperによってPlaceholderDataType.xmlファイルが作成されます(PlaceholderDataTypeは、指定したプレースホルダ・データ型の名前です)。

PlaceholderDataType.xmlファイルは、ビュー・オブジェクトのXMLファイルと同じ形式になります。これには、ビュー・オブジェクトの名前と、プレースホルダに定義した各属性の名前と値が含まれます。

次の例は、Supplierデータ型のPlaceholderDataType.xmlを示しています。Supplier_IdSupplier_Nameの2つの属性が宣言的に定義されています。

<?xml version='1.0' encoding='windows-1252' ?>
<ViewObject
  xmlns="http://xmlns.oracle.com/placeholder"
  Name="SuppliersDataType"
  InheritPersonalization="merge"
  BindingStyle="OracleName"
  CustomQuery="true">
  <ViewAttribute
    Name="Supplier_Id"
    Type="oracle.jbo.domain.Number"/>
  <ViewAttribute
    Name="Supplier_Name"
    Type="java.lang.String"/>
</ViewObject>

データ型は、データ・コレクションと類似しており、ビュー・オブジェクトに基づいているため、各データ型には対応するPlaceholderDataType.xmlファイルがあります。

また、JDeveloperによって各プレースホルダ・データ型のエントリがPlaceholderDataControl.xmlファイルに追加されます。たとえば、Suppliersデータ型が作成されると、次の例に示すように、データ・コントロールXMLファイルにSuppliersデータ型の新しいViewUsageエントリが含まれます。

<?xml version="1.0" encoding="windows-1252" ?>
<AppModule
  xmlns="http://xmlns.oracle.com/placeholder"
  Name="Placeholder01"
  InheritPersonalization="merge">
  <ViewUsage
    Name="SuppliersDataType"
    ViewObjectName="model.prototype.SuppliersDataType"/>
</AppModule>

「データ・コントロール」パネルで、プレースホルダ・データ・コントロールの下にプレースホルダ・データ型のノードが表示されます。このノードを展開すると、各属性、「ビルトイン操作」ノードおよび「名前付き基準」ノードが存在することがわかります。

図20-5に、「データ・コントロール」パネルに表示されるプレースホルダ・データ・コントロールを示します。

図20-5 「データ・コントロール」パネルに表示されるプレースホルダ・データ・コントロール

この図は周囲のテキストで説明しています

プレースホルダ・データ型の属性を値リストに構成する方法

プレースホルダ・データ型の属性は、値リスト(LOV)に構成できます。LOV形式の属性は、ドロップダウン・リストまたはリスト選択ダイアログを表示するUIコンポーネントにバインドされます。LOVの詳細は、「ビュー・オブジェクト属性の値リスト(LOV)での作業」を参照してください。

プレースホルダ・データ型の属性の構成時に、その属性をLOVに構成するダイアログを表示するオプションを選択できます。

データソースが1つしかない場合、作成できるのは固定LOVのみです。動的LOVを作成するには、ソースで複数のプレースホルダ・データ型を使用できる必要があります。

固定LOVにする属性の構成

作業を始める前に、固定LOVにする属性、および固定リストに入れる値を決定する必要があります。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

また、プレースホルダ・データ・コントロールに対してすでにプレースホルダ・データ型を作成している必要があります。

属性を固定LOVに構成するには:

  1. 「データ・コントロール」パネルで、プレースホルダ・データ型を右クリックし、「開く」を選択します。
  2. 概要エディタで、「属性」ナビゲーション・タブをクリックします。
  3. 「属性」ページで、LOVとして構成する属性を選択します。
  4. 「デフォルト・コンポーネント」プルダウン・リストの横にある「LOVバインディングの編集」アイコンをクリックします。

    「値リストの設定」ダイアログ(図20-6を参照)が表示されます。

    図20-6 固定LOVの「値リストの設定」ダイアログ

    図20-6の説明は次にあります。
    「図20-6 固定LOVの「値リストの構成」ダイアログ」の説明
  5. ダイアログで、「固定リスト」を選択します。
  6. 「追加」アイコンをクリックして、値リストにエントリを追加します。
  7. 各エントリに対し、ラベルおよび値を入力します。

    ユーザーがアイテムを値リストから選択すると、対応する値エントリが入力フィールドに入力されます。

  8. ドロップダウン・リストに表示する最近使用したアイテムの最大数を選択します。
  9. 「"選択なし"アイテム」ドロップダウン・リストから、「選択なし」アイテムの表示方法のオプションを選択します。

    たとえば、「空のアイテム(リストの最初)」を選択すると、「選択なし」アイテムはリストの最初に空白として表示されます。

  10. 「OK」をクリックします。
動的LOVにする属性の構成

プレースホルダ・データ型をソースとして使用すると、属性を動的なLOVとして構成できます。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

また、動的LOVのソースの役割を果たすプレースホルダ・データ型をもう1つ作成しておく必要があります。

属性を動的LOVに構成するには:

  1. 「データ・コントロール」パネルで、プレースホルダ・データ型を右クリックし、「開く」を選択します。
  2. 概要エディタで、「属性」ナビゲーション・タブをクリックします。
  3. 「属性」ページで、LOVとして構成する属性を選択します。
  4. 「デフォルト・コンポーネント」プルダウン・リストの横にある「LOVバインディングの編集」アイコンをクリックします。

    「値リストの設定」ダイアログ(図20-7を参照)が表示されます。

    図20-7 動的LOVの「値リストの設定」ダイアログ

    図20-7の説明は次にあります。
    「図20-7 動的LOVの「値リストの構成」ダイアログ」の説明
  5. 「値リストの構成」ダイアログで、「動的リスト」を選択します。
  6. リスト・データ型およびそのソース属性を選択します。これを選択可能にするには、ソースにプレースホルダ・データ型が必要です。
  7. リストの属性を選択します。
  8. 目的の表示属性を「使用可能」リストから「選択済」リストに移動します。
  9. ドロップダウン・リストに表示する最近使用したアイテムの最大数を選択します。
  10. 「"選択なし"アイテム」ドロップダウン・リストから、「選択なし」アイテムの表示方法のオプションを選択します。たとえば、「空のアイテム(リストの最初)」を選択すると、「選択なし」アイテムはリストの最初に空白として表示されます。
  11. 「OK」をクリックします。

マスター/ディテール・データ型の作成方法

表の間にマスター/ディテール階層を作成するのと同様に、データ型の間にマスター/ディテール関係を作成します。標準データ・コントロールでは、ビュー・リンクを使用して、マスター・オブジェクトおよびディテール・オブジェクトになるソース・ビュー・オブジェクトおよびターゲット・ビュー・オブジェクトを定義できます。マスター/ディテール関係の詳細は、「マスター/ディテール・データの表示」を参照してください。

まず、マスター・データ型とその属性を作成します。次に、ディテール・データ型をマスター・データ型の子として作成します。ディテール・データ型への関係を定義するソース属性をマスター・データ型に定義します。

始める前に:

プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、「プレースホルダ・データ型の作成」を参照してください。

また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、「プレースホルダ・データ・コントロールの追加機能」を参照してください。

プレースホルダ・マスター/ディテール階層を作成する前に、次のタスクを実行する必要があります。

  • マスター・データ型のデータ構造とディテール・データ型のデータ構造を決定します。

  • ディテール・データ型のソースとなるマスターの属性を決定します。

  • 「プレースホルダ・データ型の作成方法」の説明に従って、マスターとするプレースホルダ・データ型を作成します。

マスター/ディテール階層データ型を作成するには:

  1. 「データ・コントロール」パネルで、マスター・プレースホルダ・データ型を右クリックし、「新規子プレースホルダ・データ型」を選択します。

    図20-8に、ディテール・データ型の属性を入力する「プレースホルダ・データ型の作成」ダイアログを示します。

    図20-8 「子プレースホルダ・データ型の作成」ダイアログ

    この図は周囲のテキストで説明しています
  2. 「プレースホルダ・データ型の作成」ダイアログで、ディテール・データ型の名前とパッケージを入力します。

  3. 「親に対する結合属性」ドロップダウン・リストで、新しいディテール・データ型に結合するために使用する属性をマスター・データ型から選択します。

  4. 属性およびデータをインポートする既存のプレースホルダ・データ型または.csvファイルがある場合、「インポート元」を選択し、「.CSVファイル」または「既存のデータ型」を選択して、インポートのオプションを指定します。

    .csvファイルからインポートするには:

    1. 「ファイル名」フィールドで、インポート元にするファイルを指定し、「参照」アイコンをクリックしてファイルに移動して選択します。

    2. 「文字セット」ドロップダウン・リストから、ファイルで使用する文字セットを選択します。

    3. ファイルに列名を含むヘッダー行がある場合、「インポートするファイルの1行目に属性名を含めます。」を選択します。

    既存のプレースホルダ・データ型からインポートするには:

    1. ツリーを開き、既存のプレースホルダ・データ型を見つけて選択します。

    2. 既存のデータ型にインポートするデータが含まれる場合、「サンプル・データもインポートします。」を選択します。

  5. 「OK」をクリックします。

図20-9に示すように、「データ・コントロール」パネルにディテール・データ型がマスター・データ型の子として表示されます。属性をインポートしていない場合は、「属性とサンプル・データをプレースホルダ・データ型に追加する方法」の説明に従って、ここで属性を追加できます。

図20-9 プレースホルダ・データ・コントロールのマスター/ディテール階層

この図は周囲のテキストで説明しています

マスター/ディテール・データ型の作成時の処理

マスター/ディテール関係は、ビュー・オブジェクトおよびビュー・リンクを使用して、標準のマスター/ディテール関係と同様に実装されます。プレースホルダ・データ型をマスター/ディテール階層に定義すると、その関係を定義するビュー・リンクのメタデータ・エントリを含むDTLink.xmlファイルがJDeveloperによって作成されます。ビュー・リンクの詳細は、「マスター/ディテール階層における複数表の使用」を参照してください。たとえば、キーSupplier_Idに関連付けられているマスター・データ型SuppliersDataTypeとディテール・データ型SupplierLocationsDataType間の関係では、次の例に示すように、JDeveloperによって、その関係を定義するDTLink.xmlファイルがビュー・リンク・ファイルの形式で作成されます。

<?xml version="1.0" encoding="windows-1252" ?>
<ViewLink
  xmlns="http://xmlns.oracle.com/placeholder"
  Name="DTLink"
  InheritPersonalization="merge">
  <ViewLinkDefEnd
    Name="SuppliersDataType"
    Cardinality="1"
    Source="true"
    Owner="model.prototype.SuppliersDataType">
    <AttrArray Name="Attributes">
      <Item Value="model.prototype.SuppliersDataType.Supplier_Id"/>
    </AttrArray>
  </ViewLinkDefEnd>
  <ViewLinkDefEnd
    Name="SupplierLocationsDataType"
    Cardinality="-1"
    Owner="model.prototype.SupplierLocationsDataType">
    <AttrArray Name="Attributes">
      <Item Value="model.prototype.SupplierLocationsDataType.Supplier_Id"/>
    </AttrArray>
  </ViewLinkDefEnd>
</ViewLink>

プレースホルダ・データ・コントロールの使用

プレースホルダ・データ・コントロールを使用して、レイアウトや検索フォームを作成したり、コンポーネントをバインドできます。実際のデータ・コントロールの準備ができた後で、コンポーネントを再バインドできます。プレースホルダ・データ・コントロールをパッケージ化し、ADFライブラリJARに追加して再利用することもできます。

プレースホルダ・データ・コントロールは、標準データ・コントロールと同様に使用します。データ型をページにドラッグし、ポップアップ・メニューを使用してデータ型をフォーム、表、ツリー、グラフなどのコンポーネントとしてドロップできます。個々の属性は、テキスト、値リスト、単一選択などのコンポーネントとしてページにドロップできます。「Create」「Execute」、および「Next」などのすべての組込み操作は、ボタン、コマンド・リンクおよびメニュー・アイテムとしてドロップすることで、使用可能になります。

プレースホルダ・データ・コントロールは、次に示すように、いくつかの方法で利用できます。

  • プレースホルダ・データ・コントロールを使用してページを作成し、実際のデータ・コントロールに後でリバインドできます。

  • コンポーネントを使用してページを作成し、プレースホルダ・データ・コントロールにバインドし、実際のデータ・コントロールに後でリバインドできます。

  • 「コンポーネント」パレットやプレースホルダ・データ・コントロールのいくつかのコンポーネントを組み合せて使用してページを作成し、実際のデータ・コントロールに後でバインドまたはリバインドできます。

プレースホルダ・データ・コントロールの制限

プレースホルダ・データ・コントロールは、アプリケーション開発における様々な状況で使用できます。ほとんどのUI設計評価では、プレースホルダ・データ・コントロールは実際のデータ・コントロールの完全な代替となる必要があります。

次の制限に注意してください。

  • データ型は基礎となるデータソースに関連付けられていないため、コミット操作およびロールバック操作では実際のトランザクションの実行やキャッシュの更新は行われません。

  • プレースホルダ・データ・コントロールは、宣言的にのみ作成できます。実際のアプリケーション・モジュールやデータ・コントロールの場合とは異なり、カスタム・メソッドを作成できません。

  • プレースホルダ・データ・コントロールは、カスタム・データ、データをフェッチするためのフィルタリングまたはカスタム・コードが必要な場合は使用できません。プレースホルダ・データ・コントロールでは、これらの操作が無効化されます。

レイアウトの作成

プレースホルダ・データ・コントロール、使用できる実際のデータ・コントロールおよび「コンポーネント」ウィンドウのコンポーネントを使用して、ドラッグ・アンド・ドロップ機能によってページを作成します。実際のデータを必要とするページまたはアプリケーションを実行する場合は、プレースホルダ・データ型のサンプル・データを入力します。サンプル・データの量が多い場合は、データ・ソースからCSVファイルを作成してデータ型にロードできます。また、CSVサンプル・データ・ファイルの作成には、スプレッドシートまたは他のツールを使用できる場合もあります。

検索フォームの作成

標準データ・コントロールでは、ビュー・オブジェクトにビュー基準を作成して問合せを変更できます。これらのビュー基準は、問合せおよびクイック問合せ検索フォームのドラッグ・アンド・ドロップによる作成にも使用されます。名前付きビュー基準アイテムは、データ・コレクションの「名前付き基準」ノードの下に表示されます。問合せ検索フォームおよびクイック問合せ検索フォームの詳細は、「ADFによるデータバインドされた検索フォームの作成」を参照してください。

プレースホルダ・データ・コントロールにも、各データ型のノードの下に「名前付き基準」ノードがあります。自動的に作成されたAll Queriable Attributesアイテムはこのノードの下に表示され、このアイテムを使用してページにドラッグ・アンド・ドロップすると問合せ検索フォームまたはクイック問合せ検索フォームを作成できます。

コンポーネントのバインド

データ・コントロールを使用してページを作成するかわりに、たとえば、データの形態が不明な場合は、まず「コンポーネント」ウィンドウを使用してページをレイアウトし、後でプレースホルダ・データ・コントロールのデータ型、属性または操作にバインドできます。

コンポーネントのリバインド

最終的なデータ・コントロールが用意できた後は、単にコンポーネントをリバインドできます。「構造」ウィンドウでコンポーネントを選択し、ポップアップ・メニューを使用して関連するリバインド・ダイアログを開くことができます。また、データ・コントロール・アイテムをUIコンポーネントにドラッグ・アンド・ドロップしてリバインド・エディタを開始することも可能です。コンポーネントの元のバインド先がプレースホルダ・データ・コントロールか標準データ・コントロールかに関係なく、リバインド手順は同じです。

コンポーネントのリバインドの詳細は、「データバインドされた基本的なページの作成」および「ADFによるデータバインドされた表の作成」を参照してください。

ADFライブラリJARへのプレースホルダ・データ・コントロールのパッケージ化

プレースホルダ・データ・コントロールの便利な機能として、開発者と設計者の間での並行開発および作業分割を可能にする機能があります。プレースホルダ・データ・コントロールをADFライブラリJARとして再利用可能なコンポーネントにパッケージ化すると、この機能をさらに有効利用できます。ADFライブラリは、ADFコンポーネントのすべての必要なアーティファクトがパッケージ化されたJARです。再利用可能なコンポーネントおよびADFライブラリの詳細は、「アプリケーション・コンポーネントの再利用」を参照してください。プレースホルダ・データ・コントロールのライブラリを作成し、同じUIプロジェクトで作業している複数の設計者に配布できます。また、軽量であるため、UI設計の初期段階では、使用可能な実際のデータ・コントロールのかわりに使用することもできます。