ヘッダーをスキップ
Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド
11gリリース1 (11.1.1.7.0)
B52028-05
  目次へ移動
目次

前
 
次
 

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

この章では、プレースホルダ・データ・コントロールを作成して、Fusion Webアプリケーションのユーザー・インタフェース(UI)設計に役立てる方法を説明します。ここでは、プレースホルダ・データ型の作成方法を、マスター/ディテール関係も含めて示します。また、サンプル・データの作成方法とインポート方法についても説明します。

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

29.1 プレースホルダ・データ・コントロールの概要

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. アプリケーション・ナビゲータで、プロジェクトを右クリックして「新規」を選択します。

  2. 「新規ギャラリ」で、「Business Tier」を展開し、「Data Controls」を選択した後、「プレースホルダ・データ・コントロール」を選択して「OK」をクリックします。

  3. 「プレースホルダ・データ・コントロール」ダイアログ(図29-1を参照)で、次の情報を入力します。

    • プレースホルダ名: プレースホルダ・データ・コントロールの名前

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

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

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

    新規の「プレースホルダ・データ・コントロール」ダイアログ
  4. 「OK」をクリックします。

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

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

例29-1 サンプルのplaceholderdatacontrol.xml

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

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

例29-2 DataControls.dcxのプレースホルダ・データ・コントロール・エントリ

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

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

図29-2 アプリケーション・ナビゲータおよび「データ・コントロール」パネル

プレースホルダ・データ・コントロール・アーティファクトが表示されたアプリケーション・ナビゲータ

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

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

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

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

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

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

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

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


注意:

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


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

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

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

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

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

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

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

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

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

    注意:

    プレースホルダ・データ型をすでに追加していて、データ型の追加または編集のみを行う場合は、かわりに「プレースホルダ・データ型の編集」をポップアップ・メニューから選択します。表示されるダイアログは、「プレースホルダ・データ型の編集」ダイアログです。このダイアログのオプションは、「プレースホルダ・データ型の作成」ダイアログと同じです。


  2. 別のプレースホルダ・データ・コントロールにすでに定義されているデータ型をコピーまたは追加する場合は、「データ型のコピー」をクリックします。

    1. 「プレースホルダ・データ型のコピー」ダイアログ(図29-4を参照)で、目的のプレースホルダ・データ・タイプを選択します。現在の属性をファイルからの属性で置き換えるには「置換」を選択します。また、ファイルからの属性を現在の属性のリストに追加するには「追加」を選択します。

    2. ファイルからサンプル・データをロードする場合は、「サンプル・データのコピー」チェック・ボックスを選択します。

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

    図29-4 「プレースホルダ・データ型のコピー」ダイアログ

    「プレースホルダ・データ型のコピー」ダイアログ
  3. 「プレースホルダ・データ型の作成」ダイアログで、プレースホルダ・データ型の名前を入力し、「属性定義」セクションで次の情報を入力します。

    • 名前: 属性の名前を入力します。

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

    • デフォルト・コンポーネント: 属性のデフォルトのコンポーネントをドロップダウン・リストから選択します。LOVの場合は、「値リストを使用したコンボ・ボックス」を選択します。

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

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

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

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

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

    • LOVバインディングの使用: 属性をLOVにする場合にこのチェック・ボックスを選択します。属性を構成するには、29.3.3項「プレースホルダ・データ型の属性をLOVに構成する方法」を参照してください。

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

  4. データを追加するには、「サンプル・データ」タブを使用します。データの追加手順は、29.3.6項「サンプル・データの追加方法」を参照してください。

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

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

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

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

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

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

例29-3 プレースホルダ・データ型のサンプルSuppliers.xmlファイル

