ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド
11g リリース1 (11.1.1.6.0)
B72084-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

16 リソース・カタログの作成と管理

リソース・カタログでは、ページ、ページ・テンプレートまたはタスク・フローに含められるリソースを定義し、編成します。リソース・カタログは、JDeveloperで作成できるため、アプリケーションでデプロイされます。また、リソース・カタログを実行時リソース・マネージャで作成および編集することもできます。この章では、デフォルトのリソース・カタログについて述べ、JDeveloperでこのカタログをカスタマイズしたり、新規カタログを作成する方法について説明します。

実行時のリソース・カタログ管理の詳細は、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドのリソース・カタログの使用に関する項を参照してください。

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

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

リソース・カタログ(Oracle Business Dictionaryとも呼ばれる)を使用すると、統合された検索および参照のユーザー・インタフェースで、本来なら関連性のない1つ以上のリポジトリのコンテンツのビューが統合されます。リソースはソース・リポジトリを起点とし、図16-1に示すようにリソース・カタログを介して公開されます。

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

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

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

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


関連項目:

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

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

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


実行時リソース・カタログは、ページまたはページ・テンプレート、およびタスク・フローをデプロイ済SpacesアプリケーションおよびFrameworkアプリケーションに移入する際に使用できます。Spacesアプリケーションのリソース・カタログでは、「コンポーザ」にページとタスク・フローを移入する際に使用できるリソースを特定します。これに加え、Frameworkアプリケーションのリソース・カタログでは、リソース・マネージャでページ・テンプレートやその他のリソース・カタログを作成する際に使用できるリソースも特定します。

デフォルトのリソース・カタログの構成

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

カスタム・カタログを作成したりデフォルトのカタログを変更し、ビジネス関連のコンポーネントを含めることができます。詳細は、第16.2項「カスタム・リソース・カタログの作成」および第16.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。

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

ほとんどのビジネスでは、ユーザーとグループが自分でページに追加できるリソースにのみアクセスできるようにすることが要求されます。このニーズに対応するために、アプリケーションでは複数のリソース・カタログを構成できます。複数のリソース・カタログを構成するには、最初にすべての必要なリソースを使用してカスタム・カタログを作成する必要があります。

この項では、カスタム・リソース・カタログの作成方法を説明します。この項の内容は、次のとおりです。

16.2.1 カスタム・リソース・カタログの作成方法

「新規ギャラリ」ダイアログには、リソース・カタログを作成するためのオプションが表示されます。このオプションを使用すると、空白のカタログを作成し、それに選択したリソースを移入できます。

カタログ定義を作成する手順は次のとおりです。

  1. Oracle JDeveloperでアプリケーションを開きます。

  2. ポータル・プロジェクトを選択し、「ファイル」メニューから、「新規」を選択します。

  3. 「新規ギャラリ」ダイアログで、「Web層」を開き、「ポータル」「アプリケーション・リソース・カタログ」の順に選択して、「OK」をクリックします。

  4. 「アプリケーション・リソース・カタログ」ダイアログの「ファイル名」フィールドに、users-catalog.xmlなどのカタログ名を入力します。

  5. 「ディレクトリ」フィールドで、新しいカタログ定義XMLファイルの場所を指定します。

    カタログ定義ファイルは、リソース・カタログのルート・ディレクトリかルートのサブディレクトリに保存する必要があります。Frameworkアプリケーションのデフォルトのルート・ディレクトリはAPPLICATION_ROOT/Portal/public_html/oracle/webcenter/portalapp/catalogs、Framework以外のアプリケーションではAPPLICATION_ROOT/Portal/src/portalとなります。


    注意:

    Frameworkアプリケーションにおいて、実行時リソース・マネージャで新規カタログを公開するには、カタログをAPPLICATION_ROOT/Portal/public_html/oracle/webcenter/portalappディレクトリに作成する必要があります。


    たとえば、リソース・カタログのルートが次の場合、

    C:\JDeveloper\mywork\RCSampleApp\Portal\public_html\oracle\webcenter\portalapp\catalogs
    

    ここにカタログを作成することも、サブディレクトリを作成することも可能です。次に例を示します。

    C:\JDeveloper\mywork\RCSampleApp\Portal\public_html\oracle\webcenter\portalapp\catalogs\mycatalogs
    
  6. 「ポータル・リソースとして作成」オプションを選択して、リソース・マネージャにカタログを公開します。


    注意:

    ディレクトリをAPPLICATION_ROOT/Portal/public_html/oracle/webcenter/portalappまたはportalappのサブディレクトリに指定した場合、Frameworkアプリケーションでこのオプションが表示されます。


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

    この新規カタログ定義ファイルが概要エディタで開きます。

  8. 概要エディタの右側で、次のようにカタログ・プロパティを定義します。

    • 「カタログ・フィルタ」フィールドで、カタログに適用するフィルタ名を指定します。このフィールドはオプションです。詳細は、第16.4項「リソース・カタログのアイテムのフィルタリング」を参照してください。

    • 「参照可能」フィールドで、リソース・カタログを表示する必要があるかどうかを指定します。この属性は、EL値を取ります。デフォルト値は#{true}で、これはカタログが常にすべてのユーザーに表示されることを意味します。

    • 「カタログ属性」セクションを使用して、カタログの次の属性を定義します。

      • タイトル: カタログの表示名。

      • 説明: カタログの簡単な説明。このテキストは、リソース・マネージャのカタログ名の下に表示されます。

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

      • アイコンURI: リソース・マネージャのカタログ名の横に表示するアイコンのURIを指定します。

      • ツールチップ: カタログ名の上にマウスを置いたときに表示されるツール・チップを指定します。


      注意:

      カタログの属性は、カタログ定義XMLファイルの<schema>要素内で定義されます。即時利用可能な属性の他に、カタログでカスタム属性を公開するには、<schema>要素内でこれらを定義します。


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

