プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発
11gリリース1 (11.1.1.9.0)
E49666-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

14 リソース・カタログの開発

この章では、Oracle JDeveloperを使用してWebCenter Portal Frameworkアプリケーション用のリソース・カタログを作成および管理する方法を説明します。

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

14.1 リソース・カタログの概要

リソース・カタログを使用すると、統合された検索および参照のユーザー・インタフェースに、本来であれば関連しない1つ以上のリポジトリのコンテンツの結合ビューが提供されます。リソース・カタログは、ページ、ページ・テンプレートまたはタスク・フローに組み込むことができるすべてのリソースを定義し、編成するためのメカニズムを提供します。リソースはソース・リポジトリを起点とし、図14-1に示すようにリソース・カタログを介して公開されます。

図14-1 リソース・カタログの概要

図14-1の説明が続きます
「図14-1 リソース・カタログの概要」の説明

JDeveloperを使用すると、2タイプのリソース・カタログ(設計時リソース・カタログと実行時リソース・カタログ)が表示されます。

設計時リソース・カタログはリソース・パレットで使用でき、開発者向けのお気に入りリストのようなものです。WebCenter Portal - サービス・カタログは、WebCenter Portal拡張機能バンドルをインストールするとそのまま使用可能な設計時のカタログです。このカタログに含まれるタスク・フローとデータ・コントロールをPortal Frameworkアプリケーションに追加できます。WebCenter Portal - サービス・カタログの他に、接続を定義してカタログを作成し、それらの接続で公開されるリソースを編成できます。そのようなリソースは、開発中のどのアプリケーションでも再利用できます。


関連項目:

  • 第2.2.2項「JDeveloper用のWebCenter Portal拡張機能のインストール」

  • リソース・パレットおよびカタログの詳細は、Oracle JDeveloperオンライン・ヘルプを参照してください。

    この情報をJDeveloperで検索するには、「ヘルプ」メニューから「目次」を選択します。「ヘルプ・センター」で、「JDeveloperの基本」を開き、「リソース・パレットでの作業」を選択します。


WebCenter Portalおよびデプロイ済Portal Frameworkアプリケーションでは、実行時リソース・カタログによって、コンポーザを使用してページ、タスク・フローおよびページ・テンプレートにデータを取り込む際に使用できるリソースが決まります。

シード済リソース・カタログの構成

Page Customizableコンポーネントをアプリケーションのページに追加すると、カタログ定義ファイル(default-catalog.xml)を持つシード済リソース・カタログがアプリケーションで構成されます。作成したアプリケーションのタイプに応じて、カタログ定義ファイルは次のいずれかのフォルダで作成されます。

  • Portal Frameworkアプリケーションでは、default-catalog.xmlファイルはApplication_Root/Portal/public_html/oracle/webcenter/portalapp/catalogsディレクトリにあります。この場合のリソース・カタログには、図14-2のようなフォルダが含まれています。

    図14-2 デフォルトのリソース・カタログ

    図14-2の説明が続きます
    「図14-2 デフォルトのリソース・カタログ」の説明

  • Portal Framework以外のアプリケーションでは、default-catalog.xmlファイルはAPPLICATION_ROOT/Portal/src/portalディレクトリにあります。この場合、リソース・カタログにはADF Faces Componentsフォルダがあり、そこにはユーザーがページを追加できるADF Facesコンポーネントが含まれています。

アプリケーションにポートレット・プロデューサを登録している場合には、リソース・カタログの「ポートレット」フォルダにそのプロデューサのポートレットが表示されます。プロデューサを登録していない場合、「ポートレット」フォルダは非表示になります。

独自のリソース・カタログを作成することも、シード済カタログを変更してビジネス関連のコンポーネントを組み込むこともできます。

実行時管理

Portal Frameworkアプリケーションは、デプロイ後もポータルの開発をユーザーが続行できるように、リソース・カタログの実行時管理をサポートしています。実行時管理により、権限のあるユーザーがリソース・カタログをブラウザ・ベースの環境で作成および管理でき、JDeveloperのインストールや知識は必要ありません。詳細は、第9.5項「実行時のポータル・リソースの使用」を参照してください。

ラウンドトリップ開発

ポータルの再デプロイ時に変更内容が失われないように、実行時に作成または変更されたリソース・カタログをJDeveloperに取り込むことができます。必要な場合は、これらのリソース・カタログを編集してさらに改良でき、デプロイ済ポータルに再びアップロードできます。詳細は、第9.6項「ラウンドトリップ開発での作業」を参照してください。

14.2 リソース・カタログの作成

アプリケーション用に作成されたシード済リソース・カタログが要件を満たさない場合、または複数のリソース・カタログを構成する必要がある場合は、必要なすべてのリソースを含む独自のリソース・カタログを作成できます。


注意:

適切にリソース・カタログを実装するには、定義の元となるXMLスキーマだけでなく、アプリケーションが定義を検索する場所も知っておく必要があります。詳細は付録B「コンポーザ・コンポーネントのプロパティおよびファイル」を参照してください。

リソース・カタログを作成するには:

  1. アプリケーション・ナビゲータで、リソース・カタログを作成するノード(通常は、/oracle/webcenter/portalapp/catalogs)を右クリックし、「新規」を選択します。

  2. 「新規ギャラリ」で、「Web層」を開き、「ポータル・フレームワーク」「リソース・カタログ」の順に選択して、「OK」をクリックします。

  3. 「アプリケーション・リソース・カタログの作成」ダイアログの「ファイル名」フィールドに、リソース・カタログを表すXMLファイルの名前を入力します(たとえば、users-catalog.xml)。

    図14-3 「アプリケーション・リソース・カタログの作成」ダイアログ

    図14-3の説明が続きます
    「図14-3 「アプリケーション・リソース・カタログの作成」ダイアログ」の説明

  4. 「ディレクトリ」フィールドに、リソース・カタログ定義のXMLファイルを作成する場所の絶対ディレクトリ・パスを入力します。


    注意:

    Portal Frameworkアプリケーションにおいて、実行時管理コンソールの「アセット」ページで新規リソース・カタログを公開するには、リソース・カタログをApplication_Root/Portal/public_html/oracle/webcenter/portalappディレクトリに作成する必要があります。デフォルトでは、Portal Frameworkアプリケーションには別個のcatalogsディレクトリが含まれています。

    Portal Framework以外のアプリケーションでは、Application_Root/Portal/src/portalディレクトリにリソース・カタログを作成します。



    ヒント:

    このオプションをこの時点で選択しなくても、リソース・カタログを後から実行時管理コンソールに追加できます。その場合は、リソース・カタログを右クリックして「ポータル・リソースの作成」を選択します。

  5. 「ポータル・リソースとして作成」を選択して、適切な権限を持つユーザーが実行時管理コンソールの「アセット」ページでリソース・カタログを実行時に管理できるようにします。


    注意:

    Portal Frameworkアプリケーションでこのオプションを使用するには、入力したディレクトリがApplication_Root/Portal/public_html/oracle/webcenter/portalappディレクトリか、そのサブディレクトリのいずれかであることが必要です。

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

    Portal Frameworkアプリケーションでリソース・カタログを作成すると、リソース・カタログのカタログ定義ファイル(XMLファイル)が指定のディレクトリに作成されます。「デザイン」ビューでカタログ定義ファイルが開きます。

    図14-4 デザイン・ビュー内のリソース・カタログ

    図14-4の説明が続きます
    「図14-4 デザイン・ビュー内のリソース・カタログ」の説明

    カタログ定義ファイルは最初は空なので、編集してリソース・カタログの構造とコンテンツを設計する必要があります。詳細は、第14.3項「リソース・カタログの編集」を参照してください。


    ヒント:

    追加するリソースを最初から作成しない場合には、開始点としてdefault-catalog.xmlファイルのソース・コードを新規カタログ定義のソース・ビューにコピーすることも可能です。

    適切なディレクトリの下にリソース・カタログを作成し、「ポータル・リソースとして作成」オプションを選択した場合は、リソース・カタログの実行時管理が自動的に可能になります。詳細は、第9.5項「実行時のポータル・リソースの使用」を参照してください。

