ヘッダーをスキップ

Oracle® Fusion Middleware Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.0.1 E57592-01 |
| 目次

前 | 次 |

# 11 MAF AMXアプリケーション機能アーティファクトのカスタマイズ

この章では、既存のMAF AMXページ、タスク・フローおよびページ定義ファイルのカスタマイズの実行方法について説明します。

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

- 第11.1項「MAF AMXページおよびアーティファクトのカスタマイズの概要」

- 第11.2項「MAF AMXページおよびアーティファクトのカスタマイズ」

- 第11.3項「カスタマイズ・クラスに関する必知事項」

- 第11.4項「カスタマイズ・レイヤーの構成」

- 第11.5項「カスタマイズ・クラスの使用」

- 第11.6項「adf-config.xmlファイルの構成方法」

- 第11.7項「「カスタマイズ開発者」ロールに関する必知事項」

## 11.1 MAF AMXページおよびアーティファクトのカスタマイズの概要

JDeveloperおよびOracle Metadata Service (MDS)により提供される標準のカスタマイズ・メカニズムを使用して、次のものを含む既存のMAF AMXアプリケーション機能アーティファクトおよびメタデータ・ファイルをカスタマイズできます。

- MAF AMXファイル(`.amx`)。

- タスク・フロー・ファイル(`ViewController-task-flow.xml`など)。