これで、カタログにリソースを移入できます。様々なタイプのリソースの追加の詳細は、第16.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。


ヒント:

リソースを最初から作成して追加したくない場合には、開始点としてdefault-catalog.xmlのコンテンツを新規カタログ定義にコピーすることも可能です。


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

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

様々な方法でリソースへの接続を作成できます。この項では、「リソース・パレット」から接続を作成する方法を説明します。接続を作成するその他の方法は、第7.2項「サービスを利用するためのFrameworkアプリケーションの準備」第64.2項「WebCenter Portal: Frameworkアプリケーションへのポートレット・プロデューサの登録」を参照してください。

「リソース・パレット」から接続を作成する手順は次のとおりです。

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

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

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

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

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

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

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

16.2.3 リソース・カタログのコンテンツの管理方法

カタログ・リソースは、ビジネス要件に応じて追加または削除できます。


ヒント:

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


通常、カタログ定義ファイルはAPPLICATION_ROOT/Portal/public_html/oracle/webcenter/portalapp/catalogsディレクトリにあります。カタログ定義ファイルの「デザイン」ビュー(図16-3)には、カタログ・コンテンツの追加、変更および削除のオプションが表示されます。

図16-3 カタログ定義ファイルの「デザイン」ビュー

カタログ定義ファイルの「デザイン」ビュー
「図16-3 カタログ定義ファイルの「デザイン」ビュー」の説明

リソースをカタログに追加するには、次の2つの方法があります。

  • リソース・カタログの「概要エディタ」にある「追加」メニューのオプションを使用します。

  • リソースをIDEの別の領域からカタログ定義ファイルにドラッグ・アンド・ドロップします。

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


注意:

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



関連項目:

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


この項では、カタログ・リソースの管理方法を説明します。この章の内容は、次のとおりです。

16.2.3.1 フォルダの追加

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

フォルダを追加する手順は次のとおりです。

  1. JDeveloperでカタログ定義ファイルを開きます。

    通常、このファイルはAPPLICATION_ROOT/Portal/public_html/oracle/webcenter/portalapp/catalogsディレクトリにあります。

  2. 「カタログ」セクションの「追加」メニューから、「フォルダ」を選択します。

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

  3. Idフィールドには、デフォルトでfolderという値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。

  4. Visibleフィールドには、このフォルダを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}で、これはリソースが常にすべてのカタログで表示されることを意味します。

  5. 必要に応じて、「フォルダ属性」セクションで、「追加」メニューから次の属性を選択して定義できます(図16-4参照)。

    図16-4 フォルダの属性

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

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

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

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

    • アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。

    「追加」メニューでオプションを選択すると、「フォルダ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。

16.2.3.2 リンクの追加

次のタイプのリンクをカタログに追加できます。

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

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

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

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