14.3 リソース・カタログの編集

リソース・カタログのコンテンツを定義するために、シード済リソース・カタログdefault-catalog.xmlを編集して、アプリケーション内のページとタスク・フローにユーザーが追加できるようにするリソースを追加できます。シード済リソース・カタログは、WebCenter Portal Frameworkアプリケーション・テンプレートを使用してアプリケーションを作成する際に自動的に作成されます。

リソース・カタログを独自に作成して、編集することもできます。詳細は、第14.2項「リソース・カタログの作成」を参照してください。

リソース・カタログにリソースを追加するには、次の2通りの方法を使用できます。

リソース・カタログの「デザイン」ビューでは、既存のリソースの再配置、変更および削除を行うこともできます。

XMLエディタの左側には「カタログ」セクションがあり、カタログのコンポーネントの階層構造が表示されます。そのページの右側には、選択済リソースの属性とパラメータを定義するフィールドが表示されます。


ヒント:

リソース・カタログを最初から作成する場合には、デフォルトのカタログ定義ファイルを参照して、カタログ内にリソースを含める方法についてヒントを得ることができます。


注意:

コンポーザのスタンドアロン・バージョン(WebCenter Portal Frameworkを使用しないコンポーザ)を使用する場合、リソースをカタログに追加するには、<resource>要素を直接カタログ定義ファイルのソースに追加します。詳細は、第C.3.12項「resource」を参照してください。


関連項目:

カタログ定義ファイルとその属性は次の項を参照してください。

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

14.3.1 リソースへの接続の定義方法

WebCenter Portalのツールとサービス、ポートレットなど多くのリソースへは、アプリケーションのconnections.xmlファイルで定義された接続を経由してアクセスします。そのため、リソース・カタログへそのようなリソースを追加するには、事前に接続を作成する必要があります。

様々な方法でリソースへの接続を作成できます。この項では、「リソース・パレット」から接続を作成する方法を説明します。接続を作成するその他の方法の詳細は、第4.2項「ツールとサービスを利用するためのFrameworkアプリケーションの準備」を参照してください。

「リソース・パレット」から接続を作成するには:

  1. 「リソース・パレット」で、左上隅の「新規」アイコンをクリックします。

  2. 「接続の作成」および作成する接続のタイプを選択します。

    接続タイプのウィザードが表示されます。

  3. 接続に関する必要な情報を入力してウィザードを続行します。

    「終了」をクリックすると、「リソース・パレット」の「接続」の下に接続が表示されます。

  4. 「リソース・パレット」で接続を右クリックし、ポップアップ・メニューから「アプリケーションに追加」を選択します。

    または、アプリケーション・ナビゲータの「アプリケーション・リソース」パネルに、「リソース・パレット」から接続をドラッグ・アンド・ドロップすることもできます。

14.3.2 リソース・カタログにリソースをドラッグ・アンド・ドロップする方法

カタログ定義ファイルの「デザイン」ビューでリソースを目的の場所にドラッグ・アンド・ドロップすることによって、カタログに次のリソースを追加できます。

  • ポートレット: 「アプリケーション・リソース」ペインまたは「リソース・パレット」から

  • コンテンツ: 「アプリケーション・リソース」ペインまたは「リソース・パレット」内のWebCenter Content接続から

  • タスク・フロー: 「アプリケーション・リソース」ペインまたは「リソース・パレット」から


    注意:

    ADFタスク・フローをカタログに追加し、カタログをデプロイ済のアプリケーションにエクスポートする場合には、このタスク・フローを共有ライブラリとしてデプロイ済アプリケーションにデプロイする必要があります。

    詳細は、第15.4項「ページへのカスタム・タスク・フローの追加」を参照してください。


  • リソース・カタログ: アプリケーション・ナビゲータから。これにより、リソース・カタログが別のリソース・カタログ内に埋め込まれます。

14.3.3 リソース・カタログにリンクを追加する方法

次のリソースへのリンクをカタログに追加できます。

  • タスク・フロー: WebCenter Portalのツールとサービス・タスク・フロー(リソース・パレット内)、またはJDeveloperで作成したカスタム・タスク・フロー(アプリケーション・ナビゲータ内)へのリンク。

  • ポートレット: 登録済のポートレット・プロデューサへのリンク。ポートレット・プロデューサの登録およびページへのポートレット追加の詳細は、第63章「ポートレットの消費」を参照してください。

  • コンテンツ: 既存のWebCenter Content接続からファイルまたはディレクトリへのリンク。

  • その他: カスタム・コンポーネント(そのコンポーネントのXMLコードを提供することで作成します)へのリンク。