- ページ定義ファイル(`<ページ名>``.PageDef.xml)`。

- データ・コントロールXMLファイル(データ・コントロール構造ファイルを含むパッケージ・ファイル(つまり、データ・コントロール名の前に`persdef.`が付加された名前のパッケージ・ファイル))。詳細は、第7.8項「データ・コントロールの構成」を参照してください。

デザインタイムに行ったカスタマイズの変更は、デプロイメント中にファイルに適用され、ランタイムに表示されるようになります。MAF AMXは、特定のカスタマイズ・コンテキストの最終バージョンがデプロイメント中にシードされ、そのカスタマイズ・コンテキストに対してランタイムに静的に動作する、静的シード・カスタマイズをサポートしています。カスタマイズ・コンテキストごとに個別のMAFアプリケーションをデプロイする必要があります。

注意: MAF AMXでは、ランタイムにカスタマイズの作成および適用の両方を実行するユーザー・カスタマイズをサポートしていません。

## 11.2 MAF AMXページおよびアーティファクトのカスタマイズ

次のようにMAF AMXページおよびアーティファクトをカスタマイズします。

1. 例11-1に示すとおりに`jdev_install``/jdeveloper/jdev/CustomizationLayerValues.xml`ファイルを変更して、カスタマイズ・レイヤーおよびレイヤー値を定義します。

   例11-1 カスタマイズ・レイヤーの定義

       <cust-layers xmlns="http://xmlns.oracle.com/mds/dt">
          <cust-layer name="site" id-prefix="s">
             <!-- Generated id-prefix would be "s1" and "s2"
              for values "site1" and "site2" -->
             <cust-layer-value value="headquarter"
                               display-name="Headquarter"
                               id-prefix="1" />
             <cust-layer-value value="remoteoffices"
                               display-name="Remote Office"
                               id-prefix="2" />
          </cust-layer>
       </cust-layers>

   詳細は、第11.4項「カスタマイズ・レイヤーの構成」を参照してください。

2. カスタマイズ・クラス(`oracle.mds.cust.CustomizationClass`を拡張するPOJOクラス)を作成します。詳細は、第11.3項「カスタマイズ・クラスに関する必知事項」を参照してください。

   注意: カスタマイズ・クラスは、別のJavaアプリケーションで作成できます。

3. 次のようにして、JDeveloperデザインタイムがカスタマイズにアクセスできるようにします。

   1. カスタマイズ・クラス(`.java`ファイル)をJARファイルとしてパッケージ化します。

   2. MAFアプリケーションのいずれかのプロジェクトにJARファイルを追加します。

      詳細は、第11.5.1項「デザインタイムにJDeveloperでカスタマイズ・クラスを使用可能にする方法」を参照してください。

4. 例11-2に示すとおりに、カスタマイズ・クラスを`cust-config`セクションに追加して、MAFアプリケーションの`adf-config.xml`ファイルに登録します。

   例11-2 カスタマイズ・クラスの登録

       <?xml version="1.0" encoding="windows-1252" ?>
       <adf-config xmlns="http://xmlns.oracle.com/adf/config">
          <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
             <mds-config xmlns="http://xmlns.oracle.com/mds/config" version="11.1.1.000">
                <cust-config>
                   <match path="/">
                      <customization-class name="customclass.SiteCC"/>
                   </match>
                </cust-config>
             </mds-config>
          </adf-mds-config>
       </adf-config>

   詳細は、第11.6項「adf-config.xmlファイルの構成方法」を参照してください。

5. 「カスタマイズ開発者」ロールでJDeveloperを再起動します。詳細は、Oracle Fusion Middleware Oracle JDeveloperによるアプリケーションの開発のJDeveloperロールでの作業に関する項および第11.7項「「カスタマイズ開発者」ロールに関する必知事項」を参照してください。

   注意: 「カスタマイズ開発者」ロールでは、ファイルを変更できますが、追加はできません。

6. ファイルに必要な変更を加えます。変更はMDSにより、ViewControllerプロジェクトの`mdssys`ディレクトリに記録されます。

7. アプリケーションを、モバイル・デバイス、エミュレータにデプロイするか、プラットフォーム固有のアプリケーション・パッケージとしてデプロイします。

   注意: デプロイメント時に、現在のカスタマイズ・コンテキストが取得され、デプロイされたアプリケーションのMAF AMXページで宣言したカスタマイズ済コンテンツが新しいデプロイメント・アーティファクトに含められます。カスタマイズ済コンテンツはデプロイメント・プロファイル名別にグループ化され、MAF AMXアプリケーション機能内の複数のページにまたがる場合があります。

   Studio開発者ロールまたは「カスタマイズ開発者」ロールで、カスタマイズされたアプリケーションをデプロイできます。「カスタマイズ開発者」ロールでデプロイするには、次の手順を実行します。

   1. 「カスタマイズ開発者」ロールでアプリケーションを起動します。

   2. 図11-1に示す「カスタマイズ・コンテキスト」ウィンドウで、カスタマイズを実装するレイヤーと値を選択します。

      図11-1 デプロイメント用カスタマイズ・コンテキストの選択

   3. デプロイメント・オプションの中から選択します(「アプリケーション」→「デプロイ」を選択してから、デプロイメント・プロファイルを選択してアクセスします)。詳細は、第19章「モバイル・アプリケーションのデプロイ」を参照してください。

   4. 各カスタマイズ・コンテキストに対して別のデプロイメントを実行します。

   デプロイメント時に、ベース・ファイルおよびデルタ・ファイルがマージされ、実行時のアプリケーションのカスタマイズ・バージョンが作成されます。デプロイされたアプリケーションには、MDSの依存性はありません。

   ヒント: カスタマイズしたアプリケーションをMAFアプリケーション・アーカイブ(`.maa`)ファイルとしてデプロイして、このファイルをアプリケーションにインポートし、別のカスタマイズを実行したり、アップグレードすることもできます。`.maa`ファイルに含まれるデルタ・ファイルは、デプロイメント後にベース・ファイルとマージされます。詳細は、第4.14.7項「カスタマイズを使用したモバイル・アプリケーションのアップグレード」を参照してください。

カスタマイズ・プロセスが完了すると、JDeveloperによりカスタマイズ用のメタデータ・ファイルとこれらを格納するサブパッケージが作成されます。メタデータ・ファイルにはカスタマイズしたオブジェクトのカスタマイズが含まれ、これらは実行時にベース・メタデータに適用されます。図11-2、図11-3、図11-4および図11-5に示すとおり、JDeveloperにより、オブジェクトのベース・ファイルと同じ名前に`.xml`拡張子を追加した名前が新しいメタデータ・ファイルに付けられます。

図11-2 MAF AMXページのカスタマイズ・ファイル

「図11-2 MAF AMXページのカスタマイズ・ファイル」の説明

図11-3 タスク・フローのカスタマイズ・ファイル

「図11-3 タスク・フローのカスタマイズ・ファイル」の説明

図11-4 ページ定義のカスタマイズ・ファイル

「図11-4 ページ定義のカスタマイズ・ファイル」の説明

図11-5 データ・コントロールXMLファイルのカスタマイズ・ファイル

「図11-5 データ・コントロールXMLファイルのカスタマイズ・ファイル」の説明

Webサービス・データ・コントロールのカスタマイズの詳細は、第4.14.4項「Webサービス・データ・コントロールとカスタマイズしたアプリケーションのデプロイメントに関する必知事項」を参照してください。

MAFアプリケーション・レベルのアーティファクトのカスタマイズの詳細は、第4.14項「Oracle Metadata Servicesを使用したMAFファイルのカスタマイズ」を参照してください。

## 11.3 カスタマイズ・クラスに関する必知事項

カスタマイズ・クラスでは、現在のコンテキストが評価されてStringの結果が戻されます。このStringの結果を使用してカスタマイズ・レイヤーが検索されます。

カスタマイズ・クラスによって、次の情報が提供されます。

- レイヤー名を表す名前。

- レイヤーで作成されたオブジェクトのIDPrefix。カスタマイズ・レイヤーで新しいオブジェクトを作成する場合、一意のIDが必要です。オブジェクトの自動生成IDにIDPrefixが追加されて、新たに追加されたオブジェクトのIDが作成されます。異なるカスタマイズ・レイヤーで作成されたオブジェクトに一意のIDを指定するために、各レイヤーに一意のIDPrefixを指定する必要があります。

- カスタマイズ・クラスによって定義されたレイヤーのキャッシュ・ヒント(CacheHint)。MAFでは、キャッシュ・ヒントによって静的なカスタマイズ・レイヤーが定義され、`getCacheHint`メソッドは常に`ALL_USERS`を返し、これは特定のデプロイメントに対しカスタマイズがグローバルに(無条件で)適用されることを意味します。

注意: カスタマイズ・クラスは頻繁に実行されることが多いため(レイヤー名とレイヤー値を取得するために、アクセスされるドキュメントごとに1回)、効率性を確保するようにしてください。

カスタマイズを使用して、特定の業種ドメインに合わせてMAF AMXアプリケーション機能を調整できます(垂直統合)。このようなドメインはそれぞれカスタマイズ・レイヤーを表しており、カスタマイズ・クラスを使用して示されます。

### 11.3.1 静的なカスタマイズ・コンテンツに関する必知事項

静的なカスタマイズには、アプリケーションのすべての実行に適用されるレイヤー値が1つのみあります。静的なカスタマイズでは、アプリケーションを実行するすべてのユーザーでカスタマイズの値が同じです。

MAFアプリケーションで使用されるカスタマイズ・クラスでは、`getCacheHint`メソッドは常に`ALL_USERS`を返し、これはカスタマイズ・レイヤーが常に静的であることを意味します。`CacheHint`値の詳細は、11.3項「カスタマイズ・クラスに関する必知事項」を参照してください。

カスタマイズ・クラスの実装方法によっては、すべてのオブジェクトが静的なカスタマイズ・レイヤーを持つことができます。

## 11.4 カスタマイズ・レイヤーの構成

アプリケーションをカスタマイズするには、JDeveloperで認識できるように、`CustomizationLayerValues.xml`ファイルでカスタマイズ・レイヤーとその値を指定する必要があります。

カスタマイズ可能なアプリケーションを「カスタマイズ開発者」ロールで開くと、JDeveloperにより`adf-config.xml`ファイルが読み取られ、使用するカスタマイズ・クラスと優先順位が判別されます。また、`CustomizationLayerValues.xml`ファイルも読み取られ、「カスタマイズ・コンテキスト」ウィンドウで使用可能にするレイヤー値が判別されます。`CustomizationLayerValues.xml`ファイルで定義されたレイヤー値がカスタマイズ・クラス(`adf-config.xml`ファイルにリストされている)で定義されていない場合、これらは「カスタマイズ・コンテキスト」ウィンドウに表示されません。

したがって、`CustomizationLayerValues.xml`ファイルにすべてのカスタマイズ・プロジェクトの包括的なレイヤー値リストを含めて、現在のアプリケーションに適したもののみを「カスタマイズ・コンテキスト」ウィンドウに表示できます。逆に、MAF AMXアプリケーション機能の包括的なカスタマイズ・クラスのリストを`adf-config.xml`ファイルに含めて、作業するレイヤー値のサブセットのみを`CustomizationLayerValues.xml`ファイルに含めることもできます。

注意: デザインタイムには、JDeveloperは`CustomizationLayerValues.xml`ファイルからカスタマイズ・レイヤー値を取得します。ただし、ランタイムには、レイヤー値はカスタマイズ・クラスから取得されます。

`CustomizationLayerValues.xml`ファイルに入力するレイヤー名およびレイヤー値は、カスタマイズ・クラスで指定されたものと一致する必要があります。例11-3にサンプルの`CustomizationLayerValues.xml`ファイルの内容を示します。

例11-3 CustomizationLayerValues.xmlで定義されたレイヤーとレイヤー値

    <cust-layers  xmlns="http://xmlns.oracle.com/mds/dt">
       <cust-layer name="industry" id-prefix="i">
          <cust-layer-value value="financial"
                            display-name="Financial"
                            id-prefix="f"/>
          <cust-layer-value value="healthcare"
                            display-name="Healthcare"
                            id-prefix="h"/>
       </cust-layer>
       <cust-layer name="site" id-prefix="s">
          <cust-layer-value value="headquarters"
                            display-name="HQ"
                            id-prefix="hq"/>
          <cust-layer-value value="remoteoffices"
                            display-name="Remote"
                            id-prefix="rm"/>
       </cust-layer>
    </cust-layers>

各レイヤーとレイヤー値に、`id-prefix`トークンを追加できます。これにより、`id`の一意性を確保し、カスタマイズを正確に適用できます。カスタマイズ中に新規要素(`commandButton`など)をMAF AMXページに追加すると、(選択したヒント・レイヤーで決定された)レイヤーとレイヤー値の`id-prefix`が要素の自動生成識別子に追加され、カスタマイズ・メタデータ・ファイルで新たに追加された要素の`id`が作成されます。前述の例では、siteレイヤーに`s`という`id-prefix`が付けられ、headquartersレイヤー値に`hq`という`id-prefix`が付けられています。したがって、ヒント・レイヤーとして`site/headquarters`を選択して、ボタン・コンポーネントをページに追加すると、メタデータ・カスタマイズ・ファイルで`commandButton`要素に`shqcb1`という`id`が設定されます。

各レイヤー値に`display-name`トークンを追加して、レイヤー値に人間が判読可能な名前を指定することもできます。「カスタマイズ開発者」ロールで作業する際、そのレイヤー値の`display-name`トークンの値が「カスタマイズ・コンテキスト」ウィンドウに表示されます。

レイヤーごとに、カスタマイズ・レイヤーに対する値セットのサイズを定義する`value-set-size`トークンを、オプションで設定できます。これは、たとえば、設計時にアプリケーション固有の`CustomizationLayerValues.xml`ファイルを使用する場合などに役立ちます。`value-set-size`を`no_values`に設定することで、デザインタイムにランタイムのみのレイヤーを除外できます。

    <cust-layer name="runtime_only_layer" value-set-size="no_values"/>

カスタマイズ・レイヤー値はJDeveloper用にグローバルにまたはアプリケーション固有ファイルで定義できます。アプリケーション固有ファイルを使用する場合、このファイルはグローバル・ファイルより優先されます。JDeveloper用にグローバルにレイヤー値を構成する方法の詳細は、第11.4.1項「レイヤー値をグローバルに構成する方法」を参照してください。アプリケーション固有のレイヤー値を構成する方法の詳細は、第11.4.2.1項「Studio開発者ロールの使用方法」を参照してください。

### 11.4.1 レイヤー値をグローバルに構成する方法

始める前に

- 第11.3項「カスタマイズ・クラスに関する必知事項」の説明に従って、カスタマイズ・クラスを作成します。

- 第11.5.1項「デザインタイムにJDeveloperでカスタマイズ・クラスを使用可能にする方法」の説明に従って、クラスをJDeveloperで使用できるようにします。

JDeveloper用にデザインタイム・カスタマイズ・レイヤー値をグローバルに構成するには:

1. JDeveloperインストール・ディレクトリの`jdev`サブディレクトリにある`CustomizationLayerValues.xml`ファイル(`jdev_install\jdev\CustomizationLayerValues.xml`)を開きます。

2. 各レイヤーに、例11-3「CustomizationLayerValues.xmlで定義されているレイヤーおよびレイヤー値」に示すとおりに`cust-layer`要素を入力します。

3. 各レイヤー値に、例11-3「CustomizationLayerValues.xmlで定義されているレイヤーおよびレイヤー値」に示すとおりに`cust-layer-value`要素を入力します。

4. `CustomizationLayerValues.xml`ファイルを保存して閉じます。

5. グローバルな`CustomizationLayerValues.xml`ファイルに変更を加えたら、JDeveloperを再起動します。

### 11.4.2 ワークスペース・レベルのレイヤー値の構成方法

アプリケーションのレイヤー値を構成する場合、Studio開発者ロール(第11.4.2.1項「Studio開発者ロールの使用方法」を参照)または「カスタマイズ開発者」ロール(第11.4.2.2項「「カスタマイズ開発者」ロールの使用方法」を参照)のいずれかを使用できます。アプリケーション固有の`CustomizationLayerValues.xml`ファイルを構成する場合、レイヤー値を作成および変更できますが、追加のカスタマイズ・レイヤーを作成できません。アプリケーション固有のレイヤー値に対して行った変更を適用するためにJDeveloperを再起動する必要はありません。

アプリケーション固有のCustomizationLayerValues.xmlファイルを作成すると、JDeveloperはこのファイルをアプリケーション・レベルのディレクトリに格納します(`workspace-directory\.mds\dt\customizationLayerValues\CustomizationLayerValues.xml`など)。このファイルは、「アプリケーション」ウィンドウの「アプリケーション・リソース」ウィンドウのMDS DTノードの下にあります。

#### 11.4.2.1 Studio開発者ロールの使用方法

次に、Studio開発者ロールで特定アプリケーションの`CustomizationLayerValues.xml`ファイルを構成する手順について説明します。

始める前に

- 第11.3項「カスタマイズ・クラスに関する必知事項」の説明に従って、カスタマイズ・クラスを作成します。

- 第11.5.1項「デザインタイムにJDeveloperでカスタマイズ・クラスを使用可能にする方法」の説明に従って、クラスをJDeveloperで使用できるようにします。

Studio開発者ロールからワークスペース・レベルでデザインタイム・カスタマイズ・レイヤー値を構成するには:

1. 「アプリケーション・リソース」ウィンドウで、「ディスクリプタ」→「ADF META-INF」ノードを開き、adf-config.xmlをダブルクリックします。

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

3. カスタマイズ・クラスの表の下の「MDS構成」ページで、「デザインタイム・カスタマイズ・レイヤー値の構成」をクリックして、ワークスペース・レベルの`CustomizationLayerValues.xml`ファイルをソース・エディタで開きます。

   注意: オーバーライド・ファイルが存在しない場合、JDeveloperは、確認ダイアログを表示します。「はい」をクリックして、グローバル・ファイルのコピーを作成して開きます。

4. このファイルで、第11.4項「カスタマイズ・レイヤーの構成方法」の説明に従って、必要なレイヤー値を指定します。

5. 変更を保存します。

#### 11.4.2.2 「カスタマイズ開発者」ロールの使用方法

次に、「カスタマイズ開発者」ロールで特定アプリケーションの`CustomizationLayerValues.xml`ファイルを構成する手順について説明します。

始める前に

- 第11.3項「カスタマイズ・クラスに関する必知事項」の説明に従って、カスタマイズ・クラスを作成します。

- 第11.5.1項「デザインタイムにJDeveloperでカスタマイズ・クラスを使用可能にする方法」の説明に従って、クラスをJDeveloperで使用できるようにします。

「カスタマイズ開発者」ロールからワークスペース・レベルでデザインタイム・カスタマイズ・レイヤー値を構成するには:

1. 「カスタマイズ・コンテキスト」ウィンドウで、「アプリケーション・レイヤー値の構成」をクリックし、`CustomizationLayerValues.xml`ファイルをソース・エディタで開きます。

   注意: オーバーライド・ファイルが存在しない場合、JDeveloperは、確認ダイアログを表示します。「はい」をクリックして、グローバル・ファイルのコピーを作成して開きます。

2. このファイルで、第11.4項「カスタマイズ・レイヤーの構成方法」の説明に従って、必要なレイヤー値を指定します。

3. 変更を保存します。

「カスタマイズ開発者」ロールの間にアプリケーション固有の`CustomizationLayerValues.xml`ファイルに対して変更を行った後、「カスタマイズ・コンテキスト」ウィンドウで選択したヒント・レイヤーが選択解除されます。必要なヒント・レイヤーを選択できます。

## 11.5 カスタマイズ・クラスの使用

カスタマイズ・クラスを作成後、これらをデザインタイムに「カスタマイズ開発者」ロールで、およびランタイムにアプリケーションで使用できます。アプリケーションまたはJDeveloperで使用するには、クラスを適切にパッケージ化する必要があります。

### 11.5.1 デザインタイムにJDeveloperでカスタマイズ・クラスを使用可能にする方法

カスタマイズ・クラスの作成後、JDeveloperでカスタマイズ・クラスを使用可能にして、カスタマイズの実装時に「カスタマイズ開発者」ロールで操作中に使用できるようにする必要があります。

カスタマイズ・クラスは再利用可能コンポーネントであるため、別個のプロジェクトを作成してこれにカスタマイズ・クラスを含めて、独自のJARファイルにパッケージ化できます。その後、使用するアプリケーションにJARをインポートし、カスタマイズ・クラスをJDeveloperで使用できます。

注意: 使用するアプリケーションのデータ・モデル・プロジェクトでカスタマイズ・クラスを作成した場合、この手順は不要です。

次の手順を使用してアプリケーションでカスタマイズ・クラスを表示できるようにしてから、第11.6項「adf-config.xmlファイルの構成方法」の説明に従って、カスタマイズ・クラスを`adf-config.xml`ファイルの`cust-config`セクションに追加します。

始める前に

- 第11.2項「MAF AMXページおよびアーティファクトのカスタマイズ」の説明に従って、外部プロジェクトにカスタマイズ・クラスを作成します。

- カスタマイズ・クラスを含むJARファイルを作成します。

- Studio開発者ロールを使用してJDeveloperを起動し、カスタマイズするアプリケーションを開きます。

外部プロジェクトからカスタマイズ・クラスを使用するには:

1. 「アプリケーション」ウィンドウで、「アプリケーション・メニュー」アイコンをクリックして、「アプリケーションのプロパティ」を選択します。

2. 「アプリケーションのプロパティ」ダイアログで、「ライブラリとクラスパス」を選択し、「JAR/ディレクトリの追加」をクリックします。

3. 「アーカイブまたはディレクトリの追加」ダイアログで、カスタマイズ・クラスを含む作成済JARファイルを選択して、「開く」をクリックします。

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

完了したら、JDeveloperでプロジェクトをローカルに実行するためやカスタマイズのために、カスタマイズ・クラスを使用できます。またこれらは、アプリケーションをパッケージ化するときに、EARクラス・パスにパッケージ化されます。

## 11.6 adf-config.xmlファイルの構成方法

アプリケーションの`adf-config.xml`ファイルでは、`mds-config`セクションで適切な`cust-config`要素が指定されている必要があります。クライアントは`cust-config`要素を使用して、順序付けされ、名前が付けられたカスタマイズ・クラスのリストを定義できます。`adf-config.xml`ファイルの概要エディタを使用して、カスタマイズ・クラスを追加します(図11-6を参照)。

始める前に

- 第11.2項「MAF AMXページおよびアーティファクトのカスタマイズ」の説明に従って、外部プロジェクトにカスタマイズ・クラスを作成します。

- カスタマイズ・クラスを含むJARファイルを作成します。

- 第11.5.1項「デザインタイムにJDeveloperでカスタマイズ・クラスを使用可能にする方法」の説明に従って、クラスをJDeveloperで使用できるようにします。

- Studio開発者ロールを使用してJDeveloperを起動し、カスタマイズするアプリケーションを開きます。

adf-config.xmlファイルでカスタマイズ・クラスを識別するには:

1. 「アプリケーション・リソース」ウィンドウで、「ディスクリプタ」→「ADF META-INF」ノードを開き、adf-config.xmlをダブルクリックします。

2. 概要エディタで、「MDS」ナビゲーション・タブを選択し、「追加」(+)をクリックします。

3. 「カスタマイズ・クラスの編集」ダイアログで、作成済のカスタマイズ・クラスを検索するか、作成済のカスタマイズ・クラスに移動します。

4. 適切なクラスを選択して、「OK」をクリックします。

5. カスタマイズ・クラスをすべて追加した後、矢印アイコンを使用して適切な順序で配置できます。

図11-6は、2つのカスタマイズ・クラスが追加された`adf-config.xml`ファイルの概要エディタを示しています。

図11-6 adf-config.xmlの概要エディタ

`customization-class`要素の順序により、カスタマイズ・レイヤーの優先順位が指定されます。たとえば、例11-4に示すコードでは、`IndustryCC`クラスは`SiteCC`クラスの前に表示されています。これは、industryレイヤーでのカスタマイズがベース・アプリケーションに適用されてから、siteレイヤーでのカスタマイズが適用されることを示します。

例11-4 adf-config.xmlファイルでのカスタマイズ・クラスの順序

    <adf-config xmlns="http://xmlns.oracle.com/adf/config">
       <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
          <mds-config xmlns="http://xmlns.oracle.com/mds/config" version="11.1.1.000">
             <cust-config>
                <match path="/">
                   <customization-class name="com.mycompany.IndustryCC"/>
                   <customization-class name="com.mycompany.SiteCC"/>
                </match>
             </cust-config>
          </mds-config>
       </adf-mds-config>
    </adf-config>

## 11.7 「カスタマイズ開発者」ロールに関する必知事項

JDeveloperでは、「カスタマイズ開発者」ロールを使用して、プロジェクトのメタデータをカスタマイズします。カスタマイズ機能は、このロールでのみ使用できます。「カスタマイズ開発者」ロールでは、次の作業を実行できます。

- カスタマイズの作成および更新

- カスタマイズしたアプリケーションのヒント・レイヤーの選択および編集

- 既存のカスタマイズの削除

「カスタマイズ開発者」ロールでJDeveloperを使用する場合、ソース・エディタは読取り専用になり、次のJDeveloperの機能が無効になります。

- ワークスペースの移行

- アプリケーションおよびIDE接続の作成、削除および変更「カスタマイズ開発者」ロールでアプリケーションを開く前に、デフォルト・ロールで接続を構成する必要があります。

「カスタマイズ開発者」ロールでアプリケーションを使用する場合、新規オブジェクトは作成できず、カスタマイズ不能オブジェクトは変更できません。また、Javaクラス、リソース・バンドル、セキュリティ・ポリシー、デプロイメント・ディスクリプタ、構成ファイルなどのカスタマイズ不能ファイルの編集もできません。

注意: 「カスタマイズ開発者」ロールで作業している際、カスタマイズ不能ファイルはロック・アイコンで示されます。

プロジェクト設定の変更や、サービス・インタフェースやビジネス・イベント定義など特定のADFビジネス・コンポーネント機能のカスタマイズも制限されます。また、カスタマイズ不能ファイルの変更が必要になる場合は、カスタマイズ可能ファイルをリファクタまたは変更できません。

### 11.7.1 JDeveloperでの「カスタマイズ開発者」ロールへの切替え

「カスタマイズ開発者」ロールでは、JDeveloperのカスタマイズ機能を使用できます。このロールで作業するには、JDeveloperの起動時に選択するか、JDeveloperがすでに実行されている場合は「ロールの切替え」メニューで「カスタマイズ開発者」ロールに切り替えます。

JDeveloperで「カスタマイズ開発者」ロールに切り替えるには:

JDeveloperのメイン・メニューで「ツール」→「ロールの切替え」→「カスタマイズ開発者」の順に選択します。

オプションで、「ツール」→「ロールの切替え」→「起動時にロール選択を常に要求」メニューを切り替え、JDeveloper起動時にロールを選択するかどうかを指定できます。この選択を解除すると、JDeveloperは、最後に閉じたときのロールで起動します。

### 11.7.2 ヒント・レイヤーに関する必知事項

「カスタマイズ開発者」ロールで作業する際、「カスタマイズ・コンテキスト」ウィンドウで選択したレイヤーとレイヤー値の組合せをヒント・レイヤーと呼びます。このレイヤーには、「カスタマイズ開発者」ロールで作業中に行った変更が適用されます。

注意: 「カスタマイズ開発者」ロールで作業している場合、「カスタマイズ・コンテキスト」ウィンドウが表示されない場合は、JDeveloperの「ウィンドウ」メニューからアクセスできます。

JDeveloperのエディタに表示されるメタデータは、ベース・メタデータと(`adf-config.xml`で設定された優先順位に従った)ヒント・レイヤーまでのカスタマイズ・レイヤーを組み合せたもので、各レイヤーの値は「カスタマイズ・コンテキスト」ウィンドウで指定したものです。

「カスタマイズ開発者」ロールでの作業時には、アプリケーションのカスタマイズされていない状態も確認できます。「カスタマイズ・コンテキスト」ウィンドウで「カスタマイズなしで表示」が選択されている場合、現在使用しているヒント・レイヤーはありません。したがって、表示されているのはカスタマイズされていない状態です。このビューでは、(「アプリケーション」ウィンドウの)カスタマイズ可能ファイルすべてにロック・アイコンが表示され、これらのファイルが読取り専用であることが示されます。

ヒント・レイヤーで行ったカスタマイズは、「プロパティ」ウィンドウではオレンジのアイコンで示されます。緑のアイコンは、ヒント以外のレイヤーのカスタマイズを示します。プロパティの横にオレンジのアイコンが表示されている場合、そのプロパティのドロップダウン・メニューから「カスタマイズ・アクションの削除」を選択して、そのカスタマイズを削除できます。