Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.7.0) B72084-02 |
|
前 |
次 |
リソース・カタログでは、ページ、ページ・テンプレートまたはタスク・フローに含められるリソースを定義し、編成します。リソース・カタログは、JDeveloperで作成できるため、アプリケーションでデプロイされます。また、リソース・カタログを実行時リソース・マネージャで作成および編集することもできます。この章では、デフォルトのリソース・カタログについて述べ、JDeveloperでこのカタログをカスタマイズしたり、新規カタログを作成する方法について説明します。
実行時のリソース・カタログ管理の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』のリソース・カタログの使用に関する項を参照してください。
この章には次の項が含まれます:
リソース・カタログ(Oracle Business Dictionaryとも呼ばれる)を使用すると、統合された検索および参照のユーザー・インタフェースで、本来なら関連性のない1つ以上のリポジトリのコンテンツのビューが統合されます。リソースはソース・リポジトリで生成され、図15-1.に示すようにリソース・カタログから公開されます。
JDeveloperを使用すると、2タイプのリソース・カタログ(設計時リソース・カタログと実行時リソース・カタログ)が表示されます。
設計時リソース・カタログはリソース・パレットで使用でき、開発者向けのお気に入りリストのようなものです。WebCenter Portal - サービス・カタログは、WebCenter Portal拡張機能バンドルをインストールするとそのまま使用可能な設計時のカタログです。このカタログに含まれるタスク・フローとデータ・コントロールをFrameworkアプリケーションに追加できます。WebCenter Portal - サービス・カタログの他に、接続を定義してカタログを作成し、それらの接続で公開されるリソースを編成できます。そのようなリソースは、開発中のどのアプリケーションでも再利用できます。
関連項目:
|
実行時リソース・カタログは、ページまたはページ・テンプレート、およびタスク・フローをデプロイ済SpacesアプリケーションおよびFrameworkアプリケーションに移入する際に使用できます。Spacesアプリケーションのリソース・カタログでは、「コンポーザ」にページとタスク・フローを移入する際に使用できるリソースを特定します。これに加え、Frameworkアプリケーションのリソース・カタログでは、リソース・マネージャでページ・テンプレートやその他のリソース・カタログを作成する際に使用できるリソースも特定します。
デフォルトのリソース・カタログの構成
Page Customizable
コンポーネントをページに追加すると、カタログ定義ファイル(default-catalog.xml
)を持つデフォルトのリソース・カタログがアプリケーションで構成されます。作成したアプリケーションのタイプに応じて、カタログ定義ファイルは次のいずれかのフォルダで作成されます。
Frameworkアプリケーションでは、default-catalog.xml
ファイルはAPPLICATION_ROOT
/Portal/public_html/oracle/webcenter/p
ortalapp/catalogs
ディレクトリに格納されています。この場合のリソース・カタログには、図15-2のようなフォルダが含まれています。
ポータル以外のWebCenterアプリケーションでは、default-catalog.xml
ファイルはAPPLICATION_ROOT
/Portal/src/p
ortal
ディレクトリに格納されています。この場合、リソース・カタログにはADF Faces Componentsフォルダがあり、そこにはユーザーがページを追加できるADF Facesコンポーネントが含まれています。
アプリケーションにポートレット・プロデューサを登録している場合には、リソース・カタログの「ポートレット」フォルダにそのプロデューサのポートレットが表示されます。プロデューサを登録していない場合、「ポートレット」フォルダは非表示になります。
カスタム・カタログを作成したりデフォルトのカタログを変更し、ビジネス関連のコンポーネントを含めることができます。詳細は、第15.2項「カスタム・リソース・カタログの作成」および第15.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。
ほとんどのビジネスでは、ユーザーとグループが自分でページに追加できるリソースにのみアクセスできるようにすることが要求されます。このニーズに対応するために、アプリケーションでは複数のリソース・カタログを構成できます。複数のリソース・カタログを構成するには、最初にすべての必要なリソースを使用してカスタム・カタログを作成する必要があります。
この項では、カスタム・リソース・カタログの作成方法を説明します。次のサブセクションが含まれます:
「新規ギャラリ」ダイアログには、リソース・カタログを作成するためのオプションが表示されます。このオプションを使用すると、空白のカタログを作成し、それに選択したリソースを移入できます。
カタログ定義を作成するには:
Oracle JDeveloperでアプリケーションを開きます。
ポータル・プロジェクトを選択し、「ファイル」メニューから、「新規」を選択します。
「新規ギャラリ」ダイアログで、「Web層」を開き、「ポータル」、「アプリケーション・リソース・カタログ」の順に選択して、「OK」をクリックします。
「アプリケーション・リソース・カタログ」ダイアログの「ファイル名」フィールドに、users-catalog.xml
などのカタログ名を入力します。
「ディレクトリ」フィールドで、新しいカタログ定義XMLファイルの場所を指定します。
カタログ定義ファイルは、リソース・カタログのルート・ディレクトリかルートのサブディレクトリに保存する必要があります。Frameworkアプリケーションのデフォルトのルート・ディレクトリはAPPLICATION_ROOT
/Portal/public_html/oracle/webcenter/p
ortalapp/catalogs
、Framework以外のアプリケーションではAPPLICATION_ROOT
/Portal/src/p
ortal
となります。
注意: Frameworkアプリケーションにおいて、実行時リソース・マネージャで新規カタログを公開するには、カタログを |
たとえば、リソース・カタログのルートが次の場合:
C:\JDeveloper\mywork\RCSampleApp\Portal\public_html\oracle\webcenter\portalapp\catalogs
ここにカタログを作成することも、サブディレクトリを作成することも可能です。例:
C:\JDeveloper\mywork\RCSampleApp\Portal\public_html\oracle\webcenter\portalapp\catalogs\mycatalogs
「ポータル・リソースとして作成」オプションを選択して、リソース・マネージャにカタログを公開します。
注意: ディレクトリを |
「OK」をクリックします。
この新規カタログ定義ファイルが概要エディタで開きます。
概要エディタの右側で、次のようにカタログ・プロパティを定義します。
「カタログ・フィルタ」フィールドで、カタログに適用するフィルタ名を指定します。このフィールドはオプションです。詳細は、第15.4項「リソース・カタログのアイテムのフィルタリング」を参照してください。
「参照可能」フィールドで、リソース・カタログを表示する必要があるかどうかを指定します。この属性は、EL値を取ります。デフォルト値は#{true}
で、これはカタログが常にすべてのユーザーに表示されることを意味します。
「カタログ属性」セクションを使用して、カタログの次の属性を定義します。
タイトル: カタログの表示名。
説明: カタログの簡単な説明。このテキストは、リソース・マネージャのカタログ名の下に表示されます。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
アイコンURI: リソース・マネージャのカタログ名の横に表示するアイコンのURIを指定します。
ツールチップ: カタログ名の上にマウスを置いたときに表示されるツール・チップを指定します。
注意: カタログの属性は、カタログ定義XMLファイルの |
カタログ定義ファイルを保存します。
これで、カタログにリソースを移入できます。様々なタイプのリソースの追加の詳細は、第15.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。
ヒント: リソースを最初から作成して追加したくない場合には、開始点として |
WebCenter Portalサービス、ポートレットなど多くのリソースへは、アプリケーションのconnections.xml
ファイルで定義された接続を経由してアクセスします。そのため、リソース・カタログへそのようなリソースを追加するには、事前に接続を作成する必要があります。
様々な方法でリソースへの接続を作成できます。この項では、「リソース・パレット」から接続を作成する方法を説明します。追加の接続の作成方法の詳細は、第7.2項「サービスを利用するためのFrameworkアプリケーションの準備」および第62章「ポートレットの消費」を参照してください。
「リソース・パレット」から接続を作成するには:
「リソース・パレット」で、左上隅の「新規」アイコンをクリックします。
「接続の作成」および作成する接続のタイプを選択します。
接続タイプのウィザードが表示されます。
接続に関する必要な情報を入力してウィザードを続行します。
「終了」をクリックすると、「リソース・パレット」の「接続」の下に接続が表示されます。
「リソース・パレット」で接続を右クリックし、ポップアップ・メニューから「アプリケーションに追加」を選択します。
または、アプリケーション・ナビゲータの「アプリケーション・リソース」パネルに、「リソース・パレット」から接続をドラッグ・アンド・ドロップすることもできます。
カタログ・リソースは、ビジネス要件に応じて追加または削除できます。
ヒント: リソース・カタログを最初から作成する場合には、デフォルトのカタログ定義ファイルを参照して、カタログ内にリソースを含める方法についてヒントを得ることができます。 |
通常、カタログ定義ファイルはAPPLICATION_ROOT
/Portal/public_html/oracle/webcenter/p
ortalapp/catalogs
ディレクトリにあります。カタログ定義ファイルの「デザイン」ビュー(図15-3)には、カタログ・コンテンツの追加、変更および削除のオプションが表示されます。
リソースをカタログに追加するには、次の2つの方法があります。
リソース・カタログの「概要エディタ」にある「追加」メニューのオプションを使用します。
リソースをIDEの別の領域からカタログ定義ファイルにドラッグ・アンド・ドロップします。
XMLエディタの左側には「カタログ」セクションがあり、カタログのコンポーネントの階層構造が表示されます。そのページの右側には、選択済リソースの属性とパラメータを定義するフィールドが表示されます。
注意: コンポーザのスタンドアロン・バージョン(WebCenter Portal: Frameworkを使用しないコンポーザ)を使用する場合、リソースをカタログに追加するには、 |
この項では、カタログ・リソースの管理方法を説明します。次の項が含まれます:
フォルダを作成し、類似リソースをグループ化できます。その結果、カタログの編成が改善されます。
フォルダを追加するには:
JDeveloperでカタログ定義ファイルを開きます。
通常、このファイルはAPPLICATION_ROOT
/Portal/public_html/oracle/webcenter/p
ortalapp/catalogs
ディレクトリにあります。
「カタログ」セクションの「追加」メニューから、「フォルダ」を選択します。
folder
要素がカタログに追加されます。ページの右側には、新しいフォルダの属性とパラメータを定義するフィールドが表示されます。
Id
フィールドには、デフォルトでfolder
という値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。
Visible
フィールドには、このフォルダを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}
で、これはリソースが常にすべてのカタログで表示されることを意味します。
必要に応じて、「フォルダ属性」セクションで、「追加」メニューから次の属性を選択して定義できます(図15-4参照)。
タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。
説明: このリソースの説明。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。
アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。
「追加」メニューでオプションを選択すると、「フォルダ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。
次のタイプのリンクをカタログに追加できます。
タスク・フロー: WebCenter Portalサービス・タスク・フロー(リソース・パレット内)、またはOracle JDeveloperで作成したカスタム・タスク・フロー(アプリケーション・ナビゲータ内)へのリンク。
ポートレット: 登録済のポートレット・プロデューサへのリンク。ポートレット・プロデューサの登録およびページへのポートレット追加の詳細は、第62章「ポートレットの消費」を参照してください。
コンテンツ: 既存のコンテンツ・リポジトリ接続からファイルまたはディレクトリへのリンク。
その他: カスタム・コンポーネント(そのコンポーネントのXMLコードを提供することで作成します)へのリンク。
リンクを追加するには:
「カタログ」セクションの「追加」メニューから、「リンク」を選択します。
url
要素がカタログに追加されます。ページの右側には、新しいリンクの属性とパラメータを定義するフィールドが表示されます。
Id
フィールドには、デフォルトでurl
という値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。
「タイプ」リスト(図15-5)から、作成するリソースのタイプを選択します。Taskflow
、Portlet
、Content
およびOther
から選択できます。
注意:
|
カスタム・リソースを追加する場合には、コンポーネントのファクトリ・クラスを指定します。その他のすべてのリソース・タイプには、タイプを選択した時点でFactory Class
値が移入されます。
使用可能なリソース・タイプのファクトリ・クラスは、次のとおりです。
タスク・フロー: oracle.webcenter.portalframework.sitestructure.rc.TaskFlowResourceFactory
ポートレット: oracle.webcenter.portalframework.sitestructure.rc.PortletResourceFactory
コンテンツ: oracle.webcenter.content.model.rc.ContentUrlResourceFactory
詳細は、第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」を参照してください。
「URL」フィールドに、リソースにアクセスするためのURLを指定します。表15-1に、各リソース・タイプに使用されるURLの形式を示します。
表15-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を手動で入力した場合に、そのリソースの接続をリソース・パレット内のみで使用できるようにするには、まずそのアプリケーションへの接続を追加します。 |
Visible
フィールドで、値をtrueまたはfalseに指定するか、このリンクを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。デフォルト値は#{true}
で、これはリソースが常にすべてのカタログで表示されることを意味します。
必要に応じて、「URL属性」セクションで、「追加」メニューから次の属性を選択して定義できます。
タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。
説明: このリソースの説明。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。
アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。
「追加」メニューでオプションを選択すると、「フォルダ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。
「URLパラメータ」セクションを使用して、リソースのパラメータを定義します。これらのパラメータは、アプリケーションのその他のアーティファクトにバインドできます。「追加」アイコンをクリックして、「パラメータ」表に新しい行を作成します。
選択したカタログ内に別のリソース・カタログを含めることができます。別のカタログを追加する際には、このカタログへのポインタのみがカタログ定義ファイルに追加されます。実際のカタログ・コンテンツは、実行時にのみ挿入されます。
リソース・カタログを追加するには:
「カタログ」セクションの「追加」メニューから、「カタログ参照」を選択します。
catalog
というタイトルの新しいノードがカタログに追加されます。ページの右側には、新しいフォルダの属性とパラメータを定義するフィールドが表示されます。
Id
フィールドには、デフォルトでcatalog
という値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。
「パス」フィールドで、MDSパスをカタログ定義ファイルに指定します(たとえば、\oracle\webcenter\portalapp\catalogs\custom-catalog.xml
)。
「参照」アイコンを使用し、アプリケーション・フォルダを参照してカタログ定義ファイルを選択します。
Visible
フィールドには、このカタログを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}
で、これはこのリソースが常にすべてのカタログで表示されることを意味します。
必要に応じて、「カタログ属性」セクションで、「追加」メニューから次の属性を選択して定義できます。
タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。
説明: このリソースの説明。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。
アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。
「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。
カタログにカスタム・コンポーネントを追加できます。単一のADF Facesコンポーネント、2つ以上のコンポーネントを含む複合オブジェクト、内部に任意のHTMLコンテンツを追加できるJSF Verbatimタグなど、様々なコンポーネントを追加できます。カタログに追加可能な任意のHTMLの例は、YouTubeビデオです。
カスタム・コンポーネントを追加するには:
「カタログ」セクションの「追加」メニューから、「コンポーネント」を選択します。
component
要素がカタログに追加されます。ページの右側には、コンポーネントの属性とパラメータを定義するフィールドが表示されます。
Id
フィールドには、デフォルトでcomponent
という値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。
「コンポーネント・ファクトリ」フィールドに、oracle.adf.rc.component.XmlComponentFactory
など、oracle.adf.rc.component.ComponentFactory
インタフェースを実装し、一連のパラメータに基づいてコンポーネントのインスタンスを作成するJavaクラスの名前を指定します。
名前を入力すると、クラスパスから有効なファクトリ・クラスがフィールドに自動的に入力されます。「参照」アイコンを使用しても、クラスを選択できます。
詳細は、第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」を参照してください。
Visible
フィールドには、このコンポーネントを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}
で、これはこのリソースが常にすべてのカタログで表示されることを意味します。
必要に応じて、「コンポーネント属性」セクションで、「追加」メニューから次の属性を選択して定義できます。
タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。
説明: このリソースの説明。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。
アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。
「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。
「コンポーネント・パラメータ」セクションを使用して、ファクトリ・クラスを実装する際に定義されたパラメータを追加します。
たとえば、XMLコンポーネントを追加する場合、「パラメータ」セクションで「追加」アイコンをクリックし、「xml」を選択します。表示される新しい行で、「値」フィールドにコンポーネントのXMLコードを指定します。
注意: xmlオプションは、 |
コンポーネントを正しく機能させるには、次の例のように、カスタム・コンポーネントIDが#
になるように指定し、ネームスペースを指定する必要があります。
<cust:panelCustomizable id="#" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"/>
#
という値により、コンポーネントに対し、動的に一意のIDが生成されます。
フォルダが動的に移入されるように、リソース・カタログ・アダプタを使用してフォルダを追加できます。カスタム・フォルダは、カタログへのリソースを含むフォルダとして追加されません。カスタム・フォルダにはリソースを動的に表示する、ファクトリ・クラスへの参照のみが含まれます。
カスタム・フォルダを追加するには:
「カタログ」セクションの「追加」メニューから、「カスタム・フォルダ」を選択します。
customFolder
要素がカタログに追加されます。ページの右側には、フォルダの属性とパラメータを定義するフィールドが表示されます。
Id
フィールドには、デフォルトでcustomFolder
という値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。
「初期コンテキスト・ファクトリ」フィールドで、javax.naming.InitialContextFactory
インタフェースを実装して一連のパラメータに基づいてフォルダを生成するJavaクラスの名前を指定します。
詳細は、第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」を参照してください。
Visible
フィールドには、このフォルダを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}
で、これはこのリソースが常にすべてのカタログで表示されることを意味します。
「フォルダの内容の挿入」を選択し、カスタム・フォルダの内容をフォルダの下に表示するのではなく、カタログに直接表示します。
必要に応じて、「カスタム・フォルダ属性」セクションで、「追加」メニューから次の属性を選択して定義できます。
タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。
説明: このリソースの説明。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。
アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。
「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。
「カスタム・フォルダ・パラメータ」セクションに、ファクトリ・クラスを実装する際に定義したパラメータを追加します。これらのパラメータは、アプリケーションのその他のアーティファクトにバインドできます。「パラメータ」セクションで「追加」アイコンをクリックし、「パラメータ」表に新しい行を作成します。
ファクトリ・クラスがパラメータを公開している場合、「追加」アイコンのドロップダウン・メニューが表示される場合があります。たとえば、コンテンツ・プレゼンタ固有のファクトリ・クラスでは、templateView
パラメータが表示されます。
カスタム・コンテンツ・プロバイダは、実行時に0以上のカタログ・エントリを動的に生成します。カタログ・エントリには、フォルダ、リンク、カスタム・フォルダ、コンポーネントなどが含まれます。カスタム・フォルダを追加すると、フォルダがカタログ内に作成され、空の場合でも実行時に表示されます。ただし、カスタム・コンテンツ要素を追加した場合には、フォルダはカタログ内に作成されますが、コンポーネントが含まれている場合にのみ実行時に表示されます。この違いを除いては、カスタム・コンテンツ・プロバイダはカスタム・フォルダと同じです。
カスタム・コンテンツ・プロバイダを追加するには:
「カタログ」セクションの「追加」メニューから、「カスタム・コンテンツ」を選択します。
customContent
要素がカタログに追加されます。ページの右側には、フォルダの属性とパラメータを定義するフィールドが表示されます。
Id
フィールドには、デフォルトでcustomFolder
という値が入っています。別の値を指定できますが、IDはカタログ定義ファイル内で一意である必要があります。
「コンテンツ・プロバイダ」フィールドで、oracle.adf.rc.spi.plugin.catalog.CustomContentProviderV2
インタフェースを実装するクラスの完全修飾名を指定します。
「参照」アイコンを使用して、このインタフェースを実装するクラスのリストを表示できます。第C.4項「カタログへの動的リソースの追加に使用可能なファクトリ・クラス」も参照してください。
Visible
フィールドには、このフォルダを条件付きで特定のユーザーまたはグループに表示するためのEL値を指定できます。この属性は、EL値を取ります。デフォルト値は#{true}
で、これはこのリソースが常にすべてのカタログで表示されることを意味します。
必要に応じて、「コンポーネント属性」セクションで、「追加」メニューから次の属性を選択して定義できます。
タイトル: カタログ内のリソースに使用されるラベル。この属性はデフォルトで定義されています。この値は必要に応じて変更できます。
説明: このリソースの説明。
件名: リソース・カタログのキーワード検索を容易にするキーワード。
ツールチップ: カタログのこのリソース名の上にマウスを置くと表示されるツールチップ。
アイコンURI: カタログ内のリソース名の隣に表示されるアイコン。
「追加」メニューでオプションを選択すると、「カタログ属性」表に新しい行が作成されます。この行を使用して、新しい属性の名前、タイプおよび値を指定できます。
「カスタム・コンテンツ・パラメータ」セクションで、フォルダ上のパラメータを定義します。ここで定義するパラメータは、CustomContentProviderV2
実装に渡され、この実装により解釈されます。「パラメータ」セクションで「追加」アイコンをクリックし、「パラメータ」表に新しい行を作成します。
前項で説明したリソース以外に、次のリソースをカタログ定義ファイルで選択したフォルダにドラッグ・アンド・ドロップして追加できます。
ポートレット: 「アプリケーション・リソース」ペインまたは「リソース・パレット」から
Oracle WebCenter ContentのOracle WebCenter Portalコンテンツ・サービスからのコンテンツ: 「アプリケーション・リソース」ペインまたは「リソース・パレット」から
タスク・フロー: 「アプリケーション・リソース」ペインまたは「リソース・パレット」から
注意: ADFタスク・フローをカタログに追加し、カタログをデプロイ済のアプリケーションにエクスポートする場合には、このタスク・フローを共有ライブラリとしてデプロイ済アプリケーションにデプロイする必要があります。 詳細は、第12.3項「ポータルへのカスタム・タスク・フローの追加」を参照してください。 |
別のカタログ定義ファイル: 「アプリケーション・ナビゲータ」から
リソースを編集するには、カタログ定義ファイルの「カタログ」セクションでリソースを選択します。リソースの属性とパラメータは、ページの右側に表示されます。これらの属性とパラメータの値を編集して、カタログ定義ファイルを保存できます。リソースの属性とパラメータの詳細は、カタログへのそのリソースの追加に関する項を参照してください。
リソースを削除するには、カタログ定義ファイルの「カタログ」セクションでリソースを選択し、図15-6に示す「選択したノードを削除します」アイコンをクリックします。
カタログ内のリソース編成の際、リソースを階層内の別のフォルダに移動できます。リソースを再配置する方法は次のとおりです。
あるフォルダから別のフォルダにドラッグ・アンド・ドロップします。
「親の変更」ポップアップ・メニューのオプションを使用して、リソースを別のフォルダに移動します。
「親の変更」オプションを使用してリソースを再配置するには:
カタログ定義ファイルの「カタログ」セクションでリソースを右クリックし、ポップアップ・メニューから「親の変更」を選択します。
「親の変更」ダイアログ(図15-7)で、リソースを含めるフォルダを選択します。
「OK」をクリックします。
注意: 「OK」ボタンが有効になるのは、リソースに有効な場所を選択した場合のみです。 |
Oracle WebCenter Portal: Frameworkは、アプリケーション・ページおよびタスク・フローに追加できる大量のサービス・データ・コントロールを公開します。さらに、JDeveloperでSQLまたはWebサービス・データ・コントロールが作成されていることもあります。ユーザーがこれらのデータ・コントロールをページおよびタスク・フローに追加できるようにするには、リソース・カタログ内のデータ・コントロールを公開する必要があります。これには、次の例と図15-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>
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>
リソース・バンドルの使用の詳細は、第21.12項「実行時リソース文字列編集の構成」を参照してください。
アプリケーションに設計時データ・コントロールがあるかどうかに関係なく、実行時、カタログにはDesign Time Data Controls
というタイトルのフォルダが表示されます。
デプロイ済アプリケーションでは、リソース・マネージャによって設計時データ・コントロールを個別にカスタム・カタログに追加できます。即時利用可能なカタログは、実行時には編集できません。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』のリソースの追加に関する項を参照してください。
デプロイ済のアプリケーションでのカスタム・データ・コントロールの公開
アプリケーションにSQLまたはWebサービス・データ・コントロールを作成してあり、デプロイ済アプリケーションにそれらを公開する場合、次の手順を実行する必要があります:
アプリケーションをADF共有ライブラリにパッケージ化します。
アプリケーションをWebLogic Serverインスタンスにデプロイします。詳細は、第55.2.3項「Spaces共有ライブラリ・リストの再ビルド」を参照してください。
この構成を実行する場合、デプロイ済データ・コントロールは実行時リソース・レジストリの「デザインタイム・データ・コントロール」フォルダで使用できます。ユーザーはデータ・コントロールをレジストリから任意のカスタム・リソース・カタログに追加でき、そこからページおよびタスク・フローでそのデータ・コントロールを使用できます。
ユーザーは、実行時にリソース・マネージャにデータ・コントロールを作成できます。実行時に作成したデータ・コントロールをリソース・カタログで動的に表示するには、次の例に示すように、カタログ定義ファイルに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>
このフォルダを変換可能なリソースとして公開するには、フォルダの文字列属性をリソース文字列としてリソース・バンドルに保存する必要があります。変換可能なリソースの作成方法の例は、第15.2.4項「設計時に作成されたデータ・コントロールの公開方法」を参照してください。
データ・コントロールがフォルダにあるかどうかに関係なく、実行時、カタログにはRuntime Data Controls
というタイトルのフォルダが表示されます。
ポートレットが保護されているかどうかに関係なく、最初の何もしていない状態で、リソース・カタログでは使用できるすべてのプロデューサのポートレットが表示されます。したがって、ユーザーはアクセス権のない保護されたポートレットでも使用できます。ユーザーがそのようなポートレットをページに追加すると、ポートレット・コンポーネントは追加されますが、コンテンツは表示されません。ユーザーがアクセスできるポートレットのみを表示して使用するように、リソース・カタログのポートレットの可視性を制御できます。PortletItemSecurityHelper
インタフェースを実装して、ユーザーの権限に基づいて条件付きでリソース・カタログにポートレットを表示します。
ポートレットの可視性を制御するには:
PortletItemSecurityHelper
インタフェースを独自のアイテム・セキュリティ・ヘルパー・クラス(CustomPortletSecurityHelper.java
など)に実装します。
例15-1は、PortletItemSecurityHelper
インタフェースの実装例を示しています。この例での前提条件は次のとおりです。
ポートレットを表示できるユーザーを制御するための権限が各ポートレットに対して定義されている。
ポートレットに対するユーザーの権限をチェックするための権限クラス(PortletVisibilityPermission
)が定義されている。
例15-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; } }
アプリケーションの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>
実行時にユーザーがコンポーザで「コンテンツの追加」をクリックすると、リソース・カタログにはユーザーが権限を持つポートレットのみが表示されます。
アプリケーションおよびページ・レベルでのデフォルトのカタログは、次の方法で構成できます。
アプリケーションのadf-config.xml
ファイルに登録します。これはアプリケーション全体の設定です。詳細は、「adf-config.xmlファイルでのカタログの登録」を参照してください。
複数のカタログがある場合には、特定のページやロケールで表示するカタログを決定するロジックを持つCatalogSelector
を追加します。詳細は、第15.5.1項「複数のリソース・カタログの構成方法」を参照してください。
アプリケーション・ページにコンポーザ・コンポーネントが含まれる場合には、Page Customizable
コンポーネントでCatalog
属性にカタログ名を指定します。静的値またはEL値を指定できます。詳細は、第B.1.1項「Page Customizable」を参照してください。
adf-config.xmlファイルでのカタログの登録
リソース・カタログをadf-config.xml
ファイルに登録して、アプリケーション用デフォルト・カタログとして使用されるようにするには:
アプリケーションのadf-config.xml
ファイルを開きます。
次の例に示すように、<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
ファイルを保存します。
適切にリソース・カタログを実装するには、定義の元となるXMLスキーマだけでなく、アプリケーションが定義を検索する場所も知っておく必要があります。詳細は付録B「コンポーザ・コンポーネントのプロパティおよびファイル」を参照してください。
実行時にコンポーザでリソース・カタログからのタスク・フローをアプリケーションのページに追加すると、タスク・フローは自動的に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
プロパティを初期化するには:
目的のタスク・フローが含まれるカタログ定義ファイルを開きます。
タスク・フローの<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>
注意: リソース・バンドルからの値の場合にのみ、 |
カタログ定義ファイルを保存します。
Frameworkアプリケーションのリソース・マネージャを使用すると、管理者権限を持つユーザーはアプリケーション・リソースを実行時に作成および変更できるようになります。リソース・マネージャでカタログを公開することによって、管理者は実行時にそのカタログを管理できます。選択したカタログをJDeveloperからエクスポートして、管理者が実行時にそれらを変更したり削除したりできるようにすることも可能です
この項では、各自のカタログの実行時管理を有効化するためにJDeveloperで実行できるタスクの概要を説明します。次の項が含まれます:
JDeveloperでは、カタログ定義ファイルのポップアップ・メニューにあるリソース・マネージャ固有のオプションを次のように使用します。
ポータル・リソースの作成: リソース・マネージャのカタログ用エントリを作成します。これで、ページ、テンプレートおよびタスク・フローの作成時に使用するカタログを選択できます。
エントリ作成の際に特定の属性を設定する必要があります。必要に応じて、リソース・マネージャで選択したカタログを訂正および削除できるユーザーを指定できます。詳細は、第16.2.1項「リソースをリソース・マネージャに追加する方法」を参照してください。
ポータル・リソースの更新: リソース・マネージャのエントリ作成時に定義した属性を編集します。詳細は、第16.2.3項「ポータル・リソースのプロパティを更新する方法」を参照してください。
ポータル・リソースの削除: このカタログのエントリをリソース・マネージャ・レジストリから削除します。詳細は、第16.2.4項「リソースをリソース・マネージャから削除する方法」を参照してください。
即時利用可能なリソース・カタログは、実行時に変更または削除できません。ただし、管理者権限のあるユーザーは、即時利用可能なリソース・カタログのコピーを作成してそのプロパティを編集したり、コピーを削除したりできます。
注意: 実行時にリソース・カタログを作成した場合に、設計時環境にインポートして戻さないときは、新規リソース・カタログがアプリケーションの再デプロイ時に失われることがあります。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のリソース・カスタマイズの保存に関する項を参照してください。 |
リソース・マネージャの「ソースの編集」オプションを使用すると、ユーザーは、コピーしたリソース・カタログまたはカスタムのリソース・カタログのコンテンツを実行時に変更できます。ただし、テキスト編集は実行時ソース・エディタよりJDeveloperで行う方が簡単なため、ユーザーはリソース・カタログをダウンロードして、それをJDeveloperで編集し、デプロイ済アプリケーションにアップロードして戻すことを選択できます。設計時、このタイプのラウンドトリップ開発には、ダウンロードしたリソース・カタログのインポート、JDeveloperでの編集、およびデプロイ済アプリケーションにアップロードして戻すためのエクスポートが含まれます。
この項では、JDeveloperでリソース・カタログをインポートおよびエクスポートする方法について説明します。カタログ・コンテンツの変更の詳細は、第15.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。
デプロイ済のアプリケーションでリソース・カタログを公開するには、JDeveloperからリソース・カタログをエクスポートし、実行時リソース・マネージャを使用してアプリケーションにアップロードする必要があります。カタログをJDeveloperにエクスポートすると、カタログ定義ファイルとgeneric-site-resources.xml
ファイルが含まれたEARファイルが作成されます。リソースがリソース・マネージャの適切なカテゴリの下に表示されるように、generic-site-resources.xml
ファイルにはリソースのタイプ(ここではリソース・カタログ)を識別できるメタデータが含まれます。
一般的な情報は、第16.4.3項「ポータル・リソースをJDeveloperからエクスポートする方法」を参照してください。
実行時にリソース・カタログを公開すると、権限を持ったユーザーはビジネス要件に合うようにコンポーネントを追加または削除できます。ただし、カタログ・フィルタの適用、デプロイ済アプリケーションで使用できないカスタム・リソースの追加など、さらに複雑なタスクを実行するには、実行時カタログをダウンロードし、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
で作成されます。カタログ定義ファイルを開き、それを設計時に他のカタログのように編集できます。更新済のカタログはランタイム・アプリケーションにエクスポートされる必要があります。
一般的な情報は、第16.4.2項「ポータル・リソースをJDeveloperにインポートする方法」を参照してください。
デプロイ済アプリケーションからのカタログ・ダウンロードの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: 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にアップロードする際に利用できます。第55章「JDeveloperを使用したSpacesアプリケーションの拡張」には、サンプルのワークスペースの場所、およびWebCenterSpacesResources
プロジェクトを使用してカスタム・カタログやWebCenter Portal: Spacesのその他のタイプのリソースを作成する方法が記載されています。詳細は、第55章「JDeveloperを使用したSpacesアプリケーションの拡張」を参照してください。
カタログ・コンテンツを基本的にはすべてのユーザーに対して同一になるように配置し、コンテンツのサブセットをユーザーごとに別の表示にするには、リソース・カタログを構成し、特定の基準に基づいて選択したアイテムをフィルタ処理で除外できます。
たとえば、2人のユーザーA
とB
があるページに対して異なる権限を持っている場合、ユーザーA
にはカタログ全体を表示し、ユーザーB
にはカタログのアイテムのサブセットのみを表示するようアプリケーションを構成できます。
カタログ内のリソースをカタログ・レベルまたは個々のリソース・レベルでフィルタ処理できます。この項では、両方の手順を説明します。次の項が含まれます:
リソースを条件付きで表示するには、リソース上でVisible
属性にEL値を指定します。Visible属性の編集の詳細は、第15.2.3項「リソース・カタログのコンテンツの管理方法」を参照してください。
カタログにフィルタを適用するには、oracle.adf.rc.spi.plugin.catalog.CatalogDefinitionFilter
インタフェースを実装する必要があります。さらに、このフィルタをリソース・カタログに関連付ける必要があります。
CatalogDefinitionFilter
を実装するには:
「ファイル」メニューから「新規」を選択します。
「新規ギャラリ」ダイアログで、「一般」を開き、「Java」、「Javaクラス」の順に選択して「OK」をクリックします。
「Javaクラスの作成」ダイアログで、クラスの名前(CatalogFilter
など)を指定します。
「オプション属性」セクションの下に、oracle.adf.rc.spi.plugin.catalog.CatalogDefinitionFilter
インタフェースを追加します。
「OK」をクリックします。
フィルタリング・アイテムにロジックを指定します。
注意: フィルタ・ロジックの実装時には、通常、現在のユーザーと現在のページに関する情報が必要です。この情報は、 |
例15-2に、CatalogDefinitionFilter
サンプル実装を示します。第15.2項「カスタム・リソース・カタログの作成」で説明されるカスタム・カタログusers-catalog.xml
からユーザーjdoe
のDiscussions
フォルダ(forumsFolder
)が非表示になるように構成されます。ADF Faces Components
とDiscussions
フォルダとともに、カタログ全体が他のすべてのユーザーに表示されます。
例15-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; } }
カタログ定義ファイルを開きます。
「カタログ」セクションでルート・ノードを選択し、「カタログ・フィルタ」フィールドを、作成したJavaクラス名(webcenter.CatalogFilter
など)に設定します。
これにより、definitionFilter
属性がファイルの「ソース」ビューに追加されます。
カタログ定義ファイルを保存します。
様々なカタログを、編集されるページ、ユーザー、ユーザー・ロールなど特定の基準に基づいて様々なユーザーに公開できます。この項では、複数のリソース・カタログをアプリケーションに関連付ける方法を説明します。次のサブセクションが含まれます:
複数のカタログを使用するには、ResourceCatalogSelector
APIを実装して、ユーザーと編集されるページに適したカタログを選択します。アプリケーションのadf-config.xml
ファイルにcatalog-selector
エントリを追加し、ResourceCatalogSelector
クラスの名前を指定する必要があります。catalog-selector
を指定しない場合、デフォルトのカタログがすべての編集可能なページに使用され、すべてのユーザーに同一のコンテンツが表示されます。catalog-selector
を指定する場合、デフォルトのカタログは指定したセレクタがnullを返した場合にのみ使用されます。
複数のリソース・カタログを実装するには:
カスタム・カタログを作成するには、第15.2項「カスタム・リソース・カタログの作成」で概説した手順を実行します。
独自のリソース・カタログ・セレクタ・クラス(CatalogSelector.java
など)に、oracle.adf.rc.model.config.ResourceCatalogSelector
インタフェースを実装します。
例15-3に、カスタム・リソース・カタログ(admin-catalog.xml
)を管理者権限を持つahunold
に表示し、users-catalog.xml
をユーザーsking
とユーザーjdoe
に表示するカタログ・セレクタ実装を示します。これらのいずれかのカタログのレンダリングで問題がある場合には、デフォルトのカタログがユーザーに表示されます。
例15-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; } }
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ロギングの構成」を参照してください。
問題
リソース・カタログが空です。
解決方法
デフォルトのカタログは、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