リンクを追加する手順は次のとおりです。

  1. 「カタログ」セクションの「追加」メニューから、「リンク」を選択します。

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

  2. Idフィールドには、デフォルトでurlという値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。

  3. 「タイプ」リスト(図16-5)から、作成するリソースのタイプを選択します。TaskflowPortletContentおよびOtherから選択できます。

    図16-5 リンクのタイプ

    リンクのタイプ

    注意:

    • タスク・フローとポートレットをカタログに追加するには、「リソース・パレット」ペインか「アプリケーション・リソース」ペインから、カタログ定義ファイルの「デザイン」ビューの「カタログ」セクションにドラッグ・アンド・ドロップしても実行できます。関連付けられた属性は、リソースがカタログに追加されると自動的に移入されます。第16.2.3.7項「リソースのカタログへのドラッグ・アンド・ドロップ」を参照してください。

    • ADFタスク・フローをカタログに追加してあり、カタログをデプロイ済のアプリケーションにエクスポートする場合には、タスク・フローを共有ライブラリとしてデプロイ済アプリケーションにデプロイする必要があります。詳細は、第13.3項「ポータルへのカスタム・タスク・フローの追加」を参照してください。


  4. カスタム・リソースを追加する場合には、コンポーネントのファクトリ・クラスを指定します。その他のすべてのリソース・タイプには、タイプを選択した時点でFactory Class値が移入されます。

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

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

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

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

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

  5. 「URL」フィールドに、リソースにアクセスするためのURLを指定します。表16-1に、各リソース・タイプに使用するURL形式を示します。

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

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

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

    リソース・パレット

    taskflow://Path_to_Task_Flow/Task_Flow_Definition_File_Name#Task_Flow_ID
    

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

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

    taskflow://Path_to_Task_Flow/Task_Flow_Definition_File_Name#Task_Flow_ID
    

    ポートレット

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

    portlet://Producer_ID/Portlet_ID
    

    コンテンツ

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

    content://Content_Connection_ID/Document_ID
    

    「URL」フィールドの隣にある「参照」アイコンをクリックして、「リソースの選択」を開きます。ここで、アプリケーションまたはリソース・パレットから選択したタイプのリソースを追加できます。


    注意:

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


  6. Visibleフィールドで、値をtrueまたはfalseに指定するか、このリンクを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。デフォルト値は#{true}で、これはリソースが常にすべてのカタログで表示されることを意味します。

  7. 必要に応じて、「URL属性」セクションで、「追加」メニューから次の属性を選択して定義できます。

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

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

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

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

    • アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。

    「追加」メニューでオプションを選択すると、「フォルダ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。

  8. 「URLパラメータ」セクションを使用して、リソースのパラメータを定義します。これらのパラメータは、アプリケーションのその他のアーティファクトにバインドできます。「追加」アイコンをクリックして、「パラメータ」表に新しい行を作成します。

16.2.3.3 リソース・カタログの追加

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

リソース・カタログを追加する手順は次のとおりです。

  1. 「カタログ」セクションの「追加」メニューから、「カタログ参照」を選択します。

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

  2. Idフィールドには、デフォルトでcatalogという値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。

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

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

  4. Visibleフィールドには、このカタログを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}で、これはこのリソースが常にすべてのカタログで表示されることを意味します。

  5. 必要に応じて、「カタログ属性」セクションで、「追加」メニューから次の属性を選択して定義できます。

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

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

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

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

    • アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。

    「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。

16.2.3.4 コンポーネントの追加

カスタム・コンポーネントをカタログに追加できます。様々なコンポーネントを追加できます。これには、単純なADF Facesコンポーネント、複数のコンポーネントを含む複合オブジェクト、および任意のHTMLコンテンツを追加できるJSF Verbatimタグなどがあります。カタログに追加できる任意のHTMLの例としてはYouTubeビデオがあります。

カスタム・コンポーネントを追加する手順は次のとおりです。

  1. 「カタログ」セクションの「追加」メニューから、「コンポーネント」を選択します。

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

  2. Idフィールドには、デフォルトでcomponentという値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。

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

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

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

  4. Visibleフィールドには、このコンポーネントを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}で、これはこのリソースが常にすべてのカタログで表示されることを意味します。

  5. 必要に応じて、「コンポーネント属性」セクションで、「追加」メニューから次の属性を選択して定義できます。

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

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

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

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

    • アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。

    「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。

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

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


    注意:

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


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

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

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

16.2.3.5 カスタム・フォルダの追加

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

カスタム・フォルダを追加する手順は次のとおりです。

  1. 「カタログ」セクションの「追加」メニューから、「カスタム・フォルダ」を選択します。

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

  2. Idフィールドには、デフォルトでcustomFolderという値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。

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

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

  4. Visibleフィールドには、このフォルダを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}で、これはこのリソースが常にすべてのカタログで表示されることを意味します。

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

  6. 必要に応じて、「カスタム・フォルダ属性」セクションで、「追加」メニューから次の属性を選択して定義できます。

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

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

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

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

    • アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。

    「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。

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

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