リンクを追加するには:

  1. アプリケーション・ナビゲータ内で、リンクを追加する対象のリソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」セクションから、リンクを追加する対象のリソース・カタログ内のノードを選択します。

  3. 「新しいノードを追加します」アイコンをクリックして、「リンク」を選択します。

    url要素がカタログに追加されます。ページの右側には、新しいリンクの属性とパラメータを定義するフィールドが表示されます。

  4. 「ID」フィールドには自動的に生成されたIDが移入されます。このIDを保持することはできますが、より説明的なIDに変更することもできます。IDは、カタログ定義ファイル内で一意であることが必要です。

  5. 「タイプ」リストから、作成するリソースのタイプを選択します。「タスクフロー」「ポートレット」「コンテンツ」または「その他」を選択できます。


    注意:

    ADFタスク・フローをカタログに追加し、カタログをデプロイ済のアプリケーションにエクスポートする場合には、このタスク・フローを共有ライブラリとしてデプロイ済アプリケーションにデプロイする必要があります。

    詳細は、第15.4項「ページへのカスタム・タスク・フローの追加」を参照してください。


  6. カスタム・リソースへのリンクを追加する(つまり、「タイプ」リストから「その他」を選択した)場合は、コンポーネントのファクトリ・クラスを指定します。その他すべてのリソース・タイプの場合、「ファクトリ・クラス」の値には、選択したリンク・タイプに応じた値が自動的に移入されます。

    使用可能なリソース・タイプのファクトリ・クラスは、次のとおりです。

    • タスク・フロー: oracle.webcenter.portalframework.sitestructure.rc.TaskFlowResourceFactory

    • ポートレット: oracle.webcenter.portalframework.sitestructure.rc.PortletResourceFactory

    • コンテンツ: oracle.webcenter.content.model.rc.ContentUrlResourceFactory

    詳細は、第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」を参照してください。

  7. 「URL」フィールドに、リソースにアクセスするためのURLを入力します。場所がわからない場合は、「ファイルを参照します」アイコンをクリックして使用可能なリソースを参照します。表14-1に、各リソース・タイプに使用するURL形式を示します。

    表14-1 様々なリソース・タイプのURLの形式

    リソース・タイプ アプリケーション内での場所 URL形式

    ADFライブラリからのタスク・フロー

    リソース・パレット

    taskflow://pathToTaskFlow/taskFlowDefinitionFilName#taskFlowId
    

    アプリケーション内のタスク・フロー

    アプリケーション・ナビゲータ

    taskflow://pathToTaskFlow/taskFlowDefinitionFileName#taskFlowId
    

    ポートレット

    「アプリケーション・リソース」ペインまたは「リソース・パレット」内のポートレット・プロデューサ接続

    portlet://producerId/portletId
    

    コンテンツ

    「アプリケーション・リソース」ペイン内の「コンテンツ・リポジトリ」接続

    content://contentConnectionId/documentId
    


    注意:

    ポートレットまたはコンテンツ・タイプのリソースのURLを手動で入力した場合に、そのリソースの接続をリソース・パレット内のみで使用できるようにするには、まずそのアプリケーションへの接続を追加します。

  8. 「表示可能」フィールドで、実行時にリソース・カタログにリンクを表示するかどうかを指定します。デフォルト値はEL式#{true}で、これはすべてのユーザーに対して常にリンクを表示することを意味します。リンクがすべてのユーザーに対して常に非表示になるようにするにはfalseまたは#{false}を入力します。あるいは、リンクの表示条件を指定するEL式を入力します。フィールドが空の場合、値はデフォルトでtrueになります。

  9. オプションで、「URL属性」セクションにリンクの任意の表示オプションを指定します。詳細は、第14.3.9項「リソース・カタログまたはリソースの表示オプションの設定方法」を参照してください。

  10. 「URLパラメータ」セクションで、必要に応じて、リソースでサポートしているパラメータの値を入力します。これらのパラメータは、アプリケーションのその他のアーティファクトにバインドできます。

    「追加」アイコンをクリックして、「パラメータ」表に行を作成します。

  11. カタログ定義ファイルを保存します。

14.3.4 リソース・カタログにフォルダを追加する方法

フォルダを作成し、類似リソースをグループ化できます。その結果、カタログの編成が改善されます。

フォルダを追加するには:

  1. アプリケーション・ナビゲータ内で、フォルダを追加する対象のリソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」セクションから、フォルダを追加する対象のリソース・カタログ内のノードを選択します。

  3. 「新しいノードを追加します」アイコンをクリックして、「フォルダ」を選択します。

    folder要素がカタログに追加されます。ページの右側には、新しいフォルダの属性とパラメータを定義するフィールドが表示されます。

  4. 「ID」フィールドには自動的に生成されたIDが移入されます。このIDを保持することはできますが、より説明的なIDに変更することもできます。IDはリソース・カタログ内で一意であることが必要です。

  5. 「表示可能」フィールドで、実行時にリソース・カタログにフォルダを表示するかどうかを指定します。デフォルト値はEL式#{true}で、これはすべてのユーザーに対して常にフォルダを表示することを意味します。フォルダがすべてのユーザーに対して常に非表示になるようにするにはfalseまたは#{false}を入力します。あるいは、フォルダの表示条件を指定するEL式を入力します。フィールドが空の場合、値はデフォルトでtrueになります。

  6. オプションで、「フォルダ属性」セクションにフォルダの任意の表示オプションを指定します。詳細は、第14.3.9項「リソース・カタログまたはリソースの表示オプションの設定方法」を参照してください。

  7. 「フォルダ・パラメータ」セクションで、必要に応じて、フォルダでサポートしているパラメータの値を入力します。これらのパラメータは、アプリケーションのその他のアーティファクトにバインドできます。

    「追加」アイコンをクリックして、「パラメータ」表に行を作成します。

  8. カタログ定義ファイルを保存します。

14.3.5 リソース・カタログにカスタム・コンポーネントを追加する方法

単一のADF Facesコンポーネント、2つ以上のコンポーネントを含む複合オブジェクト、内部に任意のHTMLコンテンツを追加できるJSF Verbatimタグなどのカスタム・コンポーネントを、リソース・カタログに追加できます。カタログに追加可能な任意のHTMLの例は、YouTubeビデオです。

カスタム・コンポーネントを追加するには:

  1. アプリケーション・ナビゲータ内で、カスタム・コンポーネントを追加する対象のリソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」セクションから、カスタム・コンポーネントを追加する対象のリソース・カタログ内のノードを選択します。

  3. 「新しいノードを追加します」アイコンをクリックして、「コンポーネント」を選択します。

    component要素がカタログに追加されます。ページの右側には、新しいコンポーネントの属性とパラメータを定義するフィールドが表示されます。

  4. 「ID」フィールドには自動的に生成されたIDが移入されます。このIDを保持することはできますが、より説明的なIDに変更することもできます。IDはリソース・カタログ内で一意であることが必要です。

  5. 「コンポーネント・ファクトリ:*」フィールドに、oracle.adf.rc.component.XmlComponentFactoryなど、oracle.adf.rc.component.ComponentFactoryインタフェースを実装し、一連のパラメータに基づいてコンポーネントのインスタンスを作成するJavaクラスの名前を入力します。

    名前を入力すると、クラスパスから有効なファクトリ・クラスがフィールドに自動的に入力されます。「参照」アイコンを使用しても、クラスを選択できます。

    詳細は、第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」を参照してください。

  6. 「表示可能」フィールドで、実行時にリソース・カタログにコンポーネントを表示するかどうかを指定します。デフォルト値はEL式#{true}で、これはすべてのユーザーに対して常にコンポーネントを表示することを意味します。コンポーネントがすべてのユーザーに対して常に非表示になるようにするにはfalseまたは#{false}を入力します。あるいは、コンポーネントの表示条件を指定するEL式を入力します。フィールドが空の場合、値はデフォルトでtrueになります。

  7. オプションで、「コンポーネント属性」セクションにカスタム・コンポーネントの任意の表示オプションを指定します。詳細は、第14.3.9項「リソース・カタログまたはリソースの表示オプションの設定方法」を参照してください。

  8. 「コンポーネント・パラメータ」セクションを使用して、ファクトリ・クラスを実装する際に定義されたパラメータを追加します。

    たとえば、XMLコンポーネントを追加する場合、「パラメータ」セクションで「追加」アイコンをクリックし、「xml」を選択します。表示される新しい行で、「値」フィールドにコンポーネントのXMLコードを指定します。


    注意:

    xmlオプションは、oracle.adf.rc.component.XmlComponentFactoryをコンポーネント・ファクトリとして選択している場合にのみ表示されます。

    コンポーネントを正しく機能させるには、次の例のように、カスタム・コンポーネントIDが#になるように指定し、ネームスペースを指定する必要があります。

    <cust:panelCustomizable id="#" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"/>
    

    #という値により、コンポーネントに対し、動的に一意のIDが生成されます。

  9. カタログ定義ファイルを保存します。

