Oracle® Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド 11g リリース2(11.1.2.2.0) B69399-01 |
|
![]() 前 |
![]() 次 |
この章では、プレースホルダ・データ・コントロールを作成および使用して、ユーザー・インタフェース先行の設計をサポートする方法について説明します。ここでは、プレースホルダ・データ型の作成方法を、マスター/ディテール関係も含めて示します。また、サンプル・データの作成方法とインポート方法についても説明します。
この章の内容は次のとおりです。
アプリケーション開発は通常、技術的実装とユーザー・インタフェース設計という2つの異なるプロセスに分けられます。一般的に、これらのプロセスは非常に異なるスキル・セットを持つ別々のチームによって実行されます。この2つのチームはwork together either in a データ先行アプローチまたはUI先行アプローチ、もしくはこの2つを多少重複させた形で協業することができます。どちらのアプローチでも、通常、両チームは繰り返し協力して作業し、毎回アプリケーションを改良していきます。
データ優先アプローチでは、モデルまたはデータ・コントロールが最初に作成されます。設計者は次に、データ・コントロールをページにUIコンポーネントとしてドラッグ・アンド・ドロップして、レイアウトおよびページ・フローを作成します。モデル・データは、コンポーネントに自動的にバインドされます。このアプローチでは、設計者が作業を進める前に、データ・モデルが存在する必要があります。
UI優先アプローチでは、設計者はコンポーネント・パレットのコンポーネントを使用してレイアウトを作成します。データ・コントロールが使用可能になると、UIコンポーネントがそれらのコントロールにバインドされます。このアプローチでは、開発を評価するには、レイアウトおよびページ・フローの大半が確認可能である必要があります。ただし、データ・コントロールが使用可能になってコンポーネントにバインドされるまで、アプリケーションではその設計の意図を十分に伝えていない場合があります。たとえば、マスター/ディテール関係があるアプリケーションは、その関係を動的に駆動する実際のデータがある場合に、最も適切に確認されます。
プレースホルダ・データ・コントロールは、簡単に作成できる、十分な機能を備えた代理のデータ・コントロールで、設計開発プロセスの効率的な迅速化を可能にします。UI設計者は、プレースホルダ・データ・コントロールを使用することで、実際のデータ・コントロールを使用可能にする必要なく、ページ・レイアウトおよびページ・フローを作成できます。これらのプレースホルダ・コントロールにサンプル・データをロードすると、アプリケーションの実行を現実的にシミュレートして設計を評価できます。実際のデータ・コントロールが準備できた段階で、UIコンポーネントを簡単にリバインドしてアプリケーションを完成できます。
プレースホルダ・データ・コントロールの作成は完全に宣言的なプロセスであり、コーディングは不要です。基礎となるモデル、データソース・テクノロジ、実際のデータベース・スキーマ、実際の本番データ・コントロールにおける複雑な関係などに関する深い知識は必要ありません。プレースホルダ・データ・コントロールには、既存のデータソースやデータベース接続が不要です。複数の属性を使用して複数のデータ型を定義できます。また、データ型の間にネストされたマスター/ディテール階層を定義できます。プレースホルダ・データ・コントロールには、「Execute」、「Next」および「Create」などの同じ組込み操作があります。暗黙的に作成された名前付き基準アイテムを使用すると、ビュー・オブジェクトおよびビュー基準が使用できる場合と同様に、検索フォームを作成できます。
複雑なアプリケーションの多くでは、UIの設計によってモデルやデータソースの開発が実質的に促進される場合があります。このUI優先のシナリオでは、プレースホルダ・データ・コントロールとサンプル・データを用意することが、アプリケーションの動作を適切にモデル化するために不可欠です。状況によっては、本番データ・コントロールを使用できる場合でも、UI設計者がその柔軟性と使用しやすさからプレースホルダ・データ・コントロールを使用することを選択する場合があります。
プレースホルダ・データ・コントロールは、様々な状況で使用できます。設計の確認および開発に使用する以外に、利便性の調査や概念の証明要件のための実際的なランタイム・モックアップの開発にも使用可能です。また、データ・モデルがまだ用意できていない段階でのデモの作成にも使用できます。
プレースホルダ・データ・コントロールを使用する前に、いくつかのデータ・アクセス機能を理解しておくと役立つ場合があります。次に、関連する他の機能へのリンクを示します。
プレースホルダ・データ・コントロールを使用した初期設計が終わり、最終的なデータ・コントロールが用意できたら、そのコンポーネントをリバインドできます。コンポーネントのリバインドの詳細は、第26章「データバインドされた基本的なページの作成」および第27章「ADFによるデータバインドされた表の作成」を参照してください。
プレースホルダ・データ型の属性は、値リスト(LOV)に構成できます。LOVの詳細は、5.12項「ビュー・オブジェクト属性の値リスト(LOV)での作業」を参照してください。
標準データ・コントロールにおけるマスター/ディテール・データ・コレクションと同様に、プレースホルダ・データ型の間にマスター/ディテール関係を作成できます。マスター/ディテール・フォームおよび表の詳細は、第29章「マスター/ディテール・データの表示」を参照してください。
マスター/ディテール階層でプレースホルダ・データ型を定義すると、その関係を定義するビュー・リンクがJDeveloperによって作成されます。ビュー・リンクの詳細は、5.6項「マスター/ディテール階層における複数表の使用」を参照してください。
プレースホルダ・データ・コントロールを使用して、検索フォームを開発できます。問合せ検索フォームの詳細は、第31章「ADFによるデータバインドされた検索フォームの作成」を参照してください。
プレースホルダ・データ・コントロールをADFライブラリJARとして再利用可能なコンポーネントにパッケージ化する場合があります。再利用可能なコンポーネントおよびADFライブラリの詳細は、第38章「アプリケーション・コンポーネントの再利用」を参照してください。
プレースホルダ・データ・コントロールは、「新規ギャラリ」を使用してプロジェクトに追加します。作成後のプレースホルダ・データ・コントロールは、「データ・コントロール」パネルにノードとして表示されます。このアイコンは、標準データ・コントロールのアイコンとは異なります。プレースホルダ・データ・コントロールには、「操作」ノードのかわりに「ビルトイン操作」ノードがあります。「ビルトイン操作」ノードにはCommitおよびRollback操作が含まれますが、データの実際のデータソースがないため、コミットまたはロールバックは実行されません。
データ・コントロールを最初に作成したときには、データ型が関連付けられていません。データ型は、17.3項「プレースホルダ・データ型の作成」の説明に従って、手動で作成する必要があります。
プレースホルダ・データ・コントロールは、JDeveloperではプロジェクト・レベルで定義されます。プレースホルダ・データ・コントロールを作成する前に、プロジェクトが作成済である必要があります。
作業を始める前に、次のようにします。
プレースホルダ・データ・コントロールを作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.2項「プレースホルダ・データ・コントロールの作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
プレースホルダ・データ・コントロールを作成する手順:
アプリケーション・ナビゲータで、プロジェクトを右クリックして「新規」を選択します。
「新規ギャラリ」で、「Business Tier」を展開し、「Data Controls」を選択した後、「プレースホルダ・データ・コントロール」を選択して「OK」をクリックします。
「プレースホルダ・データ・コントロール」ダイアログ(図17-1を参照)で、次の情報を入力します。
プレースホルダ名: プレースホルダ・データ・コントロールの名前
ディレクトリ名: プレースホルダ・データ・コントロールの参照に使用されるパッケージ名
説明: プレースホルダ・データ・コントロールの説明(オプション)
「OK」をクリックします。
プレースホルダ・データ・コントロールを作成するとき、データ・コントロールの保存先に選択したパッケージは、アプリケーション・ナビゲータのプロジェクト・ノードに表示されます。データ・コントロールXMLファイルPlaceholderDataControl
.xml
がこのパッケージの下に表示されます。ここで、PlaceholderDataControl
はプレースホルダ・データ・コントロールの名前です。例17-1にサンプル・ファイルStoreFrontPlaceHolder.xml
を示します。これは、StoreFrontPlaceHolder
データ・コントロールが作成されたときに作成されたファイルです。
例17-1 サンプルのplaceholderdatacontrol.xml
<?xml version='1.0' encoding='windows-1252' ?> <AppModule xmlns="http://xmlns.oracle.com/placeholder" Name="StoreFrontPlaceholder" > </AppModule>
DataControls.dcx
ファイルが未定義の場合、このファイルもJDeveloperにより作成され、プレースホルダ・データ・コントロールのエントリが追加されます(例17-2を参照)。
例17-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>
「データ・コントロール」パネルには、このプレースホルダ・データ・コントロールが他のデータ・コントロールとともにルート・ツリーに表示されます。データ型が未定義のプレースホルダ・データ・コントロールには、図17-2に示すように、CommitおよびRollbackの組込み操作のみが表示されます。
標準データ・コントロールは、そのデータ・コレクションおよび属性をモデルまたはビジネス・サービス・レイヤーにある基礎となるデータソースから取得します。たとえば、アプリケーション・モジュールのデータ・コントロールは、そのデータ・コレクションをビュー・オブジェクトおよび関連データベース表から取得します。
プレースホルダ・データ・コントロールには、データ・コレクションのかわりに、プレースホルダ・データ型があります。プレースホルダ・データ・タイプは、データ・コレクションに似ています。これをページにドロップすると、フォーム、表およびツリーなどの複雑なコンポーネントを作成できます。また、入力テキスト、出力テキスト、選択肢などの個々のコンポーネントとしてページにドロップできる属性セットも備えています。属性の中には、LOVとして定義できるものもあります。
プレースホルダ・データ・コントロールを初めて作成したとき、このコントロールにはデータ・タイプは1つもありません。これは、プレースホルダ・データ・コントロールが基礎となるデータベース・テーブルを参照していないからです。1つ以上のプレースホルダ・データ・タイプを宣言的に作成する必要があります。データ・タイプそれぞれについて、属性名、タイプ、デフォルトUIコンポーネントなどのオプションを指定します。アプリケーション・モジュールの複数のデータ・コレクションと同様、データ・コントロールについても複数のデータ・タイプを作成できます。
作成されたプレースホルダ・データ・タイプはその後、そのプレースホルダ・データ・コントロールの子ノードとして表示されます。また、ビルトイン操作ノードと、標準の操作セットも持っています。これは、標準データ・コントロールにあるビュー・オブジェクトの名前付きビュー基準に類似した「すべての問合せ可能な属性」項目を含む「名前付き基準」ノードを持ちます。「すべての問合せ可能な属性」項目をドラッグし、ページにドロップして、問合せやクイック問合せ検索フォームを作成できます。標準データ・コントロールでは、ビュー・オブジェクトに複数のビュー基準を作成できます。プレースホルダ・データ・タイプには実際のビュー・オブジェクトはないため、使用できる「すべての問合せ可能な属性」項目は1つのみです。問合せ検索フォームの詳細は、第31章「ADFによるデータバインドされた検索フォームの作成」を参照してください。
標準データ・コントロールにおけるマスター/ディテール・データ・コレクションと同様に、プレースホルダ・データ型の間にマスター/ディテール関係を作成できます。マスター/ディテール・データ型をページにドロップすると、マスター/ディテール・フォームおよび表を作成できます。マスター/ディテール・フォームおよび表の詳細は、第29章「マスター/ディテール・データの表示」を参照してください。
JDeveloperでは、同じプロジェクトの他のプレースホルダ・データ・コントロールに作成したプレースホルダ・データ型を再利用できます。データ型の作成時に、既存のデータ型を他のプレースホルダ・データ・コントロールからロードするオプションを選択できます。「データ型のコピー」オプションを選択すると、インポートするデータ型の属性が既存の属性のリストに追加されます。
属性の追加時には、インポートするデータ型に関連付けられているサンプル・データをコピーするオプションも選択できます。
注意: アプリケーションを実行するまでサンプル・データは必要ありませんが、設計時に一貫性を持ってコンポーネントをレンダリングするには、サンプル・データを追加する必要があります。 |
プレースホルダ・データ・コントロールの作成後は、データ型の作成に進むことができます。データ型の名前を定義し、その各属性を定義します。属性ごとに、タイプ、フォーマット、デフォルトのUIコンポーネントおよびLOVにするかどうかを定義します。
プレースホルダ・データ型の作成プロセスを簡略化するため、String
、Boolean
、Date
およびNumber
の4つの最も一般的なタイプのリストから選択できます。プレースホルダの属性にはタイプが指定されているため、列ラベルを作成でき、UIのコントロールのヒントを設計に含めることができます。
カンマ区切り値(CSV)形式のサンプル・データ・ファイルがある場合は、サンプル・データ・ファイルのインポート機能を使用して、すべての属性の作成とサンプル・データのロードを自動的に実行できます。属性を作成する必要はありません。属性は、CSVファイルの形式(列ヘッダーのカンマ区切りの値リスト)から自動的に作成されます。属性のタイプはString
にデフォルトで設定されます。必要に応じて、各属性を別のタイプに手動でリセットできます。サンプル・データのインポート手順は、17.3.6項「サンプル・データの追加方法」を参照してください。
作業を始める前に、次のようにします。
プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.3項「プレースホルダ・データ型の作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
プレースホルダ・データ型を手動で作成する手順:
「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」を選択します。
図17-3に、「プレースホルダ・データ型の作成」ダイアログを示します。
注意: プレースホルダ・データ型をすでに追加していて、データ型の追加または編集のみを行う場合は、かわりに「プレースホルダ・データ型の編集」をポップアップ・メニューから選択します。表示されるダイアログは、「プレースホルダ・データ型の編集」ダイアログです。このダイアログのオプションは、「プレースホルダ・データ型の作成」ダイアログと同じです。 |
別のプレースホルダ・データ・コントロールにすでに定義されているデータ型をコピーまたは追加する場合は、「データ型のコピー」をクリックします。
「プレースホルダ・データ型のコピー」ダイアログ(図17-4を参照)で、目的のプレースホルダ・データ・タイプを選択します。現在の属性をファイルからの属性で置き換えるには「置換」を選択します。また、ファイルからの属性を現在の属性のリストに追加するには「追加」を選択します。
ファイルからサンプル・データをロードする場合は、「サンプル・データのコピー」チェック・ボックスを選択します。
「OK」をクリックします。
「プレースホルダ・データ型の作成」ダイアログで、プレースホルダ・データ型の名前を入力し、「属性定義」セクションで次の情報を入力します。
名前: 属性の名前を入力します。
Type: 属性のタイプをドロップダウン・リストから選択します。サポートされるタイプは、String
、Boolean
、Date
、およびNumber
です。
デフォルト・コンポーネント: 属性のデフォルトのコンポーネントをドロップダウン・リストから選択します。LOVの場合は、「値リストを使用したコンボ・ボックス」を選択します。
デフォルト値: 属性の初期値を入力します。
ラベル: 属性のラベルを入力します。このラベルは、コンポーネントが表示されるときに使用されます。
フォーマットの種類: このフィールドは、タイプがData
またはNumber
の場合にのみ使用できます。フォーマットの種類をドロップダウン・リストから選択します。
フォーマット: このフィールドは、このフォーマットの種類に対してフォーマット・マスクが定義されている場合のみ有効になります。
検索可能: 属性を検索可能にする場合にこのチェック・ボックスを選択します。
LOVバインディングの使用: 属性をLOVにする場合にこのチェック・ボックスを選択します。属性を構成するには、17.3.3項「プレースホルダ・データ型の属性をLOVに構成する方法」を参照してください。
別の属性を追加するには、「追加」アイコンをクリックします。
データを追加するには、「サンプル・データ」タブを使用します。手順については、17.3.6項「サンプル・データの追加方法」を参照してください。
実行時用、および一貫性設計時用のサンプル・データが必要です。
「OK」をクリックします。
プレースホルダ・データ型を作成すると、PlaceholderDataType
.xml
ファイルが作成されます(PlaceholderDataType
は、指定したプレースホルダ・データ型の名前です)。
PlaceholderDataType
.xml
ファイルは、ビュー・オブジェクトのXMLファイルと同じ形式になります。これには、ビュー・オブジェクトの名前と、プレースホルダに定義した各属性の名前と値が含まれます。
例17-3に、Supplier
データ型のPlaceholderDataType
.xml
を示します。Supplier_Id
とSupplier_Name
の2つの属性が宣言的に定義されています。
例17-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
データ型が作成されると、例17-4に示すように、StoreFrontPlaceholder.xml
ファイルにSuppliers
データ型の新しいViewUsage
エントリが含まれます。
例17-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>
「データ・コントロール」パネルで、プレースホルダ・データ・コントロールの下にプレースホルダ・データ型のノードが表示されます。このノードを展開すると、各属性、「ビルトイン操作」ノードおよび「名前付き基準」ノードが存在することがわかります。
図17-5に、「データ・コントロール」パネルに表示されるプレースホルダ・データ・コントロールを示します。
プレースホルダ・データ型の属性は、値リスト(LOV)に構成できます。LOV形式の属性は、ドロップダウン・リストまたはリスト選択ダイアログを表示するUIコンポーネントにバインドされます。LOVの詳細は、5.12項「ビュー・オブジェクト属性の値リスト(LOV)での作業」を参照してください。
プレースホルダ・データ型の作成時に、その属性をLOVに構成するダイアログを表示するオプションを選択できます。
データソースが1つしかない場合、作成できるのは固定LOVのみです。動的LOVを作成するには、ソースで複数のプレースホルダ・データ型を使用できる必要があります。
作業を始める前に、固定LOVにする属性、および固定リストに入れる値を決定する必要があります。
作業を始める前に、次のようにします。
プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.3項「プレースホルダ・データ型の作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
属性を固定LOVに構成する手順:
「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。
「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「LOVバインディングの使用」チェック・ボックスを選択します。
「値リストの設定」ダイアログ(図17-6を参照)が表示されます。
ダイアログで、「固定リスト」を選択します。
「追加」アイコンをクリックして、値リストにエントリを追加できるようにします。
各エントリに対し、ラベルおよび値を入力します。
ユーザーがアイテムを値リストから選択すると、対応する値エントリが入力フィールドに入力されます。
ドロップダウン・リストに表示する最近使用したアイテムの最大数を選択します。
「"選択なし"アイテム」ドロップダウン・リストから、「選択なし」アイテムの表示方法のオプションを選択します。
たとえば、「空のアイテム(リストの最初)」を選択すると、「選択なし」アイテムはリストの最初に空白として表示されます。
「OK」をクリックします。
プレースホルダ・データ型をソースとして使用すると、属性を動的なLOVとして構成できます。
作業を始める前に、次のようにします。
プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.3項「プレースホルダ・データ型の作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
また、動的LOVのソースの役割を果たすプレースホルダ・データ型をもう1つ作成しておく必要があります。
属性を動的LOVに構成する手順:
「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。
「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「LOVバインディングの使用」チェック・ボックスを選択します。
「値リストの設定」ダイアログ(図17-7を参照)が表示されます。
ダイアログで、「動的リスト」を選択します。
リスト・データ型およびそのソース属性を選択します。これを選択可能にするには、ソースにプレースホルダ・データ型が必要です。
リストの属性を選択します。
属性を「使用可能」リストと「選択済」リスト間で入れ替えます。
ドロップダウン・リストに表示する最近使用したアイテムの最大数を選択します。
「"選択なし"アイテム」ドロップダウン・リストから、「選択なし」アイテムの表示方法のオプションを選択します。たとえば、「空のアイテム(リストの最初)」を選択すると、「選択なし」アイテムはリストの最初に空白として表示されます。
「OK」をクリックします。
表の間にマスター/ディテール階層を作成するのと同様に、データ型の間にマスター/ディテール関係を作成します。標準データ・コントロールでは、ビュー・リンクを使用して、マスター・オブジェクトおよびディテール・オブジェクトになるソース・ビュー・オブジェクトおよびターゲット・ビュー・オブジェクトを定義できます。マスター/ディテール関係の詳細は、第29章「マスター/ディテール・データの表示」を参照してください。
まず、マスター・データ型とその属性を作成します。次に、ディテール・データ型をマスター・データ型の子として作成します。ディテール・データ型への関係を定義するソース属性をマスター・データ型に定義します。
作業を始める前に、次のようにします。
プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.3項「プレースホルダ・データ型の作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
マスター・ディテール階層を作成する前に、マスター・データ型のデータ構造およびディテール・データ型のデータ構造を決定する必要があります。ディテール・データ型のソースとなるマスターの属性も決定する必要があります。
マスター/ディテール階層データ型を作成する手順:
17.3.1項「プレースホルダ・データ型の作成方法」の説明に従って、マスターにするプレースホルダ・データ型を作成するか、マスターにする既存のデータ型を選択します。
たとえば、ProductsByCategories
データ型をマスターとして使用できます。
「データ・コントロール」パネルで、マスター・プレースホルダ・データ型を右クリックし、「プレースホルダ・データ型の作成」を選択します。
図17-8に、ディテール・データ型の属性を入力する「プレースホルダ・データ型の作成」ダイアログを示します。
「プレースホルダ・データ型の作成」ダイアログで、ディテール・データ型の名前を入力します。
マスター・データ型の最初の属性が「属性」セクションに表示されます。この属性は外部キー関係を指定します。
ディテール・データ型に属性を追加、別のデータ型からデータ型属性をコピー、またはSCVファイルからサンプル・データをインポートして、属性を自動的に作成します。属性の追加手順は、17.3.1項「プレースホルダ・データ型の作成方法」を参照してください。
「OK」をクリックします。
図17-9に示すように、「データ・コントロール」パネルにディテール・データ型がマスター・データ型の子として表示されます。
マスター/ディテール関係は、ビュー・オブジェクトおよびビュー・リンクを使用して、標準のマスター/ディテール関係と同様に実装されます。プレースホルダ・データ型をマスター/ディテール階層に定義すると、その関係を定義するビュー・リンクのメタデータ・エントリを含むDTLink.xml
ファイルが作成されます。ビュー・リンクの詳細は、5.6項「マスター/ディテール階層における複数表の使用」を参照してください。たとえば、キーdvdplayer
に関連付けられているマスター・データ型Video
とディテール・データ型Brand
間の関係では、例17-5に示すように、その関係を定義するDTLink.xmlファイルがビュー・リンク・ファイルの形式で作成されます。
例17-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>
プレースホルダ・データ・コントロールを使用するアプリケーションを実行する場合は、実行用のサンプル・データを追加する必要があります。サンプル・データは、手動で、またはデータをCSVファイルからインポートすることで、プレースホルダ・データ型の属性に追加できます。サンプル・データは実行時にのみ必須ですが、設計時に一貫性を持ってコンポーネントをレンダリングするためには、サンプル・データを追加する必要があります。
サンプル・データをプレースホルダ・データ型を追加する前に、プレースホルダ・データ・コントロールおよびプレースホルダ・データ型を作成しておく必要があります。データを手動で入力する場合は、そのデータを用意しておく必要があります。データをCSVファイルからロードする場合は、ファイルの場所を把握しておく必要があります。
「プレースホルダ・データ型の編集」ダイアログの「サンプル・データ」ページを使用すると、プレースホルダ・データ・コントロールのサンプル・データを手動で入力できます。
作業を始める前に、次のようにします。
プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.3項「プレースホルダ・データ型の作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
サンプル・データもあらかじめ用意しておく必要があります。
サンプル・データをプレースホルダ・データ型に手動で追加する手順:
「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。
「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「サンプル・データ」タブをクリックします。
各データ行に、定義された各属性の値を入力します。「追加」アイコンをクリックして、各行を作成します。
たとえば、図17-10の最初の行では、ProductName
属性にPlasma HD Television
、ProductID
属性に1
、CategoryID
属性に4
が入力されています。
「OK」をクリックします。
「プレースホルダ・データ型の編集」ダイアログの「サンプル・データ」ページを使用すると、プレースホルダ・データ・コントロールのサンプル・データをファイルからインポートできます。
作業を始める前に、次のようにします。
プレースホルダ・データ型を作成する場合のオプションに関する知識があると役立つ場合があります。詳細は、17.3項「プレースホルダ・データ型の作成」を参照してください。
また、プレースホルダ・データ・コントロールの使用後に追加できる機能についても理解しておくと役立ちます。詳細は、17.1.2項「プレースホルダ・データ・コントロールの追加機能」を参照してください。
また、「ファイルの選択」ダイアログに表示されるように、ファイル・システムにサンプル・データ・ファイルを用意しておく必要があります。
サンプル・データをCSVファイルからプレースホルダ・データ型にインポートする手順:
「データ・コントロール」パネルで、プレースホルダ・データ・コントロールを右クリックし、「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」を選択します。
「プレースホルダ・データ型の作成」または「プレースホルダ・データ型の編集」ダイアログで、「サンプル・データ」タブを選択します。
ヒント: インポートするCSVファイルがすでに存在する場合は、各列の属性を手動で作成する必要はありません。JDeveloperでは、属性はCSVファイルの最初の行から自動的に作成されます。詳細は、17.3.1項「プレースホルダ・データ型の作成方法」を参照してください。 |
属性もインポートする場合は、最初の行でデフォルト属性を削除する必要があります。
このデフォルト属性は、「サンプル・データ」タブに最初に移動したときに表示されます。このデフォルト属性を削除しないと、これが宣言的に作成された属性であるとみなされ、最初の列以外の列はインポートされません。
「インポート」をクリックします。
「開く」ダイアログ(図17-11を参照)で、インポート・ファイルに移動して選択し、「開く」をクリックします。
CSVファイルのデータが、列ヘッダーと値も含めて、サンプル・データとして表示されます。
「OK」をクリックします。
プレースホルダ・サンプル・データは、それがダイアログを使用して手動で追加されたか、インポートしたCSVファイルから追加されたかに関係なく、プレースホルダ・データ・コントロールのパッケージ内のメッセージ・バンドル・プロパティ・ファイルに格納されます。JDeveloperでは、サンプル・データを持つ各データ型に対してテキストベースのファイルが作成されます。プロパティ・ファイルの名前はplaceholderdatatypename
MsgBundle.properties
です。例17-6に、brand
、size
およびtype
の3つの属性を持つTelevisions
データ型のサンプル・データ・プロパティ・ファイルを示します。
プレースホルダ・データ・コントロールは、標準データ・コントロールと同様に使用します。データ型をページにドラッグし、ポップアップ・メニューを使用してデータ型をフォーム、表、ツリー、グラフなどのコンポーネントとしてドロップできます。個々の属性は、テキスト、値リスト、単一選択などのコンポーネントとしてページにドロップできます。「Create」「Execute」、および「Next」などのすべての組込み操作は、ボタン、コマンド・リンクおよびメニュー・アイテムとしてドロップすることで、使用可能になります。
プレースホルダ・データ・コントロールは、次に示すように、いくつかの方法で利用できます。
プレースホルダ・データ・コントロールを使用してページを作成し、実際のデータ・コントロールに後でリバインドできます。
コンポーネントを使用してページを作成し、プレースホルダ・データ・コントロールにバインドし、実際のデータ・コントロールに後でリバインドできます。
コンポーネント・パレットやプレースホルダ・データ・コントロールのいくつかのコンポーネントを組み合せて使用してページを作成し、実際のデータ・コントロールに後でバインドまたはリバインドできます。
プレースホルダ・データ・コントロールは、アプリケーション開発における様々な状況で使用できます。ほとんどのUI設計評価では、プレースホルダ・データ・コントロールは実際のデータ・コントロールの完全な代替となる必要があります。
次の制限に注意してください。
データ型は基礎となるデータソースに関連付けられていないため、コミット操作およびロールバック操作では実際のトランザクションの実行やキャッシュの更新は行われません。
プレースホルダ・データ・コントロールは、宣言的にのみ作成できます。実際のアプリケーション・モジュールやデータ・コントロールの場合とは異なり、カスタム・メソッドを作成できません。
プレースホルダ・データ・コントロールは、カスタム・データ、データをフェッチするためのフィルタリングまたはカスタム・コードが必要な場合は使用できません。プレースホルダ・データ・コントロールでは、これらの操作が無効化されます。
プレースホルダ・データ・コントロール、使用できる実際のデータ・コントロール、およびコンポーネント・パレットのコンポーネントを使用して、ドラッグ・アンド・ドロップ機能によってページを作成します。実際のデータを必要とするページまたはアプリケーションを実行する場合は、プレースホルダ・データ型のサンプル・データを入力します。サンプル・データの量が多い場合は、データソースからCSVファイルを作成してデータ型にロードできます。また、CSVサンプル・データ・ファイルの作成には、スプレッドシートまたは他のツールを使用できる場合もあります。
標準データ・コントロールでは、ビュー・オブジェクトにビュー基準を作成して問合せを変更できます。これらのビュー基準は、問合せおよびクイック問合せ検索フォームのドラッグ・アンド・ドロップによる作成にも使用されます。名前付きビュー基準アイテムは、データ・コレクションの「名前付き基準」ノードの下に表示されます。問合せおよびクイック問合せ検索フォームの詳細は、第31章「ADFによるデータバインドされた検索フォームの作成」を参照してください。
プレースホルダ・データ・コントロールにも、各データ型のノードの下に「名前付き基準」ノードがあります。自動的に作成されたAll Queriable Attributesアイテムはこのノードの下に表示され、このアイテムを使用してページにドラッグ・アンド・ドロップすると問合せ検索フォームまたはクイック問合せ検索フォームを作成できます。
データ・コントロールを使用してページを作成するかわりに、たとえば、データの形態が不明な場合は、まずコンポーネント・パレットを使用してページをレイアウトし、後でプレースホルダ・データ・コントロールのデータ型、属性または操作にバインドできます。
最終的なデータ・コントロールが用意できた後は、単にコンポーネントをリバインドできます。構造ウィンドウでコンポーネントを選択し、ポップアップ・メニューを使用して関連するリバインド・ダイアログを開くことができます。また、データ・コントロール・アイテムをUIコンポーネントにドラッグ・アンド・ドロップしてリバインド・エディタを開始することも可能です。コンポーネントの元のバインド先がプレースホルダ・データ・コントロールか標準データ・コントロールかに関係なく、リバインド手順は同じです。
コンポーネントのリバインドの詳細は、第26章「データバインドされた基本的なページの作成」および第27章「ADFによるデータバインドされた表の作成」を参照してください。
プレースホルダ・データ・コントロールの便利な機能として、開発者と設計者の間での並行開発および作業分割を可能にする機能があります。プレースホルダ・データ・コントロールをADFライブラリJARとして再利用可能なコンポーネントにパッケージ化すると、この機能をさらに有効利用できます。ADFライブラリは、ADFコンポーネントのすべての必要なアーティファクトがパッケージ化されたJARです。再利用可能なコンポーネントおよびADFライブラリの詳細は、第38章「アプリケーション・コンポーネントの再利用」を参照してください。プレースホルダ・データ・コントロールのライブラリを作成して、同じUIプロジェクトに携わる複数の設計者に配布できます。また、軽量であるため、UI設計の初期段階では、使用可能な実際のデータ・コントロールのかわりに使用することもできます。