16.2.3.6 カスタム・コンテンツ・プロバイダの追加

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

カスタム・コンテンツ・プロバイダを追加する手順は次のとおりです。

  1. 「カタログ」セクションの「追加」メニューから、「カスタム・コンテンツ」を選択します。

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

  2. Idフィールドには、デフォルトでcustomFolderという値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。

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

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

  4. Visibleフィールドには、このフォルダを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}で、これはこのリソースが常にすべてのカタログで表示されることを意味します。

  5. 必要に応じて、「コンポーネント属性」セクションで、「追加」メニューから次の属性を選択して定義できます。

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

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

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

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

    • アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。

    「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。

  6. 「カスタム・コンテンツ・パラメータ」セクションで、フォルダ上のパラメータを定義します。ここで定義するパラメータは、CustomContentProviderV2実装に渡され、この実装により解釈されます。「パラメータ」セクションで「追加」アイコンをクリックし、「パラメータ」表に新しい行を作成します。

16.2.3.7 リソースのカタログへのドラッグ・アンド・ドロップ

前項で説明したリソース以外に、次のリソースをカタログ定義ファイルで選択したフォルダにドラッグ・アンド・ドロップして追加できます。

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

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

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


    注意:

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

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


  • 別のカタログ定義ファイル: 「アプリケーション・ナビゲータ」から

16.2.3.8 リソースの編集

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

16.2.3.9 リソースの削除

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

図16-6 リソース・カタログの「削除」オプション

リソース・カタログの「削除」オプション

16.2.3.10 カタログ内のリソースの再配置

カタログ内のリソース編成の際、リソースを階層内の別のフォルダに移動できます。リソースを再配置する方法は次のとおりです。

  • あるフォルダから別のフォルダにドラッグ・アンド・ドロップします。

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

「親の変更」オプションを使用してリソースを再配置する手順は次のとおりです。

  1. カタログ定義ファイルの「カタログ」セクションでリソースを右クリックし、ポップアップ・メニューから「親の変更」を選択します。

  2. 「親の変更」ダイアログ(図16-7)で、リソースを含めるフォルダを選択します。

    図16-7 「親の変更」ダイアログ

    「親の変更」ダイアログ
  3. 「OK」をクリックします。


    注意:

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


16.2.4 設計時に作成されたデータ・コントロールの公開方法

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

<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>

図16-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>

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

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

デプロイ済アプリケーションでは、リソース・マネージャによって設計時データ・コントロールを個別にカスタム・カタログに追加できます。即時利用可能なカタログは、実行時には編集できません。詳細は、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドのリソースの追加に関する項を参照してください。

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

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

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

16.2.5 実行時に作成されたデータ・コントロールの公開方法

ユーザーは、実行時にリソース・マネージャにデータ・コントロールを作成できます。実行時に作成したデータ・コントロールをリソース・カタログで動的に表示するには、次の例に示すように、カタログ定義ファイルにcustomFolderエントリを追加します。

<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>

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

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

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

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

ポートレットの可視性を制御する手順は次のとおりです。

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

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

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

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

    例16-1 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>
    

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

16.2.7 アプリケーションまたはページ用のデフォルト・リソース・カタログの構成方法

アプリケーションおよびページ・レベルでのデフォルトのカタログは、次の方法で構成できます。

  • アプリケーションのadf-config.xmlファイルに登録する。これはアプリケーション全体の設定です。詳細は、「adf-config.xmlファイルでのカタログの登録」を参照してください。

  • 複数のカタログがある場合には、特定のページやロケールで表示するカタログを決定するロジックを持つCatalogSelectorを追加する。詳細は、第16.5.1項「複数のリソース・カタログの構成方法」を参照してください。

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

adf-config.xmlファイルでのカタログの登録

リソース・カタログを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ファイルを保存します。

16.2.8 リソース・カタログの定義時に必要な知識

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

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

実行時にコンポーザでリソース・カタログからのタスク・フローをアプリケーションのページに追加すると、タスク・フローは自動的に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. カタログ定義ファイルを保存します。

16.3 リソース・カタログの管理および実行時管理の有効化