14.3.6 リソース・カタログにカスタム・フォルダを追加する方法

フォルダが動的に移入されるように、リソース・カタログ・アダプタを使用してフォルダを追加できます。カスタム・フォルダは、カタログへのリソースを含むフォルダとして追加されません。カスタム・フォルダにはリソースを動的に表示する、ファクトリ・クラスへの参照のみが含まれます。

カスタム・フォルダを追加するには:

  1. アプリケーション・ナビゲータ内で、カスタム・フォルダを追加する対象のリソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」セクションから、カスタム・フォルダを追加する対象のリソース・カタログ内のノードを選択します。

  3. 「新しいノードを追加します」アイコンをクリックして、「カスタム・フォルダ」を選択します。

    customFolder要素がカタログに追加されます。ページの右側には、新しいフォルダの属性とパラメータを定義するフィールドが表示されます。

  4. 「ID」フィールドには自動的に生成されたIDが移入されます。このIDを保持することはできますが、より説明的なIDに変更することもできます。IDはリソース・カタログ内で一意であることが必要です。

  5. 「初期コンテキスト・ファクトリ」フィールドで、javax.naming.InitialContextFactoryインタフェースを実装して一連のパラメータに基づいてフォルダを生成するJavaクラスの名前を入力します。

    詳細は、第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」を参照してください。

  6. 「表示可能」フィールドで、実行時にリソース・カタログにフォルダを表示するかどうかを指定します。デフォルト値はEL式#{true}で、これはすべてのユーザーに対して常にフォルダを表示することを意味します。フォルダがすべてのユーザーに対して常に非表示になるようにするにはfalseまたは#{false}を入力します。あるいは、フォルダの表示条件を指定するEL式を入力します。フィールドが空の場合、値はデフォルトでtrueになります。

  7. 「フォルダの内容の挿入」を選択し、カスタム・フォルダの内容をフォルダの下に表示するのではなく、カタログに直接表示します。

  8. オプションで、「カスタム・フォルダ属性」セクションにフォルダの任意の表示オプションを指定します。詳細は、第14.3.9項「リソース・カタログまたはリソースの表示オプションの設定方法」を参照してください。

  9. 「カスタム・フォルダ・パラメータ」セクションに、ファクトリ・クラスを実装する際に定義したパラメータを追加します。これらのパラメータは、アプリケーションのその他のアーティファクトにバインドできます。

    「パラメータ」セクションで「追加」アイコンをクリックし、「パラメータ」表に新しい行を作成します。

    ファクトリ・クラスがパラメータを公開している場合、「追加」アイコンのドロップダウン・メニューが表示される場合があります。たとえば、コンテンツ・プレゼンタ固有のファクトリ・クラスでは、templateViewパラメータが表示されます。

  10. カタログ定義ファイルを保存します。

14.3.7 リソース・カタログにカスタム・コンテンツ・プロバイダを追加する方法

カスタム・コンテンツ・プロバイダは、実行時に0以上のカタログ・エントリを動的に生成します。カタログ・エントリには、フォルダ、リンク、カスタム・フォルダ、コンポーネントなどが含まれます。カスタム・フォルダを追加すると、フォルダがカタログ内に作成され、空の場合でも実行時に表示されます。ただし、カスタム・コンテンツ要素を追加した場合には、フォルダはカタログ内に作成されますが、コンポーネントが含まれている場合にのみ実行時に表示されます。この違いを除いては、カスタム・コンテンツ・プロバイダはカスタム・フォルダと同じです。

カスタム・コンテンツ・プロバイダを追加するには:

  1. アプリケーション・ナビゲータ内で、カスタム・コンテンツ・プロバイダを追加する対象のリソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」セクションから、カスタム・コンテンツ・プロバイダを追加する対象のリソース・カタログ内のノードを選択します。

  3. 「新しいノードを追加します」アイコンをクリックして、「カスタム・コンテンツ」を選択します。

    customContent要素がカタログに追加されます。ページの右側には、新しいフォルダの属性とパラメータを定義するフィールドが表示されます。

  4. 「ID」フィールドには自動的に生成されたIDが移入されます。このIDを保持することはできますが、より説明的なIDに変更することもできます。IDはリソース・カタログ内で一意であることが必要です。

  5. 「コンテンツ・プロバイダ」フィールドで、oracle.adf.rc.spi.plugin.catalog.CustomContentProviderV2インタフェースを実装するクラスの完全修飾名を入力します。

    「参照」アイコンを使用して、このインタフェースを実装するクラスのリストを表示できます。第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」も参照してください。

  6. 「表示可能」フィールドで、実行時にリソース・カタログにフォルダを表示するかどうかを指定します。デフォルト値はEL式#{true}で、これはすべてのユーザーに対して常にフォルダを表示することを意味します。フォルダがすべてのユーザーに対して常に非表示になるようにするにはfalseまたは#{false}を入力します。あるいは、フォルダの表示条件を指定するEL式を入力します。フィールドが空の場合、値はデフォルトでtrueになります。

  7. オプションで、「カスタム・コンテンツ属性」セクションにフォルダの任意の表示オプションを指定します。詳細は、第14.3.9項「リソース・カタログまたはリソースの表示オプションの設定方法」を参照してください。

  8. 「カスタム・コンテンツ・パラメータ」セクションで、フォルダ上のパラメータを定義します。ここで定義するパラメータは、CustomContentProviderV2実装に渡され、この実装により解釈されます。

    「パラメータ」セクションで「追加」アイコンをクリックし、「パラメータ」表に新しい行を作成します。

  9. カタログ定義ファイルを保存します。

14.3.8 リソース・カタログを別のリソース・カタログに追加する方法

選択したカタログ内に別のリソース・カタログを含めることができます。別のカタログを追加する際には、このカタログへのポインタのみがカタログ定義ファイルに追加されます。実際のカタログ・コンテンツは、実行時にのみ挿入されます。

リソース・カタログを別のリソース・カタログに追加するには:

  1. アプリケーション・ナビゲータ内で、リソース・カタログを追加する対象のリソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」セクションから、リソース・カタログを追加する対象のリソース・カタログ内のノードを選択します。

  3. 「新しいノードを追加します」アイコンをクリックして、「カタログ参照」を選択します。

    catalog要素がカタログに追加されます。ページの右側には、リソース・カタログの属性とパラメータを定義するフィールドが表示されます。

  4. 「ID」フィールドには自動的に生成されたIDが移入されます。このIDを保持することはできますが、より説明的なIDに変更することもできます。IDはリソース・カタログ内で一意であることが必要です。

  5. 「パス」フィールドで、MDSパスをカタログ定義ファイルに入力します(たとえば、\oracle\webcenter\portalapp\catalogs\custom-catalog.xml)。

    「参照」アイコンを使用し、アプリケーション・フォルダを参照してカタログ定義ファイルを選択します。

  6. 「表示可能」フィールドで、実行時にリソース・カタログにフォルダを表示するかどうかを指定します。デフォルト値はEL式#{true}で、これはすべてのユーザーに対して常にフォルダを表示することを意味します。フォルダがすべてのユーザーに対して常に非表示になるようにするにはfalseまたは#{false}を入力します。あるいは、フォルダの表示条件を指定するEL式を入力します。フィールドが空の場合、値はデフォルトでtrueになります。

  7. オプションで、「カタログ属性」セクションで、リソース・カタログの目的の表示オプションを指定します。詳細は、第14.3.9項「リソース・カタログまたはリソースの表示オプションの設定方法」を参照してください。

  8. カタログ定義ファイルを保存します。