<?xml version='1.0' encoding='windows-1252' ?>
<ViewObject
   xmlns="http://xmlns.oracle.com/placeholder"
   Name="Suppliers"
   BindingStyle="OracleName"
   CustomQuery="true"
   ComponentClass="oracle.adf.model.placeholder.PlaceholderVOImpl"
   UseGlueCode="false" >
   <ViewAttribute
      Name="Supplier_Id"
      Type="oracle.jbo.domain.Number"
      PrimaryKey="true" >
   </ViewAttribute>
   <ViewAttribute
      Name="Supplier_Name"
      Type="java.lang.String" >
   </ViewAttribute>
   <StaticList
      Name="Suppliers"
      Rows="2"
      Columns="2" >
   </StaticList>
   <ResourceBundle >
      <PropertiesBundle
         xmlns="http://xmlns.oracle.com/bc4j"
         PropertiesFile="storefrontproject.StoreFrontProjectBundle" >
      </PropertiesBundle>
   </ResourceBundle>
</ViewObject>

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

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

例29-4 プレースホルダ・データ型の追加後のサンプルPlaceholderDataControl.xmlファイル

<?xml version='1.0' encoding='windows-1252' ?>
<AppModule
   xmlns="http://xmlns.oracle.com/placeholder"
   Name="StoreFrontPlaceHolder" >
   <ViewUsage
      Name="Suppliers"
      ViewObjectName="storefrontproject.Suppliers" >
   </ViewUsage>
</AppModule>

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

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

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

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

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

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

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

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

29.3.3.1 固定LOVにする属性の構成

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

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

  1. 「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。

  2. 「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「LOVバインディングの使用」チェック・ボックスを選択します。

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

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

    固定リストの「値リストの設定」ダイアログ
  3. ダイアログで、「固定リスト」を選択します。

  4. 「追加」アイコンをクリックして、値リストにエントリを追加できるようにします。

  5. 各エントリに対し、ラベルおよび値を入力します。

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

  6. ドロップダウン・リストに表示する最近使用したアイテムの最大数を選択します。

  7. 「"選択なし"アイテム」ドロップダウン・リストから、「選択なし」アイテムの表示方法のオプションを選択します。

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

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

29.3.3.2 動的LOVにする属性の構成

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

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

  1. 「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。

  2. 「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「LOVバインディングの使用」チェック・ボックスを選択します。

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

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

    「値リストの設定」ダイアログ
  3. ダイアログで、「動的リスト」を選択します。

  4. リスト・データ型およびそのソース属性を選択します。これを選択可能にするには、ソースにプレースホルダ・データ型が必要です。

  5. リストの属性を選択します。

  6. 属性を「使用可能」リストと「選択済」リスト間で入れ替えます。

  7. ドロップダウン・リストに表示する最近使用したアイテムの最大数を選択します。

  8. 「"選択なし"アイテム」ドロップダウン・リストから、「選択なし」アイテムの表示方法のオプションを選択します。たとえば、「空のアイテム(リストの最初)」を選択すると、「選択なし」アイテムはリストの最初に空白として表示されます。

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

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

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

マスター・ディテール階層を作成する前に、マスター・データ型のデータ構造およびディテール・データ型のデータ構造を決定する必要があります。ディテール・データ型のソースとなるマスターの属性も決定する必要があります。

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

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

  1. 29.3.1項「プレースホルダ・データ型の作成方法」で説明しているように、マスターにするプレースホルダ・データ型を作成するか、マスターにする既存のデータ型を選択します。たとえば、ProductsByCategoriesデータ型をマスターにします。

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

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

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

    「プレースホルダ・データ型の作成」ダイアログ
  3. 「プレースホルダ・データ型の作成」ダイアログで、ディテール・データ型の名前を入力します。

  4. マスター・データ型の最初の属性が「属性」セクションに表示されます。この属性は外部キー関係を指定します。

    ディテール・データ型に属性を追加、別のデータ型からデータ型属性をコピー、またはCSVファイルからサンプル・データをインポートして、属性を自動的に作成します。属性の追加手順は、29.3.1項「プレースホルダ・データ型の作成方法」を参照してください。

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

図29-9に示すように、「データ・コントロール」パネルにディテール・データ型がマスター・データ型の子として表示されます。

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

「データ・コントロール」パネルでのプレースホルダ・データ・コントロール

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

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

例29-5 マスター/ディテール・データ型の関係を示すDTLink.xmlファイル