Frameworkアプリケーションのリソース・マネージャを使用すると、管理者権限を持つユーザーはアプリケーション・リソースを実行時に作成および変更できるようになります。リソース・マネージャでカタログを公開することによって、管理者は実行時にそのカタログを管理できます。選択したカタログをJDeveloperからエクスポートして、管理者が実行時にそれらを変更したり削除したりできるようにすることも可能です。

この項では、各自のカタログの実行時管理を有効化するためにJDeveloperで実行できるタスクの概要を説明します。この章の内容は、次のとおりです。

16.3.1 リソース・マネージャのエントリの管理

JDeveloperでは、カタログ定義ファイルのポップアップ・メニューにあるリソース・マネージャ固有のオプションを次のように使用します。

16.3.2 デプロイしたリソース・カタログのさらなる開発の有効化

即時利用可能なリソース・カタログは、実行時に変更または削除できません。ただし、管理者権限のあるユーザーは、即時利用可能なリソース・カタログのコピーを作成してそのプロパティを編集したり、コピーを削除したりできます。


注意:

実行時にリソース・カタログを作成した場合に、設計時環境にインポートして戻さないときは、新規リソース・カタログがアプリケーションの再デプロイ時に失われることがあります。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のリソース・カスタマイズの保存に関する項を参照してください。


リソース・マネージャの「ソースの編集」オプションを使用すると、ユーザーは、コピーしたリソース・カタログまたはカスタムのリソース・カタログのコンテンツを実行時に変更できます。ただし、テキスト編集は実行時ソース・エディタよりJDeveloperで行う方が簡単なため、ユーザーはリソース・カタログをダウンロードして、それをJDeveloperで編集し、デプロイ済アプリケーションにアップロードして戻すことを選択できます。設計時、このタイプのラウンドトリップ開発には、ダウンロードしたリソース・カタログのインポート、JDeveloperでの編集、およびデプロイ済アプリケーションにアップロードして戻すためのエクスポートが含まれます。

この項では、JDeveloperでリソース・カタログをインポートおよびエクスポートする方法について説明します。カタログ・コンテンツの変更の詳細は、第16.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。

16.3.2.1 リソース・カタログのエクスポート

デプロイ済のアプリケーションでリソース・カタログを公開するには、JDeveloperからリソース・カタログをエクスポートし、実行時リソース・マネージャを使用してアプリケーションにアップロードする必要があります。カタログをJDeveloperにエクスポートすると、カタログ定義ファイルとgeneric-site-resources.xmlファイルが含まれたEARファイルが作成されます。リソースがリソース・マネージャの適切なカテゴリの下に表示されるように、generic-site-resources.xmlファイルにはリソースのタイプ(ここではリソース・カタログ)を識別できるメタデータが含まれます。

一般的な情報は、第17.4.3項「ポータル・リソースをJDeveloperからエクスポートする方法」を参照してください。

16.3.2.2 リソース・カタログのインポート

実行時にリソース・カタログを公開すると、権限を持ったユーザーはビジネス要件に合うようにコンポーネントを追加または削除できます。ただし、カタログ・フィルタの適用、デプロイ済アプリケーションで使用できないカスタム・リソースの追加など、さらに複雑なタスクを実行するには、実行時カタログをダウンロードし、JDeveloperにインポートして編集し、JDeveloperからエクスポートして実行時アプリケーションにアップロードして戻す必要があります。


注意:

デプロイ済アプリケーションで使用できない、JDeveloperで作成されたタスク・フローなどカスタム・リソースを公開するには、カタログのエクスポートとともに、リソースを共有ライブラリとしてデプロイする必要もあります。


カタログをデプロイ済アプリケーションからダウンロードすると、カタログ定義XMLファイルとgeneric-site-resources.xmlファイルが含まれたEARファイルが作成されます。generic-site-resources.xmlファイルには、リソース・カタログ固有のメタデータが含まれます。これにより、リソースのタイプ(ここではリソース・カタログ)を識別できます。JDeveloperでリソース・カタログを編集するには、まずEARファイルをインポートする必要があります。インポートの際には、カタログ定義ファイルはsiteResourcesフォルダに抽出されます。

リソースをWebCenter Portal: Spacesからダウンロードした場合、APPLICATION_ROOT/oracle/webcenter/siteresources/scopedMD/guidに抽出されます。ここで、guidはリソースのダウンロード元のスペースのGUIDです。そうでない場合には、インポートしたリソースはAPPLICATION_ROOT/oracle/webcenter/portalappに作成されます。設計時の他のカタログと同じように、カタログ定義ファイルを開いて編集できます。編集後に、更新済のカタログをランタイム・アプリケーションにエクスポートする必要があります。