14.3.9 リソース・カタログまたはリソースの表示オプションを設定する方法

リソース・カタログまたはそのリソースのいずれかの様々な表示オプションを指定して、その外観と動作を決定できます。使用できる表示オプションは、リソースのタイプの応じて異なります。

  • タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。

  • 説明: このリソースの説明。

  • 件名: リソース・カタログのキーワード検索を容易にするキーワード。

  • ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。

  • IconURI: カタログ内でリソース名の隣に表示するアイコンの場所。

リソース・カタログまたはリソースの表示オプションを設定するには:

  1. アプリケーション・ナビゲータで、リソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」列から、表示オプションを設定する対象のリソースを選択します。

    リソース・カタログの表示オプションを設定するには、ルート・ノードを選択します。

  3. リソースの「属性」パネルで、「追加」アイコンをクリックして設定する属性を選択します。表14-2

    表14-2 リソース・カタログ表示オプション

    属性 説明

    役職

    リソース・カタログ内のリソースに表示されるタイトル。

    説明

    リソースの説明。

    Subject

    ノードの検索を容易にするキーワード。

    ToolTip

    ユーザーがマウスをタイトル上に置いたときにリソースに関する追加情報を提示するテキスト。

    IconURI

    リソースを視覚的に表すアイコン。これは、リソース・カタログ内でタイトルの隣に表示されます。


  4. 「値タイプ」ドロップダウン・リストから、次のいずれかを選択します。

    • リテラル文字列: 属性に対する値として文字列を指定します。

    • リソース・バンドル - リソース・バンドルを使用して、属性のローカライズ値を指定します。

  5. 「表示値」フィールドに、属性の値を入力します。リソース・バンドルを使用している場合、「参照」アイコンをクリックしてローカライズ値を検索するリソース・バンドルを選択します。

  6. カタログ定義ファイルを保存します。

14.3.10 カタログ内のリソースを再配置する方法

リソースを追加した後、リソース・カタログ内で別のフォルダにリソースを移動できます。リソースを再配置する方法は次のとおりです。

  • リソースをフォルダから別のフォルダにドラッグ・アンド・ドロップします。

  • 「親の変更」ポップアップ・メニューのオプションを使用して、リソースを別のフォルダに移動します。

「親の変更」オプションを使用してリソースを再配置するには:

  1. アプリケーション・ナビゲータで、リソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」列から、リソースを右クリックしてポップアップ・メニューから「親の変更」を選択します。

  3. 「親の選択」ダイアログ(図14-6)で、リソースを含めるフォルダを選択して「OK」をクリックします。

    図14-6 「親の変更」ダイアログ

    図14-6の説明が続きます
    「図14-6 「親の変更」ダイアログ」の説明


    注意:

    「OK」ボタンが有効になるのは、リソースに有効な場所を選択した場合のみです。

  4. ナビゲーション・モデル定義ファイルを保存します。

14.3.11 リソース・カタログまたはリソースを表示または非表示にする方法

リソース・カタログまたはそのリソースのいずれかを実行時に表示するかどうかを指定できます。


ヒント:

確定したtrueまたはfalseの値を指定するほか、EL式を使用して表示条件を指定することによって、リソース・カタログまたはリソースが表示可能かどうかを動的に決定することもできます。

リソース・カタログまたはリソースを表示または非表示にするには:

  1. アプリケーション・ナビゲータで、リソース・カタログを右クリックして、「開く」を選択します。

  2. リソース・カタログの「デザイン」ビューで、左側の「カタログ」列から、可視性を設定する対象のリソースを選択します。

    ナビゲーション・モデル・リソース・カタログの可視性を設定するには、ルート・ノードを選択します。

  3. 「表示可能」フィールドで、リソース・カタログまたはリソースがアプリケーション内で使用可能かどうかを指定します。このフィールドは、EL値を取ります。デフォルトは#{true}です。これは、リソース・カタログまたはリソースが表示可能であることを示します。falseまたは#{false}を入力すると、リソース・カタログまたはリソースが非表示になります。または、EL式を入力して、リソースを表示可能にする条件を指定します。フィールドが空の場合、値はデフォルトでtrueになります。

  4. ナビゲーション・モデル定義ファイルを保存します。

14.3.12 リソース・カタログ内のリソースを編集する方法

リソースを編集するには、カタログ定義ファイルの「カタログ」セクションでリソースを選択します。リソースの属性とパラメータは、ページの右側に表示されます。これらの属性とパラメータの値を編集して、カタログ定義ファイルを保存できます。リソースの属性とパラメータの詳細は、この章の該当する前項を参照してください。

14.3.13 リソース・カタログからリソースを削除する方法

リソースを削除するには、カタログ定義ファイルの「カタログ」セクションでこれを選択し、「選択したノードを削除します」アイコンをクリックします(図14-7)。

図14-7 リソース・カタログの「デザイン」ビューの「削除」オプション

図14-7の説明が続きます
「図14-7 リソース・カタログの「デザイン」ビューの「削除」オプション」の説明

14.3.14 リソース・カタログで設計時に作成されたデータ・コントロールを公開する方法

Oracle WebCenter Portalは、アプリケーション・ページおよびタスク・フローに追加できる大量のサービス・データ・コントロールを公開します。さらに、JDeveloperで独自のSQLまたはWebサービス・データ・コントロールが作成されていることもあります。ユーザーがこれらのデータ・コントロールをページおよびタスク・フローに追加できるようにするには、リソース・カタログ内のデータ・コントロールを公開する必要があります。これには、例14-1例14-8に示すように、カタログ定義ファイルにcustomFolderエントリを追加する必要があります。

例14-1 設計時に作成されたデータ・コントロール用のカスタム・フォルダ

<customFolder id="dtDataControls"
               factoryClass="oracle.webcenter.datacomposer.internal.adapter.datacontrol.DTDataControlContextFactory">
  <attributes>
    <attribute value="Design Time Data Controls" attributeId="Title"/>
    <attribute value="Data controls created at design time" attributeId="Description"/>
    <attribute value="design time data controls,DT, data controls" attributeId="Subject"/>
    <attribute value="/adf/webcenter/folderlists_qualifier.png" attributeId="IconURI"/>
  </attributes>
</customFolder>

図14-8 設計時データ・コントロール・フォルダ

図14-8の説明が続きます
「図14-8 設計時データ・コントロール・フォルダ」の説明

customFolderをカタログ内で変換可能なリソースとして公開するには、フォルダの文字列属性をリソース文字列としてリソース・バンドルに保存する必要があります。それには、カタログ定義ファイルでresourceBundle属性を指定し、変換可能な各属性にisKey属性を指定する必要があります。すると、次の例で示すように、その属性値はリソース・バンドルに保存されます。

