Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.7.0) B72084-02 |
|
前 |
次 |
この章では、Oracle WebCenter Portalのサービスを利用するようにアプリケーションを準備する方法について説明します。
この章には次の項が含まれます:
Oracle WebCenter Portalサービスは、ソーシャル・コンピューティング・サービス、個人の生産性サービス、オンラインでの認識およびコミュニケーション、コンテンツ統合、Web分析などのエンタープライズ2.0機能で、既存のポータルおよびWebサイトを充実したものにします。
関連項目:
|
この項では、サービスで使用できる主要なテクノロジについて概説します。これは、実装するサービスの決定や、ユーザー・インタフェースのカスタマイズに最適な方法を決定する際に役立ちます。
この項には次のサブセクションが含まれます:
WebCenter Portalのサービスには、同格のサービスとみなされるものがあります。これらのサービスは、1つのアプリケーション全体で他のサービスと相互作用します。
表7-1は、Oracle WebCenter Portal: Frameworkのサービス統合のリストです。
表7-1 WebCenter Portalのサービス統合
WebCenter Portalサービス | RSS | 検索 | タグ | リンク | コメントとお気に入り登録 | アクティビティ・ストリーム | アクティビティ・グラフ | 通知 | 分析 |
---|---|---|---|---|---|---|---|---|---|
アクティビティ・グラフ |
X |
n/a |
X |
||||||
お知らせ |
X |
X |
X |
X |
X |
||||
ブログ |
X |
X |
X |
X |
X |
X |
X |
X |
|
ディスカッション |
X |
X |
X |
X |
X(トピックへの返信) |
X |
X(返信) |
X |
|
ドキュメント(Wikiを含む) |
X |
X |
X |
X |
X |
X |
X |
X |
|
イベント |
X(一部) |
X |
X |
X |
|||||
インスタント・メッセージおよびプレゼンス(IMP) |
X |
||||||||
リスト |
X |
X |
X |
X |
X |
X |
|||
メール |
X |
||||||||
ノート |
X |
X |
|||||||
ピープル・コネクション |
X(一部) |
X(一部) |
X(アクティビティ・ストリーム、メッセージ・ボード) |
X(メッセージ・ボード、プロファイル、フィードバック) |
X(メッセージ・ボード) |
X |
X |
||
投票 |
|||||||||
最近のアクティビティ |
X |
||||||||
検索 |
n/a |
X |
X(一部) |
X |
|||||
タグ |
X |
n/a |
X |
注意: スペースのイベントとお気に入りは、WebCenter Portal: Spacesアプリケーションでのみ使用できます。 この表に示した検索サービスは、WebCenter Portal検索アダプタを使用して、利用可能な各サービスを検索します。ただし、大規模な実装で最高のパフォーマンスを得るには、Oracle SES検索を使用するように構成する必要があります。Oracle SESは、次のリソースについてアプリケーションを検索します。
詳細は、第44章「検索サービスの統合」を参照してください。 |
この項では、WebCenter Portalサービスで使用できるAPIについて説明します。
複数のカスタマイズ・オプションが選択できる場合は、次の考慮事項に注意してください。
WebCenter Portal: Spacesにアクセスするカスタム・クライアント(Spacesと相互作用するiPhoneアプリケーションなど)を作成する場合は、REST APIを使用してください。
REST APIでは、ユーザー・インタフェースのカスタマイズや、カスタム・コンポーネントの開発を最も短時間で簡単に行うことができます。Spacesにアクセスするカスタム・ユーザー・インタフェースを作成する場合は、データ・コントロールまたはネイティブのAPIを使用することを検討してください。
カスタム・ポータルまたは複合Frameworkアプリケーションを作成する場合は、データ・コントロールまたはネイティブのAPIを使用してください。
Java、JDeveloper、およびADFについて習熟している場合は、データ・コントロールまたはネイティブのAPIを使用してください。その他の言語(特にJavaScript)を使用する場合は、REST APIを使用してください。
表7-2は、サービスと利用可能なAPIのリストです。サード・パーティのバックエンドを使用するサービス用に、利用可能なバックエンドのAPIも含まれています。
表7-2 サービスのサポート対象テクノロジ
WebCenter Portalサービス | データ・コントロール | Java API | REST API | バックエンドAPI |
---|---|---|---|---|
アクティビティ・グラフ |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
第45.3.2項「アクティビティ・グラフ・サービスREST APIの使用」 |
|
分析 |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
||
お知らせ |
Oracle WebCenter Portalのディスカッション・サーバーを使用するWebサービス(WebCenter Portalはカスタム認証で設定されるため、構成が必要です) Oracle Fusion Middlewareドキュメント・ライブラリのJiveフォーラムのドキュメントを参照してください(WebCenter Portal製品の部分にあります)。 |
|||
コメントとお気に入り登録 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|
||
ディスカッション |
第33.3.8項「ディスカッション・サービスREST APIの使用」 |
Oracle WebCenter Portalのディスカッション・サーバーを使用するWebサービス(WebCenter Portalはカスタム認証で設定されるため、構成が必要です) Oracle Fusion Middlewareドキュメント・ライブラリのJiveフォーラムのドキュメントを参照してください(WebCenter Portal製品の部分にあります)。 |
||
ドキュメント(Wikiとブログを含む) |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
Oracle Fusion Middleware Content Management REST Service開発者ガイド |
Oracle Fusion Middleware Remote Intradoc Client (RIDC) Java APIリファレンスを参照してください。 Oracle Fusion Middleware Oracle Universal Content Managementサービス・リファレンス・ガイド |
イベント |
|
Microsoft ExchangeによるWebサービス |
||
一般設定 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|||
リンク |
|
|||
リスト |
|
|||
通知 |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
||
ページレット・プロデューサ |
第65.2.2.2項「RESTを使用したページレットへのアクセス」 |
|||
ピープル・コネクション |
第40.1項「ピープル・コネクション・データ・コントロールの使用方法」 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
第41章「ピープル・コネクション・サービスREST API」(プロファイルおよびアクティブ・ストリームについて) |
|
パーソナライズ |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス(カスタムのプロバイダおよびロケータの開発について) |
|||
投票 |
第36.3.4項「投票サービス・データ・コントロールの使用方法」 |
|||
リソース・アクション・ハンドラ・フレームワーク |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|||
検索 |
第44.3.8項「検索サービス・データ・コントロールの使用」 注意: 検索データ・コントロールは、Oracle SES検索でのみサポートされます。 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
注意: 検索REST APIは、Oracle SES検索でのみサポートされます。 |
Oracle Secure Enterprise SearchによるWebサービスおよびJava API |
タグ |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|
関連項目: 式言語APIについては、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスを参照してください |
一部のサービスでは、カスタマイズされたユーザー・インタフェースをFrameworkアプリケーションまたはタスク・フローで構築するためのデータ・コントロールが用意されています。このタスク・フローをADFライブラリにデプロイすると、タスク・フローのポータブル消費が可能になります。たとえば、Spacesアプリケーションのリソース・カタログ(コンポーザ)にタスク・フローを追加してサイト・テンプレートを構築できます。
事前にサービスを統合する必要なしに、サービスのデータ・コントロールをユーザー・インタフェースの編集に使用できます。アプリケーションは、それぞれのサービスに含まれるいずれかのデータ・コントロールまたはタスク・フローが使用されたときに、そのサービスに応じて構成されます。
注意: Oracle ADFアーキテクチャには、ユーザー・インタフェースでデータの構造を認識できるデータ・コントロールが用意されています。メタデータにより、データのコレクション、プロパティ、メソッドおよびタイプが表されます。属性、コレクションおよびメソッドをドラッグしてページにドロップすると、JDeveloperは自動的にページから関連サービスへのバインディングを作成します。 データ・コントロールの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。 |
組込みデータ・コントロールを使用するには:
JDeveloperで、サービスに必要な接続を使用してWebCenter Portal Frameworkアプリケーションを作成します。
「リソース・パレット」で「カタログ」、「WebCenter Portal - サービス・カタログ」、「データ・コントロール」の順に開きます。
データ・コントロールを右クリックして、「プロジェクトに追加」を選択します。
データ・コントロールからメソッドとプロパティをドラッグして、ADF JSFページにドロップします。
注意: データ・コントロールをアプリケーションに追加する方法は、他にも2つあります。
|
この項では、WebCenter PortalのWebサービスを使用するようにアプリケーションを準備する場合に、実行する必要のある手順について説明します。次のサブセクションが含まれます:
どのアプリケーションでも、サービスを組み込むように構成できます。JDeveloperでアプリケーションを作成するときには、アプリケーションのベースにするテンプレートを選択できます。必須ではありませんが、WebCenter PortalのFrameworkアプリケーション・テンプレートを使用すると、該当するすべての接続ウィザードとタグ・ライブラリが、「新規ギャラリ」と「コンポーネント・パレット」にすぐに表示され、使用できるようになります。サービス・タスク・フローまたはコンポーネントを利用すると、必要なライブラリが自動的にプロジェクトに追加されます。
アプリケーションは、利用するサービスに応じた特定の前提条件を満たす必要があります。たとえば、サービスでユーザーのアイデンティティを認識する必要がある場合、アプリケーションでユーザー認証に一定レベルのセキュリティを提供する必要があります。
この項には次のサブセクションが含まれます:
一部のサービスでは、ユーザーのアイデンティティを認識する必要があります(たとえば、検索サービスでは、検索の保存のためにユーザーのアイデンティティが必要になります)。これらのサービスでは、少なくともユーザーを認証するようにアプリケーションを構成して、ユーザーのカスタマイズとプリファレンス用に、ユーザーが個別のアイデンティティを持つようにする必要があります。
WebCenter PortalのFrameworkアプリケーション・テンプレートを使用してアプリケーションを作成すると、デフォルトでADFセキュリティが構成されます。
関連項目:
|
ADFセキュリティをアプリケーション用に構成すると、jazn-data.xml
ファイルを開いて、サンプル・ユーザーの権限を各タスク・フロー用に変更できます。ADFセキュリティ・ポリシー・エディタを開くには、「アプリケーション・リソース」パネルでファイルを見つけてその名前をダブルクリックするか、「アプリケーション」→「セキュア」→「リソース権限」を選択します(図7-2)。「リソース・タイプ」ドロップダウンは、表に示される権限のセットを制御します。リストから特定の権限タイプを選択することで、そのタイプの権限のみが表示されます。
JDeveloperでサービスの接続を設定しているときに、その接続をSSLで保護されたエンドポイントにする(信頼できる認証局の有効な証明書を使用する)場合は、それに応じて環境を準備する必要があります。
注意: このプリファレンス設定の変更は、デフォルト・サーバーとして統合WLSを使用して作成した接続にのみ必要になります。管理対象サーバーにデプロイする場合、この設定の変更は必要ありません。 |
SSLで保護されたサービス接続用にプリファレンスを設定するには:
多くのサービスは、関連情報が格納されているデータベース・スキーマへの接続が必要になります。たとえば、リンク・サービスの場合は、リレーションシップのマッピング情報(どのオブジェクトが、どのオブジェクトにリンクされているかなど)がデータベースに格納されています。
表7-3は、データベース接続が必要になるサービスのリストです。
表7-3 関連するデータ・ソース
サービス | データ・ソース |
---|---|
アクティビティ・グラフ |
アクティビティ |
アクティビティ・ストリーム |
WebCenter Portal |
分析 |
アクティビティ |
ブログ |
WebCenter Portal |
コメント |
WebCenter Portal |
コメントおよびアクティビティ・ストリームを組み込むドキュメント(Wikiとブログを含む) |
WebCenter Portal |
リンク |
WebCenter Portal |
リスト |
WebCenter Portal |
Oracle Portalアダプタ |
PORTAL (Oracle Portalスキーマの名前) |
ピープル・コネクション |
WebCenter Portal |
投票 |
WebCenter Portal |
タグ |
WebCenter Portal |
関連項目:
|
データベース接続を作成するには:
アプリケーション・ナビゲータで、「アプリケーション・リソース」パネルを開きます。
「接続」を右クリックし、「データベース」をクリックします。
データベース接続に関する次の情報を入力します。
接続名: webcenter/CustomPortal
またはactivities/CustomPortal
注意: Framework管理対象サーバーへのデプロイメントが簡単になるように、次の名前の使用をお薦めします。
|
接続タイプ: Oracle (JDBC)
ユーザー名: username
パスワード: password
ホスト: WebCenter Portalスキーマをインストールするホスト(例: localhost
)
JDBCポート: ポート(例: 1521
)
SID: 同じJDBCを使用するデータベースのシステム識別子(例: ORCL
)
注意: 「パスワードの保存」チェック・ボックスが選択されていないときに、JDeveloperから管理対象サーバーまたは統合WebLogic Serverにデプロイする場合は、デプロイメント後に手動でデータ・ソースを作成する必要があります。 Oracle WebLogic ServerのJDBCデータ・ソースを作成する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。 |
「OK」をクリックします。
「データソースへの関連付け」ダイアログで、適切なスキーマを選択します。
接続の名前をwebcenter/CustomPortal
にしている場合は、この接続をWebCenter Portalスキーマに関連付けるように選択します。
接続の名前をactivities/CustomPortal
にしている場合は、この接続をアクティビティ・スキーマに関連付けるように選択します。
「OK」をクリックします(図7-6)。
データ・ソースの関連付けは、ワークスペース内の各プロジェクトに個別に適用されます。ワークスペース内に複数のWebCenter Portalプロジェクトが存在する場合、ダイアログにドロップダウン・リストが表示され、ユーザーは構成するプロジェクトを選択できます。
注意: Oracle JDeveloperで設計時にバックエンド・サーバーへの接続を設定できますが、デプロイ後の環境でEnterprise Manager Fusion Middleware Controlを使用して、後から接続を追加、削除または変更できます。 詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』を参照してください。 |
独自の認証を処理するアプリケーションとサービスが相互作用するときには、そのアプリケーションと外部アプリケーション定義を関連付けて、資格証明プロビジョニングに備えることができます。
次のサービスは、サービスへの接続と認証の定義に外部アプリケーションを使用できます。
ドキュメント
イベント
インスタント・メッセージおよびプレゼンス
メール
RSSビューア(セキュリティ保護されたRSSフィードを使用する場合)
関連項目:
|
この項では、リソース・アクション処理フレームワークの概要と、リソース・ビューアの登録方法について説明します。次のサブセクションが含まれます:
カスタム・コンポーネントは、即時利用可能なサービスと同様にリソースを管理して所有します。そのため、これらのコンポーネントはそのリソースが他のサービス(検索、タグ、リンク、最近のアクティビティなどのサービス)を起動するサービスにアクセスできるようにするための宣言が必要になります。WebCenter Portalは、表示、検索、およびタグ付けの対象になるリソースを公開するカスタム・コンポーネントとサービスのために、リソース・アクション処理フレームワークを提供しています。
たとえば、リソース・アクション処理フレームワークを使用すると、検索サービスが、指定のサービスのリソースをレンダリングするメカニズムを検索し、これに従うようになります。リソース・アクション処理フレームワークのもう1つの機能は、リソースの認証の宣言とアクセス時の認証の実施を可能にすることです。
次のリソースは、リソース・アクション処理フレームワークを使用して、リソース・ビューアを起動します。
検索
タグ
リンク
Wikiとブログ
最近のアクティビティ
ピープル・コネクション
アクティビティ・ストリーム(それ自体の起動)
接続(それ自体の起動)
フィードバック(それ自体の起動)
プロファイル(タグ、タグ付けしたアイテム、およびそれ自体の起動)
メッセージ・ボード(それ自体の起動)
WebCenter Portalを指す外部リンク(メール、通知、ドキュメント、RSSフィード、REST XMLなどから)
次のリソースは、リソース・アクション処理フレームワークで起動可能なタスク・フローを所有します。
お知らせ
ディスカッション
ドキュメント(Wikiやブログを含む)
イベント
リスト
メール
ノート
ページ
ピープル・コネクション
アクティビティ・ストリーム - メイン・ビュー
コネクション
フィードバック
プロファイル
プロファイル・ギャラリ
メッセージ・ボード
Spaces (/webcenter/spaces/Space1Name
にマップするURLリライタ)
タグ - タグ・センター
関連項目: リソース・アクション処理およびリライタ・インタフェースについては、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスを参照してください。 |
検索やタグを使用してカスタム・リソースをレンダリングできるようにする場合や、そのリソースを相互にリンクできるようにする場合には、リソース・ビューアを登録する必要があります。
service-definition.xml
ファイルで、リソース・ビューアを定義すると、任意のサービスでそのサービスのリソースをレンダリングできるようになります。このビューアは、リソースIDに作用するタスク・フローまたはURLリライタになります。
たとえば、検索サービスを通じてディスカッション・フォーラムのメッセージが見つかったとします。結果のリンクをクリックすると、ディスカッション・サービスに宣言されたリソース・ビューアが(ディスカッション・サービスのservice-definition.xml
を検索することで)起動されます。デフォルトでは、ターゲットはダイアログ内でレンダリングされます。
リソース・ミニ・ビューを宣言すると、このサービスに表示されるインライン・ポップアップに使用されるリソース・ビューアを指定できます。ミニ・ビューが指定されていない場合は、インライン・ポップアップにリソース・ビューが使用されます。
注意: サンプルの |
カスタム・リソース・ビューアを登録するには:
アプリケーション・ナビゲータで、プロジェクトの「ページ・フロー」ノードを右クリックして、ポップアップ・メニューから「新規」を選択します。
「カテゴリ」で、「JSF」→「ADFタスク・フロー」を選択して、「OK」をクリックします。
「タスク・フローの作成」ダイアログで、「ファイル名」をorder-viewer.xml
などに変更します。タスク・フローIDが自動的にorder-viewer
に更新されます(図7-8)。
「OK」をクリックします。
order-viewer.xml
ファイルが..\public_html\WEB-INF
内に作成されていることを確認します。
コンポーネント・パレットで「ADFタスク・フロー」が選択されていることを確認し、「表示」をタスク・フローにドラッグしてページ・フラグメントを作成します。
ページ・フラグメントの名前をorder-viewer
に変更し、キャンバスの空いている領域をクリックして変更を受け入れます。
ページ・フラグメントにJSFFファイルを定義します。
ページ・フラグメントをダブルクリックします。
「新規JSFページ・フラグメントの作成」ダイアログで、「OK」をクリックします。
エディタの「ソース」ビューに移り、jsp:root
要素内にaf:outputText
タグを貼り付けます。
例7-1では、非常にシンプルなリソース・ビューアが提供されます。より複雑なビューアを作成することもできます。
タスク・フローにresourceId
入力パラメータを追加して、その値を#{pageFlowScope.resourceId}
に設定します。
タスク・フローの定義後、service-definition.xml
ファイル内に、このタスク・フローを登録する必要があります。アプリケーション・ナビゲータで「アプリケーション・リソース」、「ディスクリプタ」、「ADF META-INF」と開きます。
「service-definition.xml」
をダブルクリックし、エディタで開きます。
このファイルで、コメント・アウトされたサービス定義を見つけます。この周りの<!--
and -->
タグを削除し、コメント解除します。
id
属性をサービス識別子に設定します。
たとえば、「タグ付け」ボタンを定義するときには、サービス識別子にmycompany.myproduct.myapp.mycomponent
を使用します。
<resource-view>
要素内のtaskFlowId
を/WEB-INF/order-viewer.xml#resource-viewer
に設定します。
この識別子は、タスク・フローのパスとファイル名を「タスク・フローの作成」ダイアログで宣言したタスク・フローIDと連結したものです。その他のタグは、省略してもかまいません。
<resource-view>
宣言には、リソース認可プロバイダのクラス指定があります。これにより、リソース・ビューを指定して、どのタグ付きオブジェクトをユーザーに表示(および、検索可能に)するかを決定するための様々な方法が提供されます。
例7-2 resource-view宣言内のタスク・フローIDの指定
<resource-view taskFlowId="/somepath/somefile.xml#someId" authorizerClass="some.service.id.Authorizer1"/>
検索サービス、タグ・サービスおよびディスカッション・サービスは、このタイプの宣言を使用します。表示ID (JSPXページ)を保持するのではなく、サービスはリソースをレンダリングするタスク・フローを提供します。
属性taskFlowId
は、レンダラがタスク・フローであることを意味します。
タスク・フローは、リソースIDで指定されたリソースのレンダリングに使用されます。
このタスク・フローは、resourceId
入力パラメータを受け入れて、リソースのレンダリングに使用します。
例7-3 URLリライタ・クラス名の指定(1)
<resource-view urlRewriterClass="oracle.webcenter.framework.resource.IdentityResourceUrlRewriter" authorizerClass="some.service.id.Authorizer5"/>
または
例7-4 URLリライタ・クラス名の指定(2)
<resource-view urlRewriterClass="oracle.webcenter.framework.resource.MessageFormatResourceUrlRewriter" authorizerClass="some.service.id.Authorizer4"> <parameters> <!-- This starts from the context root which would be /webcenter --> <parameter name="message" value="/content/conn/UCM/path/{0}"/> </parameters> </resource-view>
または
例7-5 URLリライタ・クラス名の指定(3)
<resource-view urlRewriterClass="oracle.webcenter.framework.resource.MyResourceUrlRewriter" authorizerClass="some.service.id.Authorizer6"> <parameters> <parameter name="myParam" value="myValue"/> </parameters> </resource-view>
一部のサービスは、URLリライタを使用してリソースIDをURLとして扱い、適切な形式にURLを書き換えます。URLリライタは、リソースIDをgoLink
で起動できるURLに変換します。次の2つのResourceUrlRewriters
が提供されます。
oracle.webcenter.framework.resource.IdentityResourceUrlRewriter
は、Oracle SESを使用する検索用です。これは、resourceId
値をURLとしてそのまま受け入れます。
oracle.webcenter.framework.resource.MessageFormatResourceUrlRewriter
は、ドキュメント用です。これは、(service-definition
内の) message
パラメータを受け入れます。message
パラメータには、resourceId
の値に置き換えられる{0}が含まれています。
urlExternal
パラメータは、すべてのURLリライタに適用されます。このパラメータの値により、リソース・アクション・ハンドラのリンクを利用するJSPXで新しいウィンドウを開くかどうかが決まります。
ページやWikiなどのリソースは、リソース・ビューアを持つことができませんが、それらのリソースIDはページ表示IDとしてダビングできます(例7-6)。
サービスは、例7-7に示すようなものになります。
例7-7 リソース・ビューのサンプル・サービス定義
<service-definitions> <service-definition id="mycompany.myproduct.myapp.mycomponent" version="11.1.1.0.0"> <resource-view taskFlowId="/somepath/somefile.xml#someId" authorizerClass="mycompany.myproduct.myapp.mycomponent.ResourceAuthorizer"/> <resource-type>Custom Object</resource-type> <object-types> <object-type name="customcomponent123" displayName="Display Name" description="Description"/> </object-types> <resource-bundle-class>mycompany.myproduct.myapp.mycomponent.resource.ComponentMessageBundle </resource-bundle-class> <name>My Custom Component</name> <description>My Custom Component's Description</description> <icon>/mycompany/myproduct/myapp/mycomponent/component.png</icon> </service-definition> ... </service-definitions>
service-definition.xml
ファイルを保存します。
リソース認可プロバイダ・インタフェースは、Javaのインタフェースとクラスを使用して、サービスのリソースに関する有用な情報を返します。たとえば、oracle.webcenter.framework.resource.ResourceAuthorizer
インタフェースには、一意のリソースIDについてのステータス(使用可能または使用不可)を返すメソッドが含まれています(例7-8)。
例7-8 一意のリソースIDに対するステータスを返すメソッド
/* * Check if the passed in resourceIds are viewable by the current user. * * @param resourceId - the resourceId to check * @return - a <code>ResourceInfo</code> with a ResourceStatus * of RESOURCE_IS_AVAILABLE if the passed in resourceId * is viewable by current user, otherwise returns * <code>RESOURCE_IS_NOT_AVAILABLE</code>. */ ResourceInfo getResourceInfo(String resourceId, Scope scope); /* * Check if the passed in resourceIds are viewable by the current user. * * @param resourceIds - the resourceIds to check * @return - a List of <code>ResourceInfo</code> with a ResourceStatus * of RESOURCE_IS_AVAILABLE if the passed in resourceId * is viewable by current user, otherwise returns * <code>RESOURCE_IS_NOT_AVAILABLE</code>. */ List<ResourceInfo> getResourceInfo(List<String> resourceIds, Scope scope);
oracle.webcenter.framework.resource.ResourceInfo
インタフェースは、次のメソッドを公開しています。
public ResourceStatus getResourceStatus();
oracle.webcenter.framework.resource.ResourceInfo
列挙型には、次の有効な値が含まれています。
例7-9 有効なResourceStatus値
/** * Used to describe a related object's status. * * Certain operations may be performed by relationship service depending * on what object status it receives from the service. For example, * if it receives {@link #RESOURCE_DOES_NOT_EXIST} it may remove all * relationships associated with this object from the relationship schema * so future calls are not wasted on this object. */ public enum ResourceStatus { /** * Used to describe a resource that is available. */ RESOURCE_IS_AVAILABLE, /** * Used to describe a resource that does not exist. */ RESOURCE_DOES_NOT_EXIST, /** * Used when the user does not have view access on the resource. */ USER_DOES_NOT_HAVE_ACCESS; }
oracle.webcenter.framework.resource.ResourceUrlRewriter
インタフェースのメソッドのみが、一意の識別子が渡された後でURLを書き出します。このURLは、絶対URLになることも、所有アプリケーションのFacesコンテキスト・ルートの相対URLになることもあります。
独自のリソース・アクション・ビュー・ハンドラ(たとえば、現在のページの新しいタブにリソースを表示する)を作成して、ADFインライン・ポップアップを使用するか、DefaultResourceActionHandler(同じブラウザ・ウィンドウで開いて、リソースの全画面ナビゲーションを表示する)を使用してナビゲートするか、PopUpResourceActionHandler(新しいブラウザ・ポップアップ・ウィンドウを開く)を使用するかを指定します。
FrameworkアプリケーションでRAH対応のリンクまたはボタンをクリックすると、組込みのデフォルト・リソース・アクション・ビュー・ハンドラが起動されます。これにより、同じブラウザ・ウィンドウを使用してブラウザからリソースにナビゲートすることで、リソース・ビューア・タスク・フローでリソースを開きます。
この動作は、adf-config.xml
の<resource-handler>
要素に、組込みのポップアップ・ビュー・ハンドラまたはカスタム・ビュー・ハンドラを指定することで変更できます。さらに、デフォルト・アクションでビュー・ハンドラを起動するか、現在のウィンドウにADFインライン・ポップアップとして表示するかを指定できます。
例7-11に、adf-config.xml
に追加するXMLを示します。このXMLでは、ビュー・ハンドラとしてMyAppResourceActionHandler
を使用し、ADFインライン・ポップアップを使用して最初にリソースを表示するように宣言しています。
例7-11 カスタム・ビュー・ハンドラの指定
<wpsC:adf-service-config xmlns="http://xmlns.oracle.com/webcenter/framework/service"> <resource-handler class="com.mycompany.myapp.MyAppResourceActionHandler" display-as-popup="true" /> </wpsC:adf-service-config>
このwpsC:
ネームスペースは、次のように定義されています。
xmlns:wpsC="http://xmlns.oracle.com/webcenter/framework/service"
RAHフレームワークには、DefaultResourceActionHandler
とともに、PopUpResourceActionHandler
も含まれます。これは、完全なブラウザ・ウィンドウ・ナビゲーションを実行するのではなく、ナビゲート時に新しいブラウザ・ポップアップを起動します。これは、以前のリリースのWebCenter Portalアプリケーションの動作と似ています。
例7-12に、ポップアップ・ビュー・ハンドラの指定方法を示します。
例7-12 ポップアップ・ビュー・ハンドラの指定
<wpsC:adf-service-config xmlns="http://xmlns.oracle.com/webcenter/framework/service"> <resource-handler class="oracle.webcenter.framework.resource.view.PopUpResourceActionHandler" /> </wpsC:adf-service-config>
アプリケーションは、ResourceActionHandler
インタフェースを実装するクラスを作成するか、AbstractResourceActionHandler
ベース・クラスを拡張して、adf-config.xml
の<resource-handler>
のクラス属性に新しいビュー・ハンドラを指定することで、独自のリソース・アクション・ビュー・ハンドラを起動できます。次のシナリオでは、RAHリンクがクリックされたときに、カスタム・ビュー・ハンドラ・クラスを起動します。
ADFインライン・ポップアップが使用されていません。
「最大化」ボタンがADFインライン・ポップアップでクリックされました。
関連項目: カスタム・リソース・アクション・ビュー・ハンドラ(具体的には、 |
<resource-handler>
タグ内のdisplay-as-popup
属性では、RAHリンクのアクションの初期動作を定義します。これは、resourceActionBehavior
タグでuseResourcePopup
属性にalways
、never
またはappDefined
の値を使用することで、RAHリンク自体で上書きできます。
useResourcePopup
が設定されていない場合や、これがRAHリンクでappDefined
に設定されている場合は、adf-config.xml
のdisplay-as-popup
属性が考慮されます。これがtrue
に設定されている場合、RAHは、リソース・アクション・ビュー・ハンドラを起動するのではなく、ADFインライン・ポップアップを起動します。これにより、リソースのミニ・リソース・ビューが現在のページ内のADFインライン・ポップアップに表示されます。ユーザーは、これを閉じることも最大化することもできます。ユーザーが「最大化」ボタンをクリックすると、ポップアップが閉じてリソース・アクション・ビュー・ハンドラが起動されます。
デフォルトでは、完全なナビゲーションが意味をなさない一部のタスク・フローに対する特別な場合にのみ、FrameworkアプリケーションでADFインライン・ポップアップが使用されます。たとえば、検索結果には、リソースの作成者が含まれていることがあります。このユーザー名のリンクをクリックすると、検索結果から移動することなく、作成者の簡単なプロファイルを示すポップアップを確認できます。
これらのタスク・フローでは、resourceActionBehavior
タグで、useResourcePopup
がalways
に設定されています。これは、タスク・フローをカスタマイズすることで変更できます。
デプロイ済のアプリケーションの場合は、WLSTコマンドを使用することで、adf-config.xml
の<resource-handler
設定を追加したり更新したりできます。コマンドの構文および例は、『Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス』のsetWebCenterServiceFrameworkConfigに関する項と、getWebCenterServiceFrameworkConfigに関する項を参照してください。
アプリケーションに追加したサービスのタイムゾーン、日時の書式、言語(ロケール)およびアクセシビリティ・モードは、必要に応じてユーザーが設定できるようにすることが可能です。このような機能は、WebCenter Portal一般設定サービスを通じて提供できます。このサービスが格納する値には、FrameworkアプリケーションのJSFページから直接アクセスすることも、APIを通じて間接的にアクセスすることもできます。一般設定サービスの対応範囲は、次のとおりです。
タイムゾーン: デフォルトでは、アプリケーションを実行するサーバーで定義されている時刻が表示されます。これは、java.util.Timezone
に基づきます(例: GMT+0800
)。また、Region/Country
の書式もサポートします(例: Europe/Amsterdam
)。
日付/時間: デフォルトでは、java.text.DateFormat.SHORT
のスタイルに合わせて構成されます。これは、java.text.DateFormat
に基づきます(例: java.text.DateFormat.MEDIUM
)。サポートされる値は、SHORT
、MEDIUM
、LONG
およびFULL
です。
言語: デフォルトでは、ユーザーのブラウザのロケールで定義されます。これは、java.util.Locale
に基づきます(例: fr-CA
)。
アクセシビリティ設定: trinidad-config.xml
ファイルのaccessibility-mode
設定に使用する値です。有効な値は、default
、inaccessible
またはscreenReader
です。
アプリケーション・スキン: trinidad-config.xml
ファイルのskin-family
設定に使用する値です。これは、Trinidad skin-family
属性に基づきます。有効な値は、アプリケーションに含まれるスキンで定義されます。
アプリケーションからサービスを直接使用する場合は、JSFページで式言語を使用して、generalSettings
マネージドBeanにアクセスします。スタイルはjava.util.Timezone
に基づき、パターンはjava.text.SimpleDateFormat
に基づきます。
ADFコンポーネント(たとえば、af:activeOutputText
)のvalue属性としてgeneralSettings
を追加する場合は、「式ビルダー」を開いて、「JSFマネージドBean」、「generalSettings」の順にナビゲートすると、Beanのプリファレンス値を表示できます。
一般設定サービスは、パターンベースの書式とスタイルベースの書式をどちらもサポートします。パターンが指定されていない場合は、スタイルが使用されます。デフォルトでは、パターンは指定されていないか、NULLです。
図7-9に、一般的な設定の「EL式の挿入」ダイアログを示します。
表7-4では、一般設定サービスのプリファレンス値について説明します。
表7-4 一般設定マネージドBeanのプリファレンス値と説明
一般設定のプリファレンス値 | 説明 |
---|---|
|
ユーザーが選択しているロケールで現在の日付を表示します。 |
|
ユーザーが選択しているロケールで現在の日付と時刻を表示します。 |
|
ユーザーが選択しているロケールで現在の時刻を表示します。 |
|
|
|
日付および時刻を表示するときに |
|
日付および時刻を表示するときに |
|
時刻ではなく日付の表示に使用されるJava日付パターン。パターンは有効な |
|
日付を表示しないで時刻を表示する場合に使用される、Javaの時刻パターンです。これは、 |
|
日付と時刻を表示するときに使用される、Javaの日付/時刻パターンです。 これは、 |
|
日付および時刻を表示するときに |
|
|
たとえば、ユーザーの選択しているロケール、タイムゾーン、および書式で、現在の日付と時刻を表示するには、次のコードをページに追加します。
例7-13 ユーザーのロケールで現在の日付と時刻を表示するコード
<af:outputText value="#{generalSettings.formattedCurrentDateTime}"/>
また、特定の日付と時刻を表示するには、次のようにします。
例7-14 特定の日付と時刻を表示するコード
<af:outputText value="#{row.dateTimeValue}"> <af:convertDateTime type="both" dateStyle="#{generalSettings.preferredDateStyle}" timeStyle="#{generalSettings.preferredTimeStyle}" timeZone="#{generalSettings.userTimeZone}" locale="#{facesContext.externalContext.requestLocale}" /> pattern="#{generalSettings.preferredDateTimePattern}" </af:outputText>>
優先アクセシビリティ・モードを利用するには、アプリケーションのtrinidad-config.xml
ファイルにEL(式言語)式を追加して、そのアクセシビリティ・モードを設定する必要があります。例:
例7-15 trinidad-config.xmlでのアクセシビリティ・モードの設定
<accessibility-mode>#{generalSettings.preferredAccessibilityMode}</accessibility-mode>
一般設定APIを使用してユーザー・インタフェースを作成すると、ユーザーはデフォルト設定を受け入れることも、自分の目的に適った設定を適用することもできるようになります。このAPIには、表7-4に示したものと同じプリファレンス値が含まれています。
日付と時刻を表示するWebCenter Portalのサービスは、一般設定サービスで構成された設定を使用します。一般設定サービスAPIを使用してプリファレンス・ユーザー・インタフェースを作成する方法は、oracle.webcenter.generalsettings
についてのJavadocを参照してください。具体的には、oracle.webcenter.generalsettings.model
パッケージに、各設定のプリファレンス値を取得および設定するAPIが含まれています。これらのAPIを使用してカスタム・ユーザー・インタフェースを作成すると、ユーザーは各自の優先値を表示および設定できるようになります。
関連項目: Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
デフォルトでは、ADFはユーザーのブラウザ設定からユーザーのロケールを取得します。この動作は、プリファレンスUIを使用して、ユーザーの優先ロケールをアプリケーションで設定できるように変更できます。
この動作を変更するには、oracle.webcenter.generalsettings.model.filter.GeneralSettingsLocaleFilter
をサーブレット・フィルタとして、web.xml
とadfBindings
に含めます。このサーブレット・フィルタは、ユーザーのブラウザからではなく、一般設定サービスのロケール・プリファレンスを基にデフォルトのロケール(ADFロケール)を設定します。
次のルールに従って、一般設定のロケール・フィルタをweb.xml
に追加します。
フィルタを定義します。例:
<filter> <description> WebCenter General Settings locale setting. </description> <filter-name> generalSettingsLocaleFilter </filter-name> <filter-class> oracle.webcenter.generalsettings.model.filter.GeneralSettingsLocaleFilter </filter-class> </filter>
adfBindings
フィルタの後に、同じサーブレット名でフィルタを追加します。例:
<filter-mapping> <filter-name> generalSettingsLocaleFilter </filter-name> <servlet-name>Faces Servlet</servlet-name> </filter-mapping>
このフィルタが設定されていない場合は、最初にクライアントのブラウザのロケール設定がロケールの情報源になり、その後でADFロケール設定が情報源になります。
このフィルタが設定されている場合は、一般設定サービスがロケールの情報源になります。一般設定のロケール・プリファレンスが存在しない場合は、フィルタなしのデフォルト動作に戻されます。