一般的な情報は、第17.4.2項「ポータル・リソースをJDeveloperにインポートする方法」を参照してください。

デプロイ済アプリケーションからのカタログ・ダウンロードの詳細は、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドのリソース・カタログのアップロードとダウンロードに関する項を参照してください。

16.3.3 Spacesリソース・カタログでの作業

WebCenter Portal: Spacesには、すぐに使用できる複数のデフォルトのリソース・カタログが用意されています。このデフォルトのカタログが適切でない場合、WebCenter Portal: Spaces内に独自のカタログを作成できます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイドの「ポータルまたはコミュニティを構成するリソースの使用」の章を参照してください。WebCenter Portal: Spacesの編集機能以上のリソース・カタログを作成する場合は、JDeveloperでカタログを作成してから、これをWebCenter Portal: Spacesにアップロードできます。カタログを最初から開発する必要はありません。既存のカタログをWebCenter Portal: SpacesからエクスポートしてJDeveloperで編集するか、いずれかの即時利用可能なカタログを開始点として使用することもできます。

Oracle WebCenter Portalには特別なJDeveloperワークスペース(DesignWebCenterSpaces.jws)が用意されており、リソース・カタログなどのリソースを開発してWebCenter Portal: Spacesにアップロードする際に利用できます。第56章「JDeveloperを使用したSpacesアプリケーションの拡張」には、サンプルのワークスペースの場所、およびWebCenterSpacesResourcesプロジェクトを使用してカスタム・カタログやWebCenter Portal: Spacesのその他のタイプのリソースを作成する方法が記載されています。詳細は、第56章「JDeveloperを使用したSpacesアプリケーションの拡張」を参照してください。

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

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

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

カタログ内のリソースをカタログ・レベルまたは個々のリソース・レベルでフィルタ処理できます。この項では、両方の手順を説明します。この章の内容は、次のとおりです。

16.4.1 リソースレベルのフィルタリング

リソースを条件付きで表示するには、リソース上でVisible属性にEL値を指定します。Visible属性の編集の詳細は、第16.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。

16.4.2 カタログレベルのフィルタリング

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

CatalogDefinitionFilterを実装する手順は次のとおりです。

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

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

  3. 「Javaクラスの作成」ダイアログで、クラスの名前(CatalogFilterなど)を指定します。

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

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

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


    注意:

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


    例16-2に、サンプルCatalogDefinitionFilter実装を示します。これは、ユーザーjdoeに対してDiscussionsフォルダ(forumsFolder)をカスタム・カタログ(users-catalog.xml)から非表示にするよう構成されています。詳細は、第16.2項「カスタム・リソース・カタログの作成」を参照してください。他のすべてのユーザーには、カタログ全体(ADF Faces ComponentsフォルダとDiscussionsフォルダを含む)が表示されます。

    例16-2 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. 「カタログ」セクションでルート・ノードを選択し、「カタログ・フィルタ」フィールドを、作成したJavaクラス名(webcenter.CatalogFilterなど)に設定します。

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

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

16.5 複数のリソース・カタログの構成

様々なカタログを、編集されるページ、ユーザー、ユーザー・ロールなど特定の基準に基づいて様々なユーザーに公開できます。この項では、複数のリソース・カタログをアプリケーションに関連付ける方法を説明します。この項の内容は、次のとおりです。

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

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

複数のリソース・カタログを実装する手順は次のとおりです。

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

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

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

    例16-3 複数のリソース・カタログにエントリを表示するサンプル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」を参照してください。


16.5.2 実行時の処理

ユーザーには、指定した基準に基づいて異なるカタログが表示されます。

例16-3ResourceCatalogSelector実装に基づいて、図16-9および図16-10に、ユーザーskingまたはjdoe、および管理者ahunoldに対してそれぞれ表示される2つのカタログを示します。

図16-9 skingとjdoeに表示されるカタログ

図16-9の説明が続きます
「図16-9 skingとjdoeに表示されるカタログ」の説明

図16-10 ahunoldに表示されるリソース・カタログ

図16-10の説明が続きます
「図16-10 ahunoldに表示されるリソース・カタログ」の説明

16.6 リソース・カタログでの問題のトラブルシューティング

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

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

問題

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

解決方法

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

問題

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

解決方法

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

taskflow://Path_to_Task_Flow/Task_Flow_Definition_File_Name#Task_Flow_ID
Ex. taskflow://oracle/webcenter/peopleconnections/wall/controller/taskflows/WallViewer.xml#WallViewer