カタログ定義のresourceBundle属性は、次のとおりです。

<catalogDefinition id="DefaultCatalog" visible="#{true}"
                    resourceBundle="oracle.webcenter.portalapp.catalogs.DefaultCatalogBundle"
                   definitionFilter="portal.catalog.DefaultCatalogFilter"
                   xmlns="http://xmlns.oracle.com/adf/rcs/catalog">

変換可能なリソースの属性で定義されるisKey属性は、次のとおりです。

<customFolder id="dtDataControls"
               factoryClass="oracle.webcenter.datacomposer.internal.adapter.datacontrol.DTDataControlContextFactory">
  <attributes>
    <attribute value="DATACONTROL_FOLDER.TITLE" isKey="true" attributeId="Title"/>
    <attribute value="DATACONTROL_FOLDER.DESCRIPTION" attributeId="Description" isKey="true"/>
    <attribute value="DATACONTROL_FOLDER.KEYWORDS" attributeId="Subject" isKey="true"/>
    <attribute value="/adf/webcenter/folderlists_qualifier.png" isKey="false" attributeId="IconURI"/>
  </attributes>
</customFolder>

リソース・バンドルの使用の詳細は、第20.12項「実行時リソース文字列編集の構成」を参照してください。

アプリケーションに設計時データ・コントロールがあるかどうかに関係なく、実行時、リソース・カタログにはDesign Time Data Controlsというタイトルのフォルダが表示されます。

デプロイ済アプリケーションでは、実行時管理コンソールの「アセット」ページを使用して、設計時データ・コントロールを個別にカスタム・カタログに追加できます。即時利用可能なカタログは、実行時には編集できません。詳細は、『Oracle WebCenter Portalでのポータルの構築』のリソース・カタログへのリソースの追加に関する項を参照してください。

デプロイ済のアプリケーションでのカスタム・データ・コントロールの公開

アプリケーション内で作成したSQLまたはWebサービス・データ・コントロールがあり、すでにデプロイ済のアプリケーションでこれらを公開する場合は、次の手順に従う必要があります。

この構成を実行する場合、デプロイ済データ・コントロールは実行時リソース・レジストリの「デザインタイム・データ・コントロール」フォルダで使用できます。ユーザーはデータ・コントロールをレジストリから任意のカスタム・リソース・カタログに追加でき、そこからページおよびタスク・フローでそのデータ・コントロールを使用できます。

14.3.15 リソース・カタログで実行時に作成されたデータ・コントロールを公開する方法

ユーザーは、実行時管理コンソールの「アセット」ページで実行時にデータ・コントロールを作成できます。実行時に作成したデータ・コントロールをリソース・カタログで動的に表示するには、例14-2に示すように、カタログ定義ファイルにcustomFolderエントリを追加します。

例14-2 実行時に作成されたデータ・コントロール用のカスタム・フォルダ

<customFolder id="rtDataControls"
               factoryClass="oracle.webcenter.datacomposer.internal.adapter.datacontrol.DataControlContextFactory">
  <attributes>
    <attribute value="Runtime Data Controls" attributeId="Title"/>
    <attribute value="Data controls created at runtime" attributeId="Description"/>
    <attribute value="runtime data controls,RT,data controls" attributeId="Subject"/>
    <attribute value="/adf/webcenter/folderlists_qualifier.png" attributeId="IconURI"/>
  </attributes>
</customFolder>

このフォルダを変換可能なリソースとして公開するには、フォルダの文字列属性をリソース文字列としてリソース・バンドルに保存する必要があります。変換可能なリソースの作成方法の例は、第14.3.14項「リソース・カタログで設計時に作成されたデータ・コントロールを公開する方法」を参照してください。

データ・コントロールがフォルダにあるかどうかに関係なく、実行時、カタログにはRuntime Data Controlsというタイトルのフォルダが表示されます。

14.3.16 リソース・カタログのポートレット可視性の制御方法

ポートレットが保護されているかどうかに関係なく、最初の何もしていない状態で、リソース・カタログでは使用できるすべてのプロデューサのポートレットが表示されます。したがって、ユーザーはアクセス権のない保護されたポートレットでも使用できます。ユーザーがそのようなポートレットをページに追加すると、ポートレット・コンポーネントは追加されますが、コンテンツは表示されません。ユーザーがアクセスできるポートレットのみを表示して使用するように、リソース・カタログのポートレットの可視性を制御できます。PortletItemSecurityHelperインタフェースを実装して、ユーザーの権限に基づいて条件付きでリソース・カタログにポートレットを表示します。

リソース・カタログのポートレットの可視性を制御するには:

  1. PortletItemSecurityHelperインタフェースを独自のアイテム・セキュリティ・ヘルパー・クラス(CustomPortletSecurityHelper.javaなど)に実装します。

    例14-3では、PortletItemSecurityHelperインタフェース実装の例を示します。この例での前提条件は次のとおりです。

    • ポートレットを表示できるユーザーを制御するための権限が各ポートレットに対して定義されている。

    • ポートレットに対するユーザーの権限をチェックするための権限クラス(PortletVisibilityPermission)が定義されている。

    例14-3 PortletItemSecurityHelperのサンプル実装

    public class CustomPortletSecurityHelper extends PortletItemSecurityHelper
    {
        public boolean canView(String producerId, String portletId)
        {
            String permissionPath = producerId + '/' + portletId;
            PortletVisibilityPermission permission = new PortletVisibilityPermission (permissionPath, VIEW_ACTION);
            try
            {
              // throws AccessControlException if the permission is not granted
              JpsAuth.checkPermission(permission);
              canView = true;
              sLogger.logp(Level.FINE, SOURCE_CLASS, method,
                           "PortletVisibilityPermission check passed. Producer={0}, Portlet={1} Action=view",
                           new Object[]{producerId, portletId});
            }
            catch(AccessControlException ace)
            {
              canView = false;
              sLogger.logp(Level.FINE, SOURCE_CLASS, method,
                           "PortletVisibilityPermission check passed. Producer={0}, Portlet={1} Action=view",
                           new Object[]{producerId, portletId});
            }
            return canView;
        }
    }
    
  2. アプリケーションのMETA-INFディレクトリでrc_ext.xmlファイルを作成し、次のコードを追加してリソース・カタログに実装を登録します。

    <extension xmlns:="http://xmlns.oracle.com/adf/rc/extension"
               id="your.extension.id"
               name="Your Extension Name"
               version="11.1.1.4.0">
      <item-security-helper class="your.implementation.class.name"/>
    </extension>
    

実行時にユーザーがコンポーザで「コンテンツの追加」をクリックすると、リソース・カタログにはユーザーが権限を持つポートレットのみが表示されます。

14.4 デフォルト・リソース・カタログの選択

アプリケーションおよびページのレベルでデフォルト・カタログを構成できます。異なる基準に応じて異なるリソース・カタログを使用することもできます。

この項には次のサブセクションが含まれます:

14.4.1 アプリケーション用のデフォルト・リソース・カタログを選択する方法

それぞれのPortal Frameworkアプリケーションにはデフォルト・リソース・カタログが定義され、ユーザーがページ、タスク・フローまたはページ・テンプレートにコンテンツを追加する際に使用されます。