<?xml version='1.0' encoding='windows-1252' ?>
<ViewLink
   xmlns="http://xmlns.oracle.com/placeholder"
   Name="DTLink" >
   <ViewLinkDefEnd
      Name="sourceEnd"
      Cardinality="1"
      Owner="project1.ProductsByCategories"
      Source="true" >
      <AttrArray Name="Attributes">
         <Item Value="project1.ProductsByCategories.ProductName" />
      </AttrArray>
   </ViewLinkDefEnd>
   <ViewLinkDefEnd
      Name="destEnd"
      Cardinality="-1"
      Owner="project1.ProductCategoriesToParentProductCategories" >
      <AttrArray Name="Attributes">
         <Item Value="project1.ProductCategoriesToParentProductCategories.ProductName" />
      </AttrArray>
   </ViewLinkDefEnd>
</ViewLink>

29.3.6 サンプル・データの追加方法

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

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

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

作業を始める前に、サンプル・データを用意しておく必要があります。

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

  1. 「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。

  2. 「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「サンプル・データ」タブをクリックします。

  3. 各データ行に、定義された各属性の値を入力します。「追加」アイコンをクリックして、各行を作成します。

    たとえば、図29-10の最初の行では、ProductName属性にPlasma HD TelevisionProductID属性に1CategoryID属性に4が入力されています。

    図29-10 サンプル・データの追加

    プレースホルダ・データ型へのサンプル・データの追加
  4. 「OK」をクリックします。

29.3.6.2 サンプル・データのインポート

作業を始める前に、システムでサンプル・データ・ファイルを使用できるようにし、「ファイルの選択」または「ファイルの保存」ダイアログに表示されるようにしておく必要があります。

サンプル・データをCSVファイルからプレースホルダ・データ型にインポートするには:

  1. 「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。

  2. 「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「サンプル・データ」タブを選択します。


    ヒント:

    インポートするCSVファイルがすでに存在する場合は、各列の属性を手動で作成する必要はありません。JDeveloperでは、属性はCSVファイルの最初の行から自動的に作成されます。詳細は、29.3.1項「プレースホルダ・データ型の作成方法」を参照してください。


  3. 属性もインポートする場合は、最初の行でデフォルト属性を削除する必要があります。

    このデフォルト属性は、「サンプル・データ」タブに最初に移動したときに表示されます。このデフォルト属性を削除しないと、これが宣言的に作成された属性であるとみなされ、最初の列以外の列はインポートされません。

  4. 「インポート」をクリックします。

    「開く」ダイアログ(図29-11を参照)で、インポート・ファイルに移動して選択し、「開く」をクリックします。

    CSVファイルのデータが、列ヘッダーと値も含めて、サンプル・データとして表示されます。

    例29-11 プレースホルダ・サンプル・データのインポート

    外部ファイルからのプレースホルダ・サンプル・データのインポート
  5. 「OK」をクリックします。

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

プレースホルダ・サンプル・データは、それがダイアログを使用して手動で追加されたか、インポートしたCSVファイルから追加されたかに関係なく、プレースホルダ・データ・コントロールのパッケージ内のメッセージ・バンドル・プロパティ・ファイルに格納されます。JDeveloperでは、サンプル・データを持つ各データ型に対してテキストベースのファイルが作成されます。プロパティ・ファイルの名前はplaceholderdatatypenameMsgBundle.propertiesです。例29-6に、brandsizeおよびtypeの3つの属性を持つTelevisionsデータ型のサンプル・データ・プロパティ・ファイルを示します。

例29-6 サンプル・データ・プロパティ・ファイルTelevisionMsgBundle.properties

SL_0_0=sony
SL_0_1=42
SL_0_2=lcd
SL_1_0=panasonic
SL_1_1=50
SL_1_2=plasma
SL_2_0=mitsubishi
SL_2_1=60
SL_2_2=projection

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

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

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

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

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

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

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

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

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

29.4.2 レイアウトの作成

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

29.4.3 検索フォームの作成

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

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

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

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

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

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

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

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

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