Portal Frameworkアプリケーションを最初に作成するときに、シード済リソース・カタログ(default-catalog.xml)がアプリケーションのデフォルト・リソース・カタログとして設定されます。ユーザー独自のリソース・カタログを後で作成した場合は、そのカタログをデフォルトとして設定できます。

Portal Frameworkアプリケーションのadf-config.xmlファイル内で、デフォルト・リソース・カタログを設定できます。詳細は

アプリケーション用のデフォルト・リソース・カタログを選択するには:

  1. アプリケーションのadf-config.xmlファイルを開きます。

  2. 次の例に示すように、<rcv:rcv-config>要素内のcatalog-name属性値を変更し、カスタム・カタログ名を指定します。

    <rcv:rcv-config>
      <rcv:default-catalog catalog-name="/oracle/webcenter/portalapp/catalogs/myCustomCatalog.xml"/>
    </rcv:rcv-config>
    

    catalog-name属性は、デフォルトのカタログとして使用されるカタログを特定します。

    指定するパスは、リソース・カタログのルート・ディレクトリへの相対パスです。たとえば、新しいカタログ定義をC:\JDeveloper\mywork\RCSampleApp\Portal\Public_Html\oracle\webcenter\portalapp\catalogs\myCustomCatalog.xmlとして保存した場合、catalog-name値は/oracle/webcenter/portalapp/catalogs/myCustomCatalog.xmlになります。名前はMDSパスの一部を表すため、/セパレータを使用します。


    注意:

    adf-config.xmlで作成できるリソース・カタログ固有構成の詳細は、第B.2.2項「adf-config.xml」を参照してください。

  3. adf-config.xmlファイルを保存します。

14.4.2 複数のリソース・カタログの構成方法

ほとんどのビジネスでは、ユーザーとグループが自分でページに追加できるリソースにのみアクセスできるようにすることが要求されます。このニーズに対応するために、アプリケーションでは複数のリソース・カタログを構成できます。様々なカタログを、編集されるページ、ユーザー、ユーザー・ロールなど特定の基準に基づいて様々なユーザーに公開できます。この項では、複数のリソース・カタログをアプリケーションに関連付ける方法を説明します。次のサブセクションが含まれます:

複数のカタログを使用するには、ResourceCatalogSelector APIを実装して、ユーザーと編集されるページに適したカタログを選択します。アプリケーションのadf-config.xmlファイルにcatalog-selectorエントリを追加し、ResourceCatalogSelectorクラスの名前を指定する必要があります。catalog-selectorを指定しない場合、デフォルトのカタログがすべての編集可能なページに使用され、すべてのユーザーに同一のコンテンツが表示されます。catalog-selectorを指定する場合、デフォルトのカタログは指定したセレクタがnullを返した場合にのみ使用されます。

複数のリソース・カタログを構成するには:

  1. カスタム・カタログを作成するには、第14.2項「リソース・カタログの作成」および第14.3項「リソース・カタログの編集」で概説した手順を実行します。

  2. 独自のリソース・カタログ・セレクタ・クラス(CatalogSelector.javaなど)に、oracle.adf.rc.model.config.ResourceCatalogSelectorインタフェースを実装します。

    例14-4に、カスタム・リソース・カタログ(admin-catalog.xml)を管理者権限のあるahunoldに表示し、users-catalog.xmlをユーザーskingとユーザーjdoeに表示するカタログ・セレクタ実装を示します。これらのいずれかのカタログのレンダリングで問題がある場合には、デフォルトのカタログがユーザーに表示されます。

    例14-4 複数のリソース・カタログにエントリを表示するサンプルResourceCatalogSelector

    package webcenter;
    
    
    import javax.faces.context.FacesContext;
    
    import java.util.Map;
    
    import javax.faces.component.UIViewRoot;
    import javax.faces.context.FacesContext;
    import javax.faces.context.ExternalContext;
    
    import oracle.adf.rc.model.config.ResourceCatalogSelector;
    import oracle.adf.rc.model.dc.RCVContext;
    
    import oracle.adf.rc.model.config.ResourceCatalogSelector;
    
    /**
     * CatalogSelector is a sample implementation of the ResourceCatalogSelector
     * interface.
     *
     * This implementation is based on the authenticated user
     */
    public class CatalogSelector implements ResourceCatalogSelector {
      public CatalogSelector() {
      }
    
      /**
       * Returns the Id of the catalog that must be used for the current
       * user.
       *
       * @param context a Map cont
       * @return id of the catalog to be used for the current user or
       *         null if the default catalog must be used.
       */
      public String getCatalogName(Map context) {
        // if no catalog is selected, return null & ensure that the Composer uses the
        // default catalog defined in the rcv-config
        String retval = null;
    
        // get information about the current user.
        FacesContext fctx = FacesContext.getCurrentInstance();
        ExternalContext ectx = fctx.getExternalContext();
        String user = ectx.getRemoteUser();
        
        if (user == null || user.length() == 0) {
          // user name is not available so use the default catalog
          retval = null;
    
        } 
        else if (user.equals("jdoe") || user.equals("sking")  ) {
          // return users-catalog for users jdoe and sking
          retval = "users-catalog";
          
          
        } 
        else if (user.equals("ahunold")) {
          // return admin-catalog for user ahunold
          retval = "admin-catalog";
          
        } 
        
        return retval;
    
        }
    }
    
  3. adf-config.xmlファイルに、次の例で示すように、<rcv:catalog-selector>タグを使用して、リソース・カタログの選択用に作成したクラス名を入力します。

    <rcv:rcv-config>
    <rcv:default-catalog catalog-name="/oracle/webcenter/portalapp/catalogs/default-catalog.xml"/>
    <rcv:catalog-selector class-name="webcenter.CatalogSelector"/>
    </rcv:rcv-config>
    

    catalog-nameの値はMDSパスを持つデフォルトのカタログ定義ファイルに対応します。


    注意:

    adf-config.xmlで作成できるリソース・カタログ固有構成の詳細は、第B.2.2項「adf-config.xml」を参照してください。

14.4.3 ページ用のデフォルト・リソース・カタログを選択する方法

アプリケーション・ページにコンポーザ・コンポーネントが含まれる場合には、Page Customizableコンポーネントでcatalog属性にカタログ名を指定できます。静的値またはEL値を指定できます。詳細は、第B.1.1項「Page Customizableコンポーネント」を参照してください。

14.5 リソース・カタログのアイテムのフィルタリング

カタログ・コンテンツを基本的にはすべてのユーザーに対して同一になるように配置し、コンテンツのサブセットをユーザーごとに別の表示にするには、リソース・カタログを構成し、特定の基準に基づいて選択したアイテムをフィルタ処理で除外できます。

たとえば、2人のユーザーABがあるページに対して異なる権限を持っている場合、ユーザーAにはカタログ全体を表示し、ユーザーBにはカタログのアイテムのサブセットのみを表示するようアプリケーションを構成できます。

カタログにフィルタを適用するには、oracle.adf.rc.spi.plugin.catalog.CatalogDefinitionFilterインタフェースを実装する必要があります。さらに、このフィルタをリソース・カタログに関連付ける必要があります。


ヒント:

また、リソースの「表示可能」フィールドにEL式を指定すると、目的のカタログの個別リソースを条件に基づいて非表示にすることも可能です。詳細は、第14.3.11項「リソース・カタログまたはリソースを表示または非表示にする方法」を参照してください。

リソース・カタログのアイテムをフィルタ処理するには:

  1. 「ファイル」メニューから「新規」を選択します。

  2. 「新規ギャラリ」ダイアログで、「一般」を開き、「Java」「Javaクラス」の順に選択して「OK」をクリックします。

  3. 「Javaクラスの作成」ダイアログで、クラスの名前を入力します(たとえば、CatalogFilter)。

  4. 「オプション属性」セクションの下に、oracle.adf.rc.spi.plugin.catalog.CatalogDefinitionFilterインタフェースを追加します。

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

  6. フィルタリング・アイテムにロジックを指定します。


    注意:

    フィルタ・ロジックの実装時には、通常、現在のユーザーと現在のページに関する情報が必要です。この情報は、FacesContextから取得できます。

    例14-5に、CatalogDefinitionFilterサンプル実装を示します。これは、ユーザーjdoeDiscussionsフォルダ(forumsFolder)をカスタム・カタログusers-catalog.xmlで非表示にするように構成されています。その他すべてのユーザーには、カタログ全体(ADF Faces ComponentsフォルダとDiscussionsフォルダを含む)が表示されます。

    例14-5 CatalogDefinitionFilter実装を示すサンプル

    package webcenter;
    
    import oracle.adf.rc.catalog.CatalogElement;
    import oracle.adf.rc.spi.plugin.catalog.CatalogDefinitionFilter;
    
    import java.util.Hashtable;
    
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    
    public class CatalogFilter implements CatalogDefinitionFilter {
    
      public boolean includeInCatalog(CatalogElement element, Hashtable env) {
    
        ExternalContext ectx =FacesContext.getCurrentInstance().getExternalContext();
    
        if ("jdoe".equals(ectx.getRemoteUser()) && "forumsFolder".equals(element.getId()))
          return false;
        else
          return true;
      }
    
    }
    
  7. アプリケーション・ナビゲータで、リソース・カタログを右クリックして、「開く」を選択します。

  8. リソース・カタログの「デザイン」ビューで、左側の「カタログ」パネルから、リソース・カタログのルート・ノードを選択します。

  9. 「カタログ・フィルタ」フィールドに、作成したJavaクラスの名前を入力します(たとえば、webcenter.CatalogFilter)。

    これにより、definitionFilter属性がファイルの「ソース」ビューに追加されます。

  10. カタログ定義ファイルを保存します。

14.6 リソース・カタログの削除

アプリケーション内でリソース・カタログが不要になった場合は、リソース・カタログを削除できます。

リソース・カタログを削除するには、アプリケーション・ナビゲータでカタログを右クリックして、ポップアップ・メニューから「削除」を選択します。詳細は、第9.4項「ポータル・リソースの削除」を参照してください。

14.7 タスク・フロー・パラメータおよびタスク・フローを囲んでいるShow Detail Framesの属性の定義

実行時にコンポーザでリソース・カタログからのタスク・フローをアプリケーションのページに追加すると、タスク・フローは自動的にShow Detail Frameコンポーネントで囲まれます。この囲んでいるShow Detail Frameに関連付けられたタイトル、高さ、幅などの属性を初期化するには、そのタスク・フローを含むカタログ定義ファイルでこれらの属性を定義します。タスク・フローのプロパティを囲んでいるShow Detail Frameのプロパティと区別するには、Show Detail Frameプロパティの接頭辞としてattr.を使用する必要があります。

たとえば、ユーザーが暗い背景色の設定を使用したページにタスク・フローを追加すると、そのタスク・フローは囲んでいるShow Detail Frameコンポーネントの背景色設定を引き続き使用します。これは、ユーザーが望む外観ではないことがあります。Show Detail Frameの背景色プロパティをユーザーが変更できるようにするには、リソース・カタログの背景色属性を初期化して公開する必要があります。実行時にタスク・フローのプロパティを編集する際に、ユーザーはShow Detail Frameの背景色属性を変更することもできます。

同様に、タスク・フローのパラメータを初期化することも可能です。EL式を使用して、カタログ定義ファイル内のそのようなパラメータを定義できます。実行時にタスク・フローのプロパティを編集する際に、ユーザーは公開されたパラメータの値を変更することもできます。タスク・フローのプロパティを初期化したパラメータと区別するには、そのようなパラメータの接頭辞としてparameter.を使用する必要があります。

タスク・フローのパラメータおよびShow Detail Frameプロパティを初期化するには:

  1. 目的のタスク・フローが含まれるカタログ定義ファイルを開きます。

  2. タスク・フローの<url>または<resource>要素内に、各パラメータの<attribute>エントリおよび定義するShow Detail Frame属性を追加します。

    パラメータのattributeIdには、parameter.の接頭辞を付けたパラメータ名を指定する必要があります。Show Detail Frame属性のattributeIdには、attr.の接頭辞を付けた属性名を指定する必要があります。次に例を示します。

    <url visible="#{true}" factoryClass="oracle.webcenter.portalframework.sitestructure.rc.TaskFlowResourceFactory"
         id="wallMiniView"
         url="taskflow://oracle/webcenter/peopleconnections/wall/controller/taskflows/WallViewer.xml#WallViewer">
      <attributes>
        <attribute value="WALL_MINIVIEW.TITLE" attributeId="Title" isKey="true"/>
        <attribute value="WALL_MINIVIEW.DESCRIPTION" attributeId="Description" isKey="true"/>
        <attribute value="#{securityContext.userName}" attributeId="parameter.userName"/>
        <attribute value="false" attributeId="attr.stretchContent"/>
        <attribute value="never" attributeId="attr.showResizer"/>
      </attributes>
      <contents/>
    </url>
    

    注意:

    リソース・バンドルからの値の場合にのみ、isKey属性を追加して、それをtrueに設定します。その属性を追加しない場合には、isKey値はデフォルトのfalseに設定されます。

  3. カタログ定義ファイルを保存します。

14.8 リソース・カタログに関する問題のトラブルシューティング

この項では、リソース・カタログの使用中に発生する可能性がある問題のトラブルシューティングに役立つ情報を提供します。

ロギングの構成の詳細は、「コンポーザのADFロギングの構成」を参照してください。

問題

リソース・カタログが空です。

解決方法

デフォルトのカタログは、MDSには使用できません。デプロイメント・プロファイルに、デフォルトのカタログ・ファイルをコピーする際に必要なエントリが含まれていることを確認します。また、adf-config.xmlのMDSセクションで、ネームスペース・エントリがデフォルトのカタログ・ファイルを指していることを確認します。

問題

プロジェクト・タスク・フローがリソース・カタログに表示されません。

解決方法

タスク・フローはADFライブラリ(JARファイル)としてパッケージ化され、プロジェクトに追加されている必要があります。また、タスク・フローIDが次の形式で指定されていることも確認する必要があります。

taskflow://Path_to_Task_Flow/Task_Flow_Definition_File_Name#Task_Flow_ID

例:

taskflow://oracle/webcenter/peopleconnections/wall/controller/taskflows/WallViewer.xml#WallViewer