この章では、WebCenterアプリケーションのページにコンポーネントを追加する方法を説明します。この章では、Oracle JDeveloperやOracle ADFページの作成の基礎については説明していませんので注意してください。WebCenterアプリケーション・ページに固有のページ作成局面についてのみ説明しています。このため、この章を読む前に、『Oracle Application Development Framework開発者ガイド』の内容をよく理解しておく必要があります。
Oracle WebCenter Frameworkには、アプリケーション・ページに広範な種類のコンテンツを配置するための機能が備わっています。コンテンツ・タイプには、ポートレット、カスタマイズ可能コンポーネント、コンテンツ統合ツールなどがあります。オプションで、これらのコンポーネントのカスタマイズを可能にして、アプリケーションをよりフレキシブルにすることができます。また、Oracle WebCenter Frameworkでは、これらのコンポーネントを連携動作するようにリンクして、わかりやすく使いやすいアプリケーションにすることができます。
この項では、WebCenterアプリケーションのページに追加できるOracle WebCenter Frameworkコンポーネントについて説明します。この項の内容は、次のとおりです。
注意: WebCenterアプリケーションに追加できるのは、これらのコンポーネントに限られていません。他のコンポーネントも同様に追加できます。このリストでは、Oracle WebCenter Frameworkに固有にコンポーネントのみを示しています。その他の使用可能なコンポーネントの詳細は、『Oracle Application Development Framework開発者ガイド』を参照してください。 |
Oracle WebCenter Frameworkでは、ポートレット・プロデューサをアプリケーションに登録することにより、ポートレットを消費できます。プロデューサを登録した後は、Oracle JDeveloperのコンポーネント・パレットで、登録済プロデューサ名の下にそのポートレットが表示されます。他のコンポーネントと同様の方法で、コンポーネント・パレットからポートレットをドラッグしてページにドロップできます。
アプリケーションでは、(パッケージ・アプリケーションのベンダーなどの)サード・パーティから入手したポートレットと同様に、自分で構築したポートレットを消費できます。
ポートレット消費には多くのオプションが関連付けられています。たとえば、ポートレットをページに直接配置するか、カスタマイズ可能コンポーネント内にポートレットをネストするかを選択できます。また、ポートレット・タグ(adfp:portlet
)の多くの属性は調整できます。複数のポートレットを連結することもできます。
この章では、ポートレット消費およびポートレット消費に関連するオプションについて説明します。この章の内容は、次のとおりです。
注意: ポートレットの作成方法の詳細は、次の章を参照してください。 |
カスタマイズ可能コンポーネントには、アプリケーションの「実行時に設計」動作を制御する機能が備わっています。カスタマイズ可能コンポーネントを使用すると、ユーザーは要件に応じてコンテンツのビューを操作できます。たとえば、あるユーザーが完全に非表示にするように選択したコンテンツの特定部分を、別のユーザーがページの一番上に移動することが可能です。カスタマイズ可能コンポーネントをページに追加すると、そのページはユーザーにカスタマイズ可能になります。
Oracle WebCenter Frameworkでは、次の2つのカスタマイズ可能コア・コンポーネントが提供されています。
ShowDetailFrame
PanelCustomizable
ShowDetailFrame
は1つのOracle ADFコンポーネントを囲むもので、(たとえば、コンテンツを最小化するための)メニュー・アクションを備えた境界線およびクロム・バーを設定できます。ShowDetailFrame
コンポーネントを使用すると、次のことが可能です。
子コンポーネントの表示の最大化またはリストア
コンポーネントのクロムまたは境界線の設定
子コンポーネントに対して特定のアクションを実行するためのアクション・メニューの設定
PanelCustomizable
コンポーネントは、カスタマイズ可能コンポーネントを含むOracle ADFコンポーネントのグループに対して水平および垂直のレイアウト機能を提供します。ShowDetailFrame
コンポーネントと同様に、PanelCustomizable
コンポーネントでもクロムを表示してメニュー・アクションを設定できます。PanelCustomizable
コンポーネントを使用すると、次のことが可能です。
子コンポーネントの表示の最大化またはリストア
子コンポーネントの表示/非表示の切替え
PanelCustomizable
コンポーネント内の子コンポーネントの移動または並替え
カスタマイズ可能コンポーネントのすべての機能を活用するため、次の方法でShowDetailFrame
コンポーネントとPanelCustomizable
コンポーネントを追加できます。
ShowDetailFrame
コンポーネントを使用して、その子コンポーネントの周りに境界線またはクロムをレンダリングすることによって、子コンポーネントの表示をカスタマイズするためのユーザー・インタフェース(UI)コントロールを設定します。たとえば、コンテンツの表示を移動、最小化または最大化するためのオプションを設定します。
配置階層は次のとおりです。
ShowDetailFrame ADF Faces component
PanelCustomizable
コンポーネント内部でShowDetailFrame
コンポーネントをラップして、子コンポーネントの表示/非表示を切り替える機能を設定します。
配置階層は次のとおりです。
PanelCustomizable ShowDetailFrame Child1 ADF Faces component ShowDetailFrame Child2 ADF Faces component Portlet Portlet
注意: ポートレットには、ShowDetailFrame コンポーネントと同様の表示オプションを備えたポートレット・クロムが用意されています。このため、ShowDetailFrame コンポーネント内にポートレットを含める必要はありません。 |
ページ上にShowDetailFrame
コンポーネントを追加するには、ShowDetailFrame
タグを使用します。オプションのリスト(図4-1に示すようなShowDetailFrame
ヘッダー上のリストとして使用可能)を使用すると、ユーザーは子コンポーネントの表示を制御できます。
図4-1に、次のコンポーネント配置階層を示します。
PanelCustomizable ShowDetailFrame Child1 ADF Faces component Portlet
ヘッダーの「処理」メニューから選択可能なオプションを使用することにより、コンテンツを最大化および最小化できます。cust:showDetailFrame
タグのファセットを使用すると、独自のUIコントロールを追加して表示をさらにカスタマイズできます。
PanelCustomizable
コンポーネント内部にShowDetailFrame
コンポーネントを配置した場合、表示を最大化および最小化するだけでなく、子コンポーネントを上下または左右に移動できます。
図4-2に、子コンポーネントを備えたPanelCustomizable
およびShowDetailFrame
コンポーネントのネストを示します。
カスタマイズ可能コンポーネント内部でのコンテンツおよびポートレットの配置
PanelCustomizable
およびShowDetailFrame
コンポーネントには、子コンポーネントとしてOracle ADF Facesコンポーネントを含めることができます。ただし、ポートレットはPanelCustomizable
コンポーネントのみに含めれば十分です。ポートレットにはShowDetailFrame
コンポーネントと同様の表示オプションを持つポートレット・クロムが備わっているため、ShowDetailFrame
コンポーネントにポートレットを含める必要はありません。ShowDetailFrame
コンポーネントにポートレットを含めても、メリットはありません。
PanelCustomizable
およびShowDetailFrame
コンポーネントに子コンポーネントを追加する手順は、Oracle ADF Facesコンポーネントをページ上に追加する手順と同様です。子コンポーネントを追加する前に、Oracle JDeveloperの「構造」ペインで、PanelCustomizable
またはShowDetailFrame
コンポーネントが選択されていることを確認してください。詳細は、4.3.2項「ページへのポートレットの追加」を参照してください。
Java Content Repository(JCR)データ・コントロールは、ファイルおよびフォルダのコンテンツをページ上に公開するものです。このため、JCRデータ・コントロールを使用すると、コンテンツ・リポジトリからのコンテンツをWebCenterアプリケーション内に統合できます。特定のコンテンツ・リポジトリ(Oracle Content DBやファイル・システムなど)からコンテンツを選択するデータ・コントロールを作成します。作成したデータ・コントロールは、必要な書式(表など)のJSPドキュメントにドロップできます。JCRデータ・コントロールおよびコンテンツの統合の詳細は、第5章「コンテンツの統合」を参照してください。
Oracle ADFを使用してOracle JDeveloperでページを作成する方法の詳細は、『Oracle Application Development Framework開発者ガイド』を参照してください。このガイドには、Oracle ADF Facesに関する必要な情報と、基本的および複雑なページを構築するために必要な情報がすべて記載されています。次の項では、WebCenterアプリケーション・ページの特殊な要件のいくつかを示します。
ページの要件
次のリストに、Oracle ADFを使用してOracle JDeveloperでWebCenterアプリケーション・ページを作成するときに適用される規則およびガイダンスを示します。
WebCenterアプリケーション・ページは、JSPページ(jsp
)ではなくJSPドキュメント(jspx
)として作成します。ページ・カスタマイズが格納されるためには、ページがXML(jspx
)で表されている必要があります。したがって、JSPドキュメントを作成するように選択することで、WebCenterアプリケーション・ページのカスタマイズが常に可能になります。
カスタマイズを可能にしない場合は、JSPページを作成するように選択することもできますが、後でカスタマイズを可能にする必要が生じた場合に問題になることがあります。
JSF JSPの作成ウィザードの「タグ・ライブラリ」ページで次のライブラリが表示されていることを確認します。
ADFポートレット・コンポーネント
このライブラリは、アプリケーション・ページにポートレットを配置する場合に必要です。
カスタマイズ可能コンポーネント・コア
このライブラリは、ページ・カスタマイズ(ポートレットの移動や非表示/表示の切替えなど)を可能にし、これらのカスタマイズを任意のOracle ADFコンポーネントに対して可能にする場合に必要です。
この項では、アプリケーションに対してポートレットを使用可能にし(つまりポートレット・プロデューサを登録し)、ポートレットをページに追加し、ページからポートレットを削除するプロセスを、順を追って示します。この項の内容は、次のとおりです。
Oracleを介して事前構築済のポートレットを入手する方法の詳細は、3.2項「Preconfigured OC4Jの使用」を参照してください。Oracle JDeveloperのポートレット作成ウィザードの使用方法の詳細は、第18章「Javaポートレットの作成」を参照してください。ポートレットの詳細は、第14章「ポートレットの概要」を参照してください。
ポートレットをWebCenterアプリケーションに追加する前に、ポートレットのプロデューサをアプリケーションに登録する必要があります。Oracle JDeveloperには、2つのプロデューサ登録ウィザード(WSRPプロデューサの登録ウィザードおよびPDK-Javaプロデューサの登録ウィザード)が用意されています。この項では、これらのウィザードの使用方法について説明します。この項の内容は、次のとおりです。
WSRPポートレット・プロデューサを登録する場合、プロデューサの操作パラメータを指定する基本情報を設定します。ポートレットを消費するアプリケーションは、プロデューサと通信したり、プロデューサを介してポートレットと通信するときに、この情報を使用します。
Oracle WebCenter Frameworkでは、WSRP 1.0プロデューサとWSRP 2.0プロデューサの両方がサポートされています。WSRP 2.0サポートは、WSRP 2.0の予備(試作)バージョンに対応するものです。予備サポートが提供されているのは、Oracle WebCenter Frameworkがリリースされた時点でWSRP 2.0標準が完成していなかったためです。
この新しい標準では特に、ポートレット間の通信およびポートレット・カスタマイズのエクスポートやインポートがサポートされます。つまり、標準ベースのJSR 168ポートレットを構築しながら、WSRP 2.0のメリットも活用できるということです。さらに拡張的なWSRP 2.0の機能を活用するには、Oracle固有のoracle-portlet.xml
メタデータ拡張機能を使用してください。
WSRP 2.0が提供するメリットを活用するには、WSRP 2.0を介して公開されたJSR 168ポートレットをOracle Container for J2EE(OC4J)にデプロイする必要があります。ポートレットのアプリケーション・プログラミング・インタフェース(API)の新しいバージョン(JSR 286)ではWSRP 2.0機能がサポートされる予定なので、JSR 286が入手可能になった時点でベンダー固有の拡張機能は不要になります。
WSRP 1.0プロデューサとWSRP 2.0プロデューサのどちらを登録する場合も、プロデューサ登録ウィザードが入口点となります。登録が正常に完了すると、新しく登録されたプロデューサがOracle JDeveloperのコンポーネント・パレットに表示されます。ここから、アプリケーション(jspx
)ページに配置するポートレットを選択できます。また、プロデューサは、アプリケーション・ナビゲータで「ポートレット・プロデューサ」ノードの下にもリストされます。
WSRPポートレット・プロデューサを登録する手順は、次のとおりです。
アプリケーション・ナビゲータで、プロデューサを作成するアプリケーションを右クリックし、ポップアップ・メニューから「新規」を選択します。
「新規ギャラリ」の「カテゴリ」で、「Web Tier」ノードを開き、「Portlets」を選択します。
「新規ギャラリ」の「項目」で、「WSRPプロデューサの登録」を選択します。
「OK」をクリックします。
「ようこそ」ページで、「次へ」をクリックします。
オプションで、「次へ」をクリックする前に「次回にこのページを表示しない」を選択すると、次回からこのウィザードを使用するときに「ようこそ」ページは表示されません。ウィザードを以前に使用したときにこのオプションが選択されていた場合、「ようこそ」ページが表示されないことがあります。
「名前」フィールドに、プロデューサの名前を入力します。
プロデューサに、プロデューサ間で一意の名前を付けます。
注意: 同じ名前が指定されたプロデューサは、コンポーネント・パレットに1回しか表示されません。したがって、2つのプロデューサを登録して、それぞれにMyProducerという名前を指定すると、MyProducerの名前は、コンポーネント・パレット上に1回しか表示されず、両方のプロデューサのポートレットが1つのインスタンスの下に表示されます。この場合、どのポートレットがどのプロデューサに属しているか判断することが難しくなります。このような状況になった場合は、いずれかのプロデューサを編集して一意の名前を指定することを考慮してください。4.3.1.3項「ポートレット・プロデューサ登録設定の編集」を参照してください。 |
「次へ」をクリックします。
「URLエンドポイント」フィールドに、プロデューサのURLを入力します。
構文は、WSRP実装によって異なります。
http://<host>:<port>/<context-root>/portlets/wsrp1?WSDL http://<host>:<port>/<context-root>/portlets/wsrp2?WSDL http://<host>:<port>/<context-root>/portlets?WSDL (WSRP 1.0 for backward compatibility)
これらの意味は、次のとおりです。
host
は、プロデューザがデプロイされているサーバーです。
port
は、HTTPリスナーのポート番号です。
context-root
はコンテキスト・ルートです。
portlets[/wsrp(1|2)]?WSDL
は静的テキストです。ここに入力するテキストは、プロデューサがデプロイされている方法によって異なります。
次に例を示します。
http://myhost:7778/MyPortletApp/porlets/wsrp2?WSDL
プロデューサ・テスト・ページには、次のURLを介してアクセスできます。
http://host:port/context-root/info
注意: 「URLエンドポイント」は編集可能ですが、編集機能はホスト名、ポートまたはIPアドレスを更新する場合にのみ使用してください。新しいプロデューサを指定するために編集機能を使用しないでください。プロデューサを別のプロデューサに切り替えることは(ポートレットが同一であっても)、WSRP仕様ではサポートされていません。 |
アプリケーションでプロデューサへの接続にHTTPプロキシを使用する場合は、次の手順を実行します。
「WSRPポートレット・プロデューサへの連絡にプロキシを使用」を選択します。
アプリケーションでプロデューサへの接続にHTTPプロキシを使用する場合は、このチェック・ボックスを選択します。コンシューマ・アプリケーションとリモート・ポートレット・プロデューサがファイアウォールで分断されていて、プロデューサとの通信にHTTPプロキシが必要な場合、プロキシが必要になります。
「プロキシ・ホスト」フィールドに、プロキシのURLを入力します。
「プロキシ・ポート」フィールドに、プロキシのポート番号を入力します。
「次へ」をクリックします。
「デフォルトの実行タイムアウト(秒)」フィールドで、WebCenterアプリケーションでポートレットがレンダリングされてからタイムアウトになるまでの秒数を入力します。
プロデューサによっては、追加の登録プロパティを定義できるものもあります。このような場合は、ウィザードの「登録の詳細」パネルに、それらのプロパティが表として表示されます。ユーザーは、表のこれらの追加プロパティに対する値を入力できます。これらのプロパティはプロデューサに固有であり、登録時にのみ使用されます。つまり、コンシューマ・アプリケーションによりプロデューサに送信される情報を登録時に収集すると、プロデューサによってコンシューマに対してこの情報が格納され、以降は使用されます。
この時点で、「終了」をクリックして登録を完了できます。プロデューサ(したがってそのポートレット)へのアクセスのたびに認証を必要とする場合、または、プロデューサのポートレットに定義されているユーザー・カテゴリをアプリケーションに定義されているJ2EEセキュリティ・ロールにマップする場合は、続行します。
「次へ」をクリックします。
「トークン・プロファイル」リストから、WSRPプロデューサでの認証に使用するトークン・プロファイルのタイプを選択します。
次のうちから選択します。
ユーザー名トークン: Webサービス・コンシューマは、ユーザー名でリクエスタを識別する手段として「ユーザー名トークン」を指定して、Webサービス・プロデューサに対してそのアイデンティティを認証できます。
SAMLトークン: SAML(Security Assertion Markup Language)は、認証権限および認可権限を定義するセキュリティ・トークンを渡すためのXMLベースのアプローチです。(レシーバとの信頼関係をすでに持っている)証明エンティティは、送信者保証と呼ばれる方式によってサブジェクトの検証を保証します。
なし: トークンはありません。「なし」を選択した場合、SOAPメッセージにWS-Securityヘッダーは添付されません。この場合、プロデューサ登録を完了するための「終了」ボタンが有効になります。
「デフォルト・ユーザー」フィールドに、ユーザーがWebCenterアプリケーションに対して認証されていないときにリモート・プロデューサにアサートするユーザー名を入力します。
認証されていない場合、anonymousというアイデンティティがアプリケーション・ユーザーに関連付けられます。anonymousの値がリモート・プロデューサに適していない場合は、ここに別のアイデンティティを指定する必要があります。ただし、この場合は、WebCenterアプリケーションがユーザーを認証していないため、指定したデフォルト・ユーザーはリモート・プロデューサで権限の低いユーザーになることに注意してください。ユーザーがアプリケーションで認証されている場合、デフォルト・ユーザーではなくそのユーザーのアイデンティティがアサートされます。
「発行者名」フィールドに、SAMLトークンの発行者名(www.oracle.com
など)を入力します。
このフィールドは、「トークン・プロファイル」リストから「SAMLトークン」が選択されている場合にのみ表示されます。発行者名は、サブジェクトの検証用の証明エンティティ保証です。
「XML署名」で、WS-SecurityのKeyInfo内部で署名証明書が参照される手段を選択します。
XML署名は、SOAPメッセージの真正性を提供するためにセキュリティ・トークンとSOAPメッセージ本体をデジタル署名する場合に使用されます。このパネルを使用して、WS-SecurityのKeyInfo内部で署名証明書が参照される手段を指定します。
「バイナリ・セキュリティ・トークン」または「サブジェクト・キー識別子」を選択します。
「次へ」をクリックします。
「ストア・パス」フィールドに、SOAPメッセージの一部(セキュリティ・トークンとSOAPメッセージ本体)を署名するために使用される証明書および秘密鍵が含まれるキーストアのフルパスを入力します。
オプションで、「参照」をクリックし、ファイルにナビゲートして選択します。選択するファイルは、Java keytoolを使用して作成したキーストアの場合や、Oracle Walletの場合があります。
「ストア・パスワード」フィールドで、キーストアの作成時に設定されたキーストアに対するパスワードを指定します。
ストア・パスワードが正しくないと、「ストア・タイプ」フィールドと「署名キーの別名」リストは移入されません。
間違ったパスワードを入力すると、パスワードは無効で修正する必要があるというエラー・メッセージが表示されます。パスワードを修正した後、[Tab]キーを押して別のアクティブ・フィールド(「ストア・パス」フィールドなど)に移動します。これにより、「ストア・タイプ」フィールドと「署名キーの別名」リストは適切に移入されます。
「ストア・タイプ」の値はキーストアから読み取られ、常に編集不可能です。適用可能な値には、「JKS」(Javaキーストア)や「Oracleウォレット」などがあります。
「署名キーの別名」リストから、署名キーの別名を選択します。
「ストア・パスワード」フィールドに正しいパスワードが入力されると、「署名キーの別名」リストに自動的に移入されます。「署名キーの別名」は、署名に使用される秘密鍵に関連付けられた証明書の識別子です。指定されたキーストアで見つかったキーの別名は、リストで選択可能になります。署名に使用するキーの別名を選択してください。
「署名キーのパスワード」フィールドで、「署名キーの別名」に指定されている別名で識別されるキーにアクセスするためのパスワードを指定します。
「終了」をクリックして、WSRPポートレット・プロデューサの登録を完了します。
この次の手順は、登録するプロデューサでユーザー・カテゴリを宣言するかどうかによって異なります。
プロデューサでユーザー・カテゴリを宣言しない場合、登録プロセスは完了です。
プロデューサでユーザー・カテゴリを宣言する場合は、「はい」をクリックし、「プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJ2EEセキュリティ・ロールにマッピング」を参照してください。この機会を拒否し、プロデューサ登録を完了する場合は、「いいえ」をクリックします。
注意: ほとんどの登録設定は編集できます。たとえば、ここでプロデューサのユーザー・カテゴリをJ2EEセキュリティ・ロールとマップすることを拒否した場合、後でウィザードを再入力し、「ユーザー・カテゴリ」タブのマッピング情報を入力できます。詳細は、4.3.1.3項「ポートレット・プロデューサ登録設定の編集」を参照してください。 |
プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJ2EEセキュリティ・ロールにマッピング
プロデューサで宣言するユーザー・カテゴリは、プロデューサに含まれるポートレットから導出されます。たとえば、規格に基づいたJavaポートレット(JSR 168)ウィザードで作成された1つ以上のJSR 168ポートレットがプロデューサに含まれる場合、ポートレット作成中に追加されたセキュリティ・ロールはすべて、プロデューサで宣言するユーザー・カテゴリに含められます。J2EEセキュリティ・ロールは、WebCenterアプリケーションのweb.xml
ファイルのプロパティを介して指定できます。
この手順は、前の手順からの続きです。
プロデューサで宣言されたユーザー・カテゴリをアプリケーションで定義されたJ2EEセキュリティ・ロールにマップする手順は、次のとおりです。
「マッピング」ダイアログ・ボックスで、アプリケーションJ2EEセキュリティ・ロール列をクリックします。
このダイアログ・ボックスにアクセスするには、プロデューサ登録時に、登録を完了し、マッピングを続行するかどうか尋ねられたら「はい」をクリックします(4.3.1.1項を参照)。また、このダイアログ・ボックスには、プロデューサ登録設定の編集時にもアクセスできます(4.3.1.3項を参照)。
表示されるリストから、プロデューサのユーザー・カテゴリにマップするセキュリティ・ロールを選択します。
ユーザー・カテゴリごとに手順1および2を繰り返します。
すべてのユーザー・カテゴリがマップされたら、「OK」をクリックします。
Oracle PDK-Javaポートレット・プロデューサを登録する場合、プロデューサの操作パラメータを指定する基本情報を設定します。この情報は、WebCenterアプリケーションがプロデューサと通信したり、プロデューサを介してポートレットと通信するときに消費されます。
登録が正常に完了すると、新しく登録されたプロデューサがOracle JDeveloperのコンポーネント・パレットに表示されます。ここから、アプリケーション(jspx
)ページに配置するポートレットを選択できます。また、プロデューサは、アプリケーション・ナビゲータで「ポートレット・プロデューサ」ノードの下にもリストされます。
Oracle PDK-Javaポートレット・プロデューサを登録する手順は、次のとおりです。
アプリケーション・ナビゲータで、プロデューサを作成するアプリケーションを右クリックし、ポップアップ・メニューから「新規」を選択します。
「新規ギャラリ」の「カテゴリ」で、「Web Tier」ノードを開き、「Portlets」を選択します。
「新規ギャラリ」の「項目」で、「Oracle PDK-Javaプロデューサ登録」を選択します。
「OK」をクリックします。
「ようこそ」ページで、「次へ」をクリックします。
オプションで、「次へ」をクリックする前に「次回にこのページを表示しない」を選択すると、次回からこのウィザードを使用するときに「ようこそ」ページは表示されません。ウィザードを以前に使用したときにこのオプションが選択されていた場合、「ようこそ」ページが表示されないことがあります。
「名前」フィールドに、プロデューサの名前を入力します。
プロデューサに、プロデューサ間で一意の名前を付けます。
注意: 同じ名前が指定されたプロデューサは、コンポーネント・パレットに1回しか表示されません。したがって、2つのプロデューサを登録して、それぞれにMyProducerという名前を指定すると、MyProducerの名前は、コンポーネント・パレット上に1回しか表示されず、両方のプロデューサのポートレットが1つのインスタンスの下に表示されます。この場合、どのポートレットがどのプロデューサに属しているか判断することが難しくなります。このような状況になった場合は、いずれかのプロデューサを編集して一意の名前を指定することを考慮してください。4.3.1.3項「ポートレット・プロデューサ登録設定の編集」を参照してください。 |
「次へ」をクリックします。
「URLエンドポイント」フィールドに、次の構文を使用してプロデューサのURLを入力します。
http://<host>:<port>/<context-root>/providers
これらの意味は、次のとおりです。
host
は、プロデューザがデプロイされているサーバーです。
port
は、サーバーがHTTPリクエストをリスニングするポートです。
context-root
は、Webアプリケーションのコンテキスト・ルートです。
providers
は静的テキストです。ここに入力するテキストは、プロデューサがデプロイされている方法によって異なります。
次に例を示します。
http://myHost:7778/myEnterprisePortlets/providers
「サービスID」フィールドに、このプロデューサの一意の識別子を入力します。
PDK-Javaでは、1つのアダプタ・サーブレットの下に複数のプロデューサをデプロイできます。これらのプロデューサは、それぞれ一意のサービスIDによって識別されます。サービスIDが必要になるのは、URLエンドポイントにサービスIDまたはプロデューサ名が追加されていない場合のみです。たとえば、次のURLエンドポイントにはsample
というサービスIDが必要です。
http://domain.us.company.com:<port_number>/axyz/providers
しかし、次のURLエンドポイントにはサービスIDは不要です。
http://domain.us.company.com:<port_number>/axyz/providers/sample
アプリケーションでプロデューサへの接続にHTTPプロキシを使用する場合は、次の手順を実行します。
注意: このパネルのプロキシ・フィールドは、デフォルトでOracle JDeveloperの「プリファレンス」で設定されているプロキシ・プリファレンス・セット(「ツール」メニューから「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択)に設定されます。 |
「PDKポートレット・プロデューサへの連絡にプロキシを使用」を選択します。
アプリケーションでプロデューサへの接続にHTTPプロキシを使用する場合は、このチェック・ボックスを選択します。コンシューマ・アプリケーションとリモート・ポートレット・プロデューサがファイアウォールで分断されていて、プロデューサとの通信にHTTPプロキシが必要な場合、プロキシが必要になります。
「プロキシ・ホスト」フィールドに、プロキシ・ホストのURLを入力します。
「プロキシ・ポート」フィールドに、プロキシ・ホストのポート番号を入力します。
このプロデューサが外部アプリケーションに対する認証を提供する必要がある場合は、「プロデューサと外部アプリケーションとの関連付け」を選択し、アプリケーションを選択します。
詳細は、10.7項「資格証明を必要とする外部アプリケーションへのアクセス」を参照してください。
「プロデューサ・セッションの有効化」を選択して、ポートレット・プロデューサのセッションを有効化します。
このオプションは、プロデューサとOC4Jサーバーの間のセッションを有効化する場合に使用します。プロデューサとサーバー間の通信にセッションがない場合は、このオプションを選択しないでください。
セッションが有効化されると、サーバーは、ユーザー名などのセッション固有の情報を保守します。メッセージ認証ではセッションが使用されるため、共有キーが設定されている場合は、このオプションも選択する必要があります。
「次へ」をクリックします。
「デフォルトの実行タイムアウト(秒)」フィールドで、WebCenterアプリケーションでポートレットがレンダリングされてからタイムアウトになるまでの秒数を入力します。
「サブスクライバID」フィールドに、登録するプロデューサのコンシューマを識別する文字列を入力します。
プロデューサが登録されると、プロデューサのコールが送信されます。コール中、コンシューマは「サブスクライバID」の値をプロデューサに渡します。「サブスクライバID」がプロデューサの予測した値でない場合、プロデューサは登録コールを拒否することがあります。
「共有キー」フィールドに、暗号化を処理するために設定されているプロデューサに使用する共有キーを入力します。
共有キーは、メッセージ認証用のメッセージ署名を生成するための暗号化アルゴリズムで使用されます。共有キーを使用してプロデューサが設定されている場合に、ここに間違った共有キーを入力すると、プロデューサ登録は失敗しますので注意してください。共有キーには、英数字10〜20文字を含めることができます。
「終了」をクリックして、PDK-Javaポートレット・プロデューサの登録を完了します。
「OK」をクリックして、成功メッセージを閉じます。
WSRPポートレット・プロデューサの登録ウィザードとPDK-Javaポートレット・プロデューサの登録ウィザードではいずれも、プロデューサを登録したとき入力した値の多くをアクセスおよび修正できます。
WSRPポートレット・プロデューサまたはOracle PDK-Javaポートレット・プロデューサを編集する手順は、次のとおりです。
アプリケーション・ナビゲータで、プロデューサにナビゲートします。
Applications <ApplicationName> Portlet Producers
編集するプロデューサを右クリックし、ポップアップ・メニューから「編集」を選択します。
注意: アプリケーション・ナビゲータでプロデューサをダブルクリックして、編集モードでプロデューサを開くこともできます。 |
ウィザードの一番上にあるタブをクリックすると、別の設定パネルが前面表示されます。
WSRPプロデューサ設定の詳細は、4.3.1.1項「WSRPポートレット・プロデューサの登録」を参照してください。
PDK-Javaプロデューサ設定の詳細は、4.3.1.2項「PDK-Javaポートレット・プロデューサの登録」を参照してください。
接続テスト機能には、ポートレット・プロデューサ接続の有効性をテストする手段が備わっています。
ポートレット・プロデューサ接続をテストする手順は、次のとおりです。
アプリケーション・ナビゲータで、プロデューサにナビゲートします。
Applications <ApplicationName> Portlet Producers <ProducerName>
編集するプロデューサを右クリックし、ポップアップ・メニューから「プロデューサ接続のテスト」を選択します。
テストの実行中は、プログレス・バーが表示されます。テストが完了すると、成功または失敗のダイアログ・ボックスが表示されます。「OK」をクリックして、このダイアログ・ボックスを閉じます。
失敗のダイアログ・ボックスが表示されたら、プロデューサ登録の詳細を再編集し、プロデューサ接続を再テストすることを考慮してください。さらに、プロデューサが使用可能であることを確認してください。たとえば、プロデューサがPreconfigured Oracle Containers for J2EE(OC4J)を介して提供されている場合は、Preconfigured OC4Jが稼働中であることを確認してから、接続を再テストします。
ポートレット・プロデューサをリフレッシュすると、そのプロデューサに属するポートレットもリフレッシュされます。つまり、新しく追加されたポートレットや、既存のポートレットに対する更新内容が、このプロデューサに属するポートレットを消費しているアプリケーションに対して使用可能になります。
注意: ポートレットがプロデューサから削除された場合は、必ず、ポートレットが配置されているすべてのアプリケーション・ページからそのポートレットを手動で削除してください。詳細は、4.3.5項「アプリケーション・ページからのポートレットの削除」を参照してください。 |
WSRPポートレット・プロデューサまたはOracle PDK-Javaポートレット・プロデューサをリフレッシュする手順は、次のとおりです。
アプリケーション・ナビゲータで、プロデューサにナビゲートします。
Applications <ApplicationName> Portlet Producers
編集するプロデューサを右クリックし、ポップアップ・メニューから「リフレッシュ」を選択します。
ポートレット・プロデューサのリフレッシュ・ダイアログ・ボックスで、「はい」をクリックします。
「OK」をクリックして、「成功」ダイアログ・ボックスを閉じます。
プロデューサを登録解除すると、WebCenterアプリケーション・エンドとリモート・プロデューサ・エンドの両方から登録データが削除されます。アプリケーション・エンドでは、プロデューサ接続が削除されます。プロデューサ・エンドでは、ポートレット・インスタンスが削除されます(ただし、ポートレットそのものは削除されません)。
ポートレット・インスタンスはリモート・プロデューサ・エンドでは削除されますが、アプリケーション・エンドでは削除されません。このため、ポートレット・プロデューサを登録解除する場合は、プロデューサにより提供されているポートレットすべてをアプリケーション・ページから削除する必要もあります。さらに、ポートレットにパラメータが組み込まれている場合は、影響を受けるアプリケーション・ページのページ定義ファイルから、関連付けられたページ変数を削除する必要があります。
ポートレット・プロデューサを登録解除する手順は、次のとおりです。
アプリケーション・ナビゲータで、プロデューサにナビゲートします。
Applications <ApplicationName> Portlet Producers <producer_name>
登録解除するプロデューサを右クリックし、ポップアップ・メニューから「登録解除」を選択します。
「ポートレット・プロデューサの登録解除」ダイアログ・ボックスで、「はい」をクリックします。
「ポートレット・プロデューサの登録解除」ダイアログ・ボックスではなく、「接続エラー」ダイアログ・ボックスが表示されることがあります。このダイアログは、プロデューサへの接続が確立できない場合に表示されます。
プロデューサが使用可能でない場合や、WebCenterアプリケーション内にプロデューサの接続詳細が適切に指定されていない場合、接続が失敗する可能性があります。「はい」または「いいえ」をクリックします。
登録解除を続行する場合は、「はい」をクリックします。「はい」をクリックすると、登録データがWebCenterアプリケーション・エンドでは削除されます。ただし、リモート・プロデューサ・エンドでは変更されません。
登録解除を取り消す場合は、「いいえ」をクリックします。取り消す場合は、プロデューサが使用可能であり、プロデューサ登録ウィザードでの接続詳細が有効であることを確認した後で、再試行できます(4.3.1.3項「ポートレット・プロデューサ登録設定の編集」を参照)。
「OK」をクリックして、表示される成功メッセージを閉じます。
WebCenterアプリケーション・ページへのポートレットの配置は、ドラッグ・アンド・ドロップの簡単な操作で実行できますが、この簡単な操作の前に、いくつかの準備的な手順を実行する必要があります。これには、WebCenterアプリケーションの作成(3.1項「WebCenterアプリケーションの作成」を参照)、アプリケーション・ページの作成(4.2項「Oracle ADFを使用したOracle JDeveloperでのWebCenterアプリケーション対応ページの構築」を参照)、およびポートレットのプロデューサのアプリケーションへの登録(4.3.1項「ポートレット・プロデューサの登録」を参照)が含まれます。
ポートレットを配置したアプリケーション・ページのソースを調べると、adfp:portlet
タグが存在しています。これは、ポートレットをページにバインドするタグです。このタグに付随する属性の文字列を修正すると、ポートレットの動作および外観をさらに制御できます。詳細は、4.3.3項「adfp:portletタグの属性値の設定」を参照してください。
注意: 消費しようとするポートレットの一部が、独自の認証を処理するアプリケーションに属していることがあります。このような場合は、アプリケーションを外部アプリケーションとして登録し、その提供元のポートレット・プロデューサに対して識別する必要があります。詳細は、第10章「WebCenterアプリケーションの保護」を参照してください。消費しようとするポートレットの一部が、Secure Socket Layer(SSL)対応のプロデューサに属していることもあります。SSL対応プロデューサにアクセスしようとすると、セキュリティ・アラート・ダイアログ・ボックスが表示され、プロデューサのセキュリティ証明書を表示して信頼できる証明書リストに追加するように要求されることがあります。セキュリティ・アラート・ダイアログ・ボックスが表示されるのは、プロデューサが、広く受け入れられていない認証局によって発行されたセキュリティ証明書を使用する場合のみです。このようなプロデューサからのポートレットを消費するには、まず、プロデューサのセキュリティ証明書をキーストアに追加する必要があります。実行する手順は、10.8項「キーストアへのカスタム証明書の登録」を参照してください。 |
ポートレットをページに追加する手順は、次のとおりです。
アプリケーション・ナビゲータで、ポートレットを追加するアプリケーション・ページ(jspx
ファイル)を右クリックし、ポップアップ・メニューから「開く」を選択します。
jspx
ファイルは、アプリケーション・ナビゲータで次の場所にあります。
Applications <ApplicationName> <ProjectName> Web Content <ApplicationPage>.jspx
コンポーネント・パレットで、アプリケーション・ページに追加するポートレットが含まれるポートレット・プロデューサを選択します。
コンポーネント・パレットでは、選択したプロデューサの下に、そのプロデューサに含まれているすべてのポートレットが表示されます。
ポートレットを選択し、Oracle JDeveloperの「構造」ペインの「h:form」
要素の上にドラッグします。
あるいは、コンポーネント・パレットからエディタ内のページに直接ポートレットをドラッグします。
ポートレットが、h:form
要素内にネストされます。必ずしも、このポートレットが直接h:form
タグに囲まれている必要はありません。コンポーネントをh:form
要素の外に追加した場合、Oracle JDeveloperによって、form要素でコンポーネントを囲むかどうか尋ねられます。このオプションを選択してください。
アプリケーション・ページに1つ以上のカスタマイズ可能コア・コンポーネントが含まれている場合は、これがポートレットの配置場所に影響を与えることがあります。たとえば、「構造」ペインで、cust:panelCustomizable
タグを含むページに配置されているポートレットは、例4-1のように配置されます。
カスタマイズ可能なコア・タグ(cust:panelCustomizable
およびcust:showDetailFrame
)の詳細は、4.4項「カスタマイズ可能コンポーネントの使用」を参照してください。
ポートレットをページに追加すると、adfp:portlet
タグがページ・ソースに追加されます。adfp:portlet
タグには、Oracle JDeveloperのプロパティ・インスペクタを介してアクセス可能な多数の属性が含まれます。adfp:portlet
タグの属性については、4.3.3項「adfp:portletタグの属性値の設定」を参照してください。
ポートレットをページに配置した後は、ページを右クリックし、ポップアップ・メニューから「実行」を選択します。これにより、ページが表示され、デフォルト・ブラウザでOracle JDeveloperの埋込みOC4Jを使用してポートレットが実行されます。ポートレットによっては、追加の実行時構成が必要になることもあります。特に、OmniPortletポートレットまたはWebクリッピング・ポートレットのインスタンスの内容は実行時に定義されます。OmniPortletの詳細は、第16章「OmniPortletを使用したポートレットの作成」を参照してください。Webクリッピング・ポートレットの詳細は、第17章「Webクリッピングを使用したコンテンツ・ベースのポートレットの作成」を参照してください。ポートレット一般の詳細は、第14章「ポートレットの概要」および第15章「ポートレット・テクノロジのマトリックス」を参照してください。
「編集」モード(WebCenterアプリケーションでは、ポートレットの「処理」メニューの「パーソナライズ」コマンドとしてレンダリングされる)を備えたポートレットを実行する場合、認証されたユーザー(つまり、ログインしているユーザー)にのみ、ポートレットの「処理」メニューに「パーソナライズ」オプションが表示されます。匿名ユーザーまたはパブリック・ユーザーには、ポートレットをパーソナライズするためのオプションは表示されません。ポートレットを消費するアプリケーションで、ユーザーがポートレットのビューをパーソナライズできるようにするには、あらかじめなんらかの形態のセキュリティを実装しておく必要があります。ポートレットおよびページを作成する開発者は、アプリケーションに完全なセキュリティ・モデルを作成せずに、ポートレットの「編集」モードをテストする必要があることがあります。セキュリティを追加してポートレット・パーソナライズのテストを有効化する(つまり、ポートレットの「編集」モードをテストする)方法の詳細は、10.6項「ポートレット・パーソナライズをテストするための基本認証の構成」を参照してください。
アプリケーションのソース・ページでは、各ポートレットはadfp:portlet
タグで表され、その中に必須属性とオプション属性のセットが含まれています。必須属性であるvalue
およびportletType
はOracle WebCenter Frameworkによって自動的に設定され、変更できません。オプション属性値は、ポートレットにその属性のサポートが組み込まれている場合に適用されます。たとえば、isAboutModeAvailable
をtrue
に設定できますが、ポートレットに情報モードが定義されていない場合、この属性設定はポートレットに影響を与えません。
また、ポートレットでは、スタイル関連属性のセットがサポートされています。これらの属性については、9.4項「プロパティ・インスペクタを介したスタイルの定義」で詳しく説明しています。
属性値は、Oracle JDeveloperのプロパティ・インスペクタを使用するか、例4-2に示すようにソースでadfp:portlet
タグの属性として、設計時に設定します。
例4-2 adfp:portletタグ
<adfp:portlet value="#{bindings.portlet1}" portletType="/oracle/adf/portlet/WsrpPortletProducer1/applicationPortlets/ E0default_b452f828_010a_1000_8002_82235f57eaa8" allModesSharedScreen="true" isMaximizable="true" isMinimizable="true"/>
adfp:portlet
タグでは、この項でリストして説明する4種類の属性が使用されます。この項の内容は、次のとおりです。
表4-1に、adfp:portletタグの一般的な属性を示します。
表4-1 adfp:portletタグの一般的な属性
属性 | 値 | 説明 |
---|---|---|
使用可能な領域をピクセルまたはパーセンテージで表した数値。
|
ポートレット表示で許可される領域の高さ。
|
|
イメージのURI。次に例を示します。 icon="coffee.png" Oracle JDeveloperでは、値列の「編集」アイコンをクリックして、必要なイメージを見つけて選択します。この例に示したURIはドキュメント・ルートに格納されているため、フルパスは必要ありません。ドキュメント・ルートに格納されていないイメージには、たとえば次のようなフルパスが必要です。 icon="C:\portal\images\box_b.gif" または icon="http://source-pc/imgs/art.gif" |
ポートレット・ヘッダーのポートレット・タイトルの左側に表示されるアイコンの位置を指定するURI。 |
|
ポートレットの一意の識別子として使用するテキスト文字列。次に例を示します。 id="newsBrief" |
コンポーネントの一意の識別子。 |
|
ポートレットのヘッダー・タイトルとして使用するテキスト文字列。次に例を示します。 text="Announcements …" |
ポートレットのヘッダー・タイトル。これを使用して、ポートレットの表示タイトルを設定します。 値を指定しない場合、ポートレットはポートレット・マークアップ(レスポンス)からそのタイトルを抽出します。
注意: 設計時に |
|
使用可能な領域をピクセルまたはパーセンテージで表した数値。
|
ポートレットの幅。
|
|
マネージドBeanの名前。次に例を示します。 binding="#{frameActionsBean.Binding}" Oracle JDeveloperでは、値列の「編集」アイコンをクリックして、マネージドBeanを選択し、関連するマネージドBeanプロパティを指定します。 |
コンポーネント・インスタンスを格納するためのバインディング参照。バインディング参照によって、ポートレットのインスタンスがマネージドBeanプロパティにバインドされます。マネージドBeanは、JSF |
|
部分的な更新をトリガーする1つ以上のコンポーネントのID。次に例を示します。 partialTriggers="_id1 componentID5" |
部分的な更新をトリガーするコンポーネントのID。ポートレットは、指定されたトリガー・コンポーネントをリスニングします。トリガー・コンポーネントの1つが更新のためのトリガー・イベントを受け取ると、ポートレットも自身の更新をリクエストします。
|
|
この必須属性値は、デフォルトでフレームワークによって設定されます。 |
|
|
ポートレットの簡単な説明として使用するテキスト文字列。次に例を示します。 shortDesc="Portlet for entering display text in place." |
ポートレットの短い説明。 |
|
この必須属性値は、デフォルトで設定されます。 |
ポートレットは、ポートレット・コンテナ(プロデューサ)のサポートを、ページ定義内のポートレット・バインディングの参照から取得します。この属性値はプログラムで設定され、修正も削除もできません。 |
|
|
ポートレットが配置されているページを指すポートレット・リンクは、単にリンクURLを使用してリロードするのではなく、ページそのものを強制的に送信します。デフォルトでは、このURL内のパラメータはページに対して使用可能になっていません。これらのパラメータは、リクエストを開始したポートレット内部でのみ使用可能です。
|
アクション属性は、編集モードへの切替えなど、モード切替えUIアクションのレンダリングを制御します。特定のモードでポートレットをレンダリングできるかどうかは、ポートレットでサポートされているモードおよびユーザー認可によって決まります。たとえば、isCustomizeModeAvailable
属性がtrue
に設定されていても、そのアクションがポートレットでサポートされていなければ、この属性設定はポートレットに影響を与えません。
表4-2に示すアクション属性は、true
またはfalse
に評価される値バインディング式です。
true
は、その名前のモードでポートレットをレンダリングできることを意味します。
false
は、その名前のモードでポートレットをレンダリングできないことを意味します。
表4-2 adfp:portletタグのアクション属性
属性 | デフォルト | 説明 |
---|---|---|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに情報コマンドをレンダリングします。ユーザーが情報を選択すると、ポートレットの情報モードが起動されます。 |
|
|
WebCenterアプリケーションで、JSR 168ポートレットの「処理」メニューに「構成」コマンドをレンダリングします。ユーザーが「構成」を選択すると、ポートレットの「構成」設定が開きます。 |
|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに「カスタマイズ」コマンドをレンダリングします。「カスタマイズ」モードでは、サイト管理者はポートレットのデフォルトのパーソナライズ・データを編集できます。 |
|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに「詳細」コマンドをレンダリングします。ユーザーが「詳細」を選択すると、ポートレットの「詳細」ページが開きます。 この属性は、Oracle PDK-Javaポートレットの「詳細ページを表示」モードにマップされます。標準ベースの(JSR 168)Javaポートレットでは、この属性は適用されません。 |
|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに「ヘルプ」コマンドをレンダリングします。ユーザーが「ヘルプ」を選択すると、ポートレットの「ヘルプ」ページが開きます。 |
|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに「最大化」コマンドをレンダリングします。ユーザーが「最大化」を選択すると、ポートレットが拡大されます。コンポーネントが最大化された場合、「処理」メニューの「リストア」コマンドを選択すると、ポートレットはデフォルト表示モードに戻ります。 「最大化」オプションは、 「最大化」アクションおよび「リストア」アクションの動作は、設計時と実行時では違いがあります。詳細は、4.3.3.3項「最大化、最小化、リストアおよび移動に関する必要な知識」を参照してください。 |
|
|
WebCenterアプリケーションで、ポートレット・ヘッダーに「最小化」コマンドをレンダリングします。ユーザーがアイコンをクリックすると、ポートレットがウィンドウの陰影のように閉じます。ユーザーがアイコンを再度クリックすると、ポートレットがリストアされます。 「最小化」アクションの動作は、設計時と実行時では違いがあります。詳細は、4.3.3.3項「最大化、最小化、リストアおよび移動に関する必要な知識」を参照してください。 |
|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに「移動」コマンドをレンダリングします。ユーザーは、このコマンドを選択してから、ページでの他のポートレットに対するポートレットの現在位置に応じて、サブコマンド「上へ移動」、「下へ移動」、「左へ移動」または「右へ移動」を選択します。 「移動」アクションの動作は、設計時と実行時では違いがあります。詳細は、4.3.3.3項「最大化、最小化、リストアおよび移動に関する必要な知識」を参照してください。 |
|
|
WebCenterアプリケーションで、ポートレットの「UI」メニューに「リフレッシュ」コマンドをレンダリングします。ユーザーが「リフレッシュ」コマンドを選択すると、ページ上の他のコンテンツに関係なくポートレットはリフレッシュ(つまり再描画)されます(これは、部分ページ・リフレッシュとも呼ばれます)。 |
|
|
WebCenterアプリケーションで、ポートレットの「処理」メニューに「パーソナライズ」コマンドをレンダリングします。ユーザーは「パーソナライズ」を選択して、ポートレットの個人ビューを変更します。このモードは、規格に基づいたJavaポートレット(JSR 168)ウィザードで「編集」を選択する操作に相当します。 「処理」メニューの「パーソナライズ」コマンドは、認証されたユーザー(つまり、ログインしているユーザー)にのみ表示されます。パブリック・ユーザーまたは認証されていないユーザーには表示されません。ユーザーがポートレット・ビューをパーソナライズできるようにするには、なんらかの形のアプリケーション・セキュリティを実装する必要があります。 ポートレットを作成する開発者が、アプリケーション用の完全なセキュリティ・モデルを作成せずに「パーソナライズ」モードをテストする場合は、10.6項「ポートレット・パーソナライズをテストするための基本認証の構成」を参照してください。 注意: パーソナライズ設定が一般的に行われるのは、ポートレット・タイトルです。設計時にポートレット・タイトルを設定するには、 |
|
|
ポートレット・コンテンツをプレビューする手段を提供します。このモードはWebCenterアプリケーション内での特定の用途はありませんが、Oracle Application Server Portal(OracleAS Portal)のポートレット・リポジトリ内で使用され、拡大鏡アイコンとしてレンダリングされます。ユーザーはこのアイコンをクリックして、ポートレットをプレビューします。 |
|
|
WebCenterアプリケーション内で、JSR 168ポートレットの「処理」メニューに「印刷」コマンドをレンダリングします。このコマンドを使用すると、ポートレットのプリンタ・フレンドリー・バージョンが表示されます。 |
|
|
ポートレットの生成済相互作用(「最大化」、「移動」および「最小化」)を、ユーザーに公開するために選択可能にします。この属性が カスタム相互作用は、この属性設定の影響を受けません。 |
開発環境のニーズに対応するため、ShowDetailFrame
コンポーネントとportlet
コンポーネントの「最小化」、「最大化」、「リストア」および「移動」のアクションの動作は設計時と実行時では異なります。設計時には、これらのアクションは1つのOC4Jセッション内では永続しますが、セッションを越えて永続することはありません(セッションとは、OC4Jの開始から停止までの時間を表します)。実行時には、これらのアクションは、1つのOC4Jセッション内でも、セッションを越えても永続します。
この違いは、設計時におけるアプリケーション・ページの自動リセットを可能にするために取り入れられたものです。
実行時にセッションを越えて永続する必要がない場合は、アプリケーションのweb.xml
ファイルを変更するだけで、この永続性を無効化できます。アプリケーションのweb.xml
ファイル内で、次のパラメータ設定を見つけます(例4-3)。
例4-3 アプリケーションのweb.xmlファイル内の永続性設定
<context-param>
<param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
<param-value>oracle.adfinternal.view.faces.change.HybridChangeManager</param-value>
</context-param>
これを次のコードで置き換えます(例4-4)。
例4-4 アプリケーションのweb.xmlファイルでの実行時永続性の無効化
<context-param>
<param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
<param-value>oracle.adf.view.faces.change.SessionChangeManager</param-value>
</context-param>
アプリケーションにセキュリティが実装されている場合、「最小化」、「最大化」、「リストア」および「移動」のアクションは、カスタマイズ権限を持つユーザーのみに表示されます。これらのアクションは、パーソナライズ権限を持つユーザーには表示されません。カスタマイズ権限を持つユーザーは、設計時に次の手順を実行することにより、これらのアクションの効果をテストできます。
Oracle JDeveloperの埋込みOC4Jを使用して、アプリケーション・ページを実行します。
管理者としてログインします。
ポートレットを最大化します。ポートレットを各所に移動します。関連するアクション・コマンドを使用して、自由に変更を行います。
いったんログアウトしてからユーザーとしてログインし、アクションの効果を確認します。
表4-3に、adfp:portletタグのコア属性を示します。
表4-3 adfp:portletタグのコア属性
属性 | 値 | 説明 |
---|---|---|
CSSスタイルの名前。 たとえば、ポートレット境界線を無効にするには、次のコードを contentInlineStyle="border-style:none;" |
ポートレットに適用するCSSスタイル。このノードを開いて、特定のポートレット・インスタンスの特定のスタイル要素にスタイルを指定します。ここに入力した値は、特定のポートレット・インスタンスのCSSまたはスキンで指定されているスタイルより優先されます。詳細は、9.4項「プロパティ・インスペクタを介したスタイルの定義」を参照してください。 |
|
CSSスタイルの名前。 |
ポートレットに適用するCSSスタイル。このノードを開いて、特定のポートレット・インスタンスの特定のスタイル要素にスタイルを指定します。ここに入力した値は、特定のポートレット・インスタンスのCSSまたはスキンで指定されているスタイルより優先されます。詳細は、9.4項「プロパティ・インスペクタを介したスタイルの定義」を参照してください。 |
|
|
ポートレットがレンダリングされるかどうかを指定します。 デフォルト値は |
表4-4に、adfp:portletタグの表示モード属性を示します。
表4-4 adfp:portletタグの表示モード属性
属性 | 値 | 説明 |
---|---|---|
|
ポートレット・モードが変更されると、ポートレットが配置されているページではない新しいページに新しいモードがレンダリングされる(
デフォルト値は |
|
|
アプリケーション・ページ上の各ポートレットに異なるルック・アンド・フィールを適用する手段を提供します。デフォルト・スキン(Oracle、MinimalおよびSimple)とカスタム・スキンには、3つのバージョンのスタイル・セレクタ(light、mediumおよびdark)が含まれます。backgroundプロパティに指定された値に応じて、スキンは関連するスタイルまたはアイコンのセレクタ・バージョンを適用します。 詳細は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。 |
|
|
ポートレット・ヘッダーが表示されるかどうかを指定します。
デフォルト値は |
|
|
ポートレットのデフォルトの状態。次のうちから選択します。
|
|
|
指定された幅と高さにコンテンツが収まりきらない場合、スクロールバーが表示されます(
デフォルトは |
|
|
デフォルトは 詳細は、4.3.3.6項「iframesタグおよびformタグ」を参照してください。 |
JavaServer Facesページによって生成されたHTMLソースには、form
タグが含まれます。HTMLではネストされたform
タグは許可されないため、ポートレットは同じページ上に新しいフォームを開くことができません。
この問題を回避する最善の方法は、ポートレットをiframe
の内部にレンダリングすることです。このためには、renderPortletInIFrame
属性をtrue
またはauto
に設定します。true
の値を設定すると、常にiframe
が使用されます。auto
の値を設定すると、Oracle WebCenter Frameworkによって、ポートレットにform
要素が含まれているかどうかが検出され、含まれている場合は、ポートレットがiframe
内にレンダリングされます。
たとえば、Preconfigured OC4JのWSRPサンプル・プロデューサに付属のアップロード・ポートレットが正常に稼働するためには、iframe
が必要です。renderPortletInIFrame
をtrue
またはauto
に設定することによってこのポートレットをiframe
内に配置しない場合、ポートレットは機能しません。
別の方法として、ポートレットのマークアップ内にform要素が含まれないようにポートレットを作成しなおすこともできますが、このアプローチは面倒なうえ、どの場合にでも適用できるものではありません。
ポートレットをコピーする場合、ポートレットとそのコピーは同じアプリケーション内に置く必要があります。たとえば、同じアプリケーション内の異なるページ間で、同じページ上の異なる場所間で、または同じアプリケーション内の異なるプロジェクト間で、ポートレットをコピーできます。コピーは、同じポートレット・インスタンスへの参照です。つまり、ポートレット(オリジナルまたはコピー)のインスタンスに行ったカスタマイズまたはパーソナライズは、他のすべてのインスタンスに影響を与えます。
ポートレットをコピーするには、ポートレットのviewタグをコピーして貼り付けるだけでは不十分です。アプリケーション・ページのソースからポートレット関連のエントリをコピーする必要があります。また、ページ定義ファイルからポートレット関連のエントリをコピーし、重複するポートレット・バインディング情報を削除するか、コピーしたポートレットのバインディングBean内に新しいメソッドを作成する必要があります。
ポートレットをコピーする場合、ターゲット・ページはOracle ADF Facesページにする必要があります。ターゲット・ページ上に前から存在しているコードはすべて、それを反映する必要があります。このための操作は、非常に簡単です。Oracle JDeveloperによって新しいJSFページが作成されると、そのページには純粋なJSFタグが含まれます。Oracle ADF Facesコンポーネントを初めてページ上にドロップすると、自動的にタグがOracle ADF Facesタグに更新されます。たとえば、<html>
タグは<afh:html>
になり、<head>
タグと<title="title">
タグは<afh:head title="title">
になります。このように、ターゲット・ページをOracle ADF Facesページに確実に変換する簡単な方法は、ターゲット・ページ上にOracle ADF Facesコンポーネントを配置することです。これによって、必要なコード変換が自動的に実行されます。
この項では、異なるアプリケーション・ページ間でポートレットをコピーする方法と、同じページ上の異なるパーツ間でポートレットをコピーする方法を説明します。この項の内容は、次のとおりです。
同じページ上にポートレットをコピーする場合、ページのリソース全部が両方のポートレット・インスタンスに対して使用可能であるため、ページのページ定義ファイルからポートレット関連情報をコピーする必要はありません。ポートレットのviewタグをコピーして貼り付け、一意の識別子をコピーに割り当てるだけです。
ポートレットを同じページ上にコピーして配置する手順は、次のとおりです。
Oracle JDeveloperで、コピー元のポートレットが配置されているページの「ソース」ビューに移動します。
ポートレット・タグをコピーします(例4-5)。
例4-5 ポートレットをコピーする際にコピーするコード部分
<f:view> <afh:html binding="#{backing_portlet_page.html1}" id="html1"> <afh:head title="portlet_page" binding="#{backing_portlet_page.head1}" id="head1"> <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"/> </afh:head> <afh:body binding="#{backing_portlet_page.body1}" id="body1"> <h:form binding="#{backing_portlet_page.form1}" id="form1"> <adfp:portlet value="#{bindings.portlet1}" portletType="/oracle/adf/portlet/ pdksampleproducer_1153245807295/applicationPortlets/ Portlet2_82d49b79_010c_1000_8006_82235ffc4e2b" binding="#{backing_portlet_page.portlet1}" id="portlet1" isCustomModesAvailable="true"/> </h:form> </afh:body> </afh:html> </f:view>
コピーしたコード部分をページの「ソース」ビューに貼り付けます。
コピーのID
属性に一意の値を指定します(例4-6)。
例4-6 ポートレットIDの変更
<adfp:portlet value="#{bindings.portlet1}"
portletType="/oracle/adf/portlet/
pdksampleproducer_1153245807295/applicationPortlets/
Portlet2_82d49b79_010c_1000_8006_82235ffc4e2b"
binding="#{backing_portlet_page.portlet1}"
id="portlet2"
isCustomModesAvailable="true"/>
注意: 1つのページ上で、各ポートレットは一意のIDを持つ必要があります。 |
ページ・ソースで、たとえば次のように、コピーしたポートレットのadfp:portlet
タグにバインディング属性が含まれるとします。
binding="#{backing_untitled2.portlet1}"
この場合は、このバインディングを削除するか、このマネージドBeanのマネージドBeanクラスを開いてfaces-config.xml
ファイル内に新しいメソッドを定義することによって、バインディングBean内に新しいメソッドを作成します。
たとえば、portlet1をコピーし、貼り付けられたコピーがportet2になった場合は、faces-config.xml
ファイル内で例4-7のように指定します。
アプリケーション内の異なるページ間でポートレットをコピーする場合は、ソース・ページのページ定義ファイルからポートレット関連のコードをコピーする必要もあります。この項では、異なるアプリケーション・ページ間でのコピーと、異なるアプリケーション・プロジェクト間でのコピーに関連する手順を示します。
異なるアプリケーション・ページ間または異なるプロジェクト間でポートレットをコピーする手順は、次のとおりです。
Oracle JDeveloperで、コピー元のポートレットが配置されているページの「ソース」ビューに移動します。
ポートレット・タグをコピーします(例4-8)。
ターゲット・ページにOracle ADF Facesコンポーネントが含まれていない場合は、コンテナ・オブジェクト(つまり、ネストされたポートレット・タグを囲んでいるタグ)でOracle ADFタグが使用されていることを確認します。
例4-8 ポートレットをコピーする際にコピーするソース・ページのコード部分
<f:view> <afh:html binding="#{backing_portlet_page.html1}" id="html1"> <afh:head title="portlet_page" binding="#{backing_portlet_page.head1}" id="head1"> <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"/> </afh:head> <afh:body binding="#{backing_portlet_page.body1}" id="body1"> <h:form binding="#{backing_portlet_page.form1}" id="form1"> <adfp:portlet value="#{bindings.portlet1}" portletType="/oracle/adf/portlet/ pdksampleproducer_1153245807295/applicationPortlets/ Portlet2_82d49b79_010c_1000_8006_82235ffc4e2b" binding="#{backing_portlet_page.portlet1}" id="portlet1" isCustomModesAvailable="true"/> </h:form> </afh:body> </afh:html> </f:view>
注意: ポートレットは、Oracle ADF Facesページにしか配置できません。詳細は、この手順の前置き説明の段落を参照してください。 |
ポートレットのコピー先のアプリケーション・ページ(ターゲット・ページ)に移動します。
コピーしたコードをターゲット・ページの「ソース」ビューに貼り付けます。
ポートレットのコピー元のページ(ソース・ページ)のページ定義ファイルに移動します。
ソース・ページを右クリックし、ポップアップ・メニューから「ページ定義に移動」を選択します。
ソース・ページのページ定義ファイルからポートレット・バインディングをコピーします(例4-9)。
例4-9 ページ定義ファイルからコピーするコード部分
<portlet id="portlet1" portletInstance="/oracle/adf/portlet/ pdksampleproducer_1153245807295/applicationPortlets/Portlet2_82d49b79_ 010c_1000_8006_82235ffc4e2b" class="oracle.adf.model.portlet.binding.PortletBinding" xmlns="http://xmlns.oracle.com/portlet/bindings"/>
注意: コピーするポートレットにパラメータが含まれる場合は、必ず、コピーしたポートレットのポートレット・パラメータと、ポートレット・パラメータに関連付けられているページ変数もコピーに含めてください。 |
ターゲット・ページのページ定義ファイルに移動します。
必要な場合、ページ定義ファイルを作成します。このためには、ターゲット・ページを右クリックし、「ページ定義に移動」を選択します。ページ定義ファイルが存在しない場合は、作成するよう要求されます。
ソースからコピーしたポートレット・バインディングを(関連するポートレット・パラメータ、およびこれらのパラメータに関連付けられたページ変数とともに)貼り付けます。
アプリケーション・ページからポートレットを削除する場合、そのポートレットにパラメータが含まれていれば、アプリケーション・ページのページ定義ファイルから、これらのパラメータに関連付けられたページ変数も削除する必要があります。
ページからポートレットを削除し、ページ定義ファイルから関連するページ変数を削除する手順は、次のとおりです。
アプリケーション・ナビゲータで、関連するアプリケーション・ページ(jspx
ファイル)にナビゲートし、このページを開きます。
Applications <ApplicationName> <ProjectName> WEB Content <ApplicationPage>.jspx
「設計」ビューで、削除するポートレットを右クリックし、ポップアップ・メニューから「削除」を選択します。
これによって、ページからポートレットが削除され、ページのページ定義ファイルからポートレット・バインディングが削除されます。
ポートレットに変数が含まれている場合は、エディタでjspx
ファイルを右クリックし、ポップアップ・メニューから「ページ定義に移動」を選択します。
ページ定義ファイルが「エディタ」ペイン内に開きます。
削除したポートレットに関連付けられているページ変数を見つけて、ページ定義ファイルから削除します。
たとえば、portlet1を削除した場合は、例4-10で強調表示された変数を削除します。
例4-10 ページ定義ファイルからのポートレット関連ページ変数の削除
<?xml version="1.0" encoding="UTF-8" ?> <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel" version="10.1.3.38.97" id="untitled1PageDef" Package="project1.pageDefs"> <parameters/> <executables> <variableIterator id="variables"> <variable Name="portlet1_param1" Type="java.lang.Object"/> <variable Name="portlet1_param2" Type="java.lang.Object"/> <variable Name="portlet2_param1" Type="java.lang.Object"/> <variable Name="portlet2_param2" Type="java.lang.Object"/> </variableIterator> <portlet id="portlet2" portletInstance="/oracle/adf/portlet/ PdkPortletProducer2_1154100666247/applicationPortlets/ Portlet1_b5e49696_010c_1000_8008_8c5707ef9c4f" class="oracle.adf.model.portlet.binding.PortletBinding" xmlns="http://xmlns.oracle.com/portlet/bindings"> <parameters> <parameter name="param1" pageVariable="portlet2_param1"/> <parameter name="param2" pageVariable="portlet2_param2"/> </parameters> </portlet> </executables> <bindings/> </pageDefinition>
「ファイル」メニューから、「すべて保存」を選択します。
カスタマイズ可能コンポーネントは、JSFページのカスタマイズを可能にするJSFコンポーネントです。これらのコンポーネントを使用することにより、ページ上のコンポーネントの最小化/最大化、表示/非表示の切替え、または移動を行うことができます。Oracle JDeveloperでは、コンポーネント・パレットおよびプロパティ・インスペクタを介してカスタマイズ可能コンポーネントを追加および変更します。
この項では、カスタマイズ可能コンポーネントをページに追加し、PanelCustomizable
またはShowDetailFrame
コンポーネント内にポートレットおよびコンテンツを含めるための手順を示します。
PanelCustomizable
コンポーネントをJSF JSP(*.jspx
ファイル)に追加する手順は、次のとおりです。
Oracle JDeveloperのアプリケーション・ナビゲータで、*.jspx
ファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。
*.jspx
ファイルは、アプリケーション・ナビゲータで次のプロジェクトの下にあります。
Applications <ApplicationName> <ProjectName> Web Content
「構造」ペインで、PanelCustomizable
コンポーネントを追加するコンポーネントを選択します。
コンポーネント・パレットで、「カスタマイズ可能コンポーネント・コア」を選択します。
「PanelCustomizable」をクリックします。PanelCustomizable
コンポーネントが、ページ・エディタに表示されます。「構造」ペインでは、このコンポーネントは、手順2で選択したコンポーネントの下に表示されます。
プロパティ・インスペクタで、このコンポーネントの属性を適宜設定します。
表4-5に、PanelCustomizable
コンポーネントの属性を示します。
表4-5 PanelCustomizableコンポーネントの属性
属性 | 値 | 説明 |
---|---|---|
一般的な属性: |
||
Background |
デフォルト: |
スキンCSSとともに使用され、この |
DisplayHeader |
デフォルト: |
注意: ヘッダーの機能の1つは、 |
ExpansionMode |
デフォルト: |
最小化モードでは、ヘッダーのみが表示されます。 最大化モードでは、コンポーネントが、親ルート(階層内の最上位に表示されているコンポーネント)に割り当てられた領域いっぱいに表示されます。親ルートは、 |
Height |
使用可能な領域をピクセル(px)またはパーセンテージ(%)で表した数値。 次に例を示します。
|
この属性設定はオプションです。この属性に値を指定しない場合、レイアウトでは子コンポーネントの高さで折り返されます。 注意: |
Icon |
イメージのURIを入力します。次に例を示します。 icon="coffee.png" この例に示したURIはドキュメント・ルートに格納されているため、フルパスは必要ありません。ドキュメント・ルートに格納されていないイメージには、たとえば次のようなフルパスが必要です。 icon="c:\portal\images\box_b.gif" または icon="http://source-pc/images/accessability.gif" |
|
Id |
id="weather" |
ページ上のコンポーネントの一意の識別子。 |
Layout |
デフォルト: |
|
Text |
text="Forecast for the Day" |
|
Width |
使用可能な領域をピクセル(px)またはパーセンテージ(%)で表した数値。 次に例を示します。
|
注意: |
DisclosureListener |
タイプjavax.faces.el.MethodBindingのメソッド参照を指定します。 |
開示リスナーへのメソッド参照。 |
DisplayScrollbar |
デフォルト: |
|
ShortDesc |
テキスト文字列を入力します。 |
このコンポーネントの短い説明。 |
コア属性: |
||
ContentInlineStyle |
CSSスタイルの名前。 |
|
InlineStyle |
CSSスタイルの名前。 |
|
Rendered |
デフォルト: |
コンポーネントがレンダリングされるかどうかを指定します。 |
StyleClass |
CSSスタイル・クラスの名前。 |
このコンポーネントのCSSスタイル・クラス。 |
アクション属性: |
||
IsEditable |
デフォルト: |
「処理」メニューに、子コンポーネントを編集するための「編集」コマンドがレンダリングされるかどうかを指定します。 注意: |
IsHelpAvailable |
デフォルト: |
「処理」メニューに、子コンポーネントに関するヘルプにアクセスするための「ヘルプ」コマンドがレンダリングされるかどうかを指定します。 注意: |
IsMaximizable |
デフォルト: |
|
IsMinimizable |
デフォルト: |
|
IsMovable |
デフォルト: |
|
IsSeededInteractionAvailable |
デフォルト: |
注意: 各生成済相互作用の表示は、それぞれの属性設定により制御されます。 |
IsShowContentEnabled |
デフォルト: |
「処理」メニューで、ユーザーが |
これらの属性を設定するときに選択可能な「バインド」オプションを使用すると、PanelCustomizable
インスタンスをマネージドBeanプロパティにバインドできます。
作業を保存します。
注意: PanelCustomizable コンポーネント内の既存のコンポーネントを折り返すには、Oracle JDeveloperの構造ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「囲む」を選択します。「囲む」ダイアログ・ボックスで、リストから「カスタマイズ可能コンポーネント・コア」を選択します。コンポーネントのリストから「PanelCustomizable」 を選択します。 |
ShowDetailFrame
コンポーネントをJSF JSP(*.jspx
ファイル)に追加する手順は、次のとおりです。
Oracle JDeveloperのアプリケーション・ナビゲータで、*.jspx
ファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。
*.jspx
ファイルは、アプリケーション・ナビゲータで次のプロジェクトの下にあります。
Applications <ApplicationName> <ProjectName> Web Content
「構造」ペインで、ShowDetailFrame
コンポーネントを追加するコンポーネントを選択します。
コンポーネント・パレットで、「カスタマイズ可能コンポーネント・コア」を選択します。
「ShowDetailFrame」をクリックします。ShowDetailFrame
コンポーネントが、ページ・エディタに表示されます。「構造」ペインでは、このコンポーネントは、手順2で選択したコンポーネントの下に表示されます。
プロパティ・インスペクタで、このコンポーネントの属性値を適宜設定します。
表4-6に、ShowDetailFrame
コンポーネントの属性を示します。
表4-6 ShowDetailFrameコンポーネントの属性
属性 | タイプ | 説明 |
---|---|---|
一般的な属性: |
||
Background |
デフォルト: |
スキンCSSとともに使用され、この |
DisplayHeader |
デフォルト: |
注意: コンポーネント上にいくつかのアクションを公開した場合、ヘッダー表示が無効になっていれば、コンポーネント領域の上にマウスを置くとツールバーが表示されます。ツールバーには、選択可能なオプションのメニューを表示するドロップダウン・アイコンが含まれます。このツールバーは、コンポーネント上に選択可能なアクションがある場合にのみ表示されます。 また、ツールバー表示は |
ExpansionMode |
デフォルト: |
最小化モードでは、ヘッダーのみが表示されます。 最大化モードでは、コンポーネントが、親ルート(階層内の最上位に表示されているコンポーネント)に割り当てられた領域いっぱいに表示されます。親ルートは、 |
Icon |
イメージのURIを入力します。次に例を示します。 icon="coffee.png" この例に示したURIはドキュメント・ルートに格納されているため、フルパスは必要ありません。ドキュメント・ルートに格納されていないイメージには、たとえば次のようなフルパスが必要です。 icon="c:\portal\images\box_b.gif" または icon="http://source-pc/images/accessability.gif" |
|
Id |
ShowDetailFrameの一意の識別子として使用するテキスト文字列を入力します。次に例を示します。 id="weather" |
ページ上のコンポーネントの一意の識別子。 |
Text |
ShowDetailFrameのヘッダー・タイトルとして使用するテキスト文字列を入力します。次に例を示します。 text="Forecast for the Day" |
|
AttributeChangeListener |
タイプjavax.faces.el.MethodBindingのメソッド参照を指定します。 |
属性変更リスナーへのメソッド参照。 属性値が変更されると、イベントが起動されます。 |
DisclosureListener |
タイプjavax.faces.el.MethodBindingのメソッド参照を指定します。 |
開示リスナーへのメソッド参照。 開示状態が変更されると、開示イベントが起動されます。 |
ShortDesc |
テキスト文字列を入力します。 |
このコンポーネントの短い説明。 |
コア属性: |
||
ContentInlineStyle |
CSSスタイルの名前。 |
|
InlineStyle |
CSSスタイルの名前。 |
この属性内のCCCスタイルを使用して、 |
Rendered |
デフォルト: |
コンポーネントがレンダリングされるかどうかを指定します。 |
StyleClass |
CSSスタイル・クラスの名前。 |
このコンポーネントのCSSスタイル・クラス。 |
アクション属性: |
||
IsEditable |
デフォルト: |
子コンポーネントを編集するための「編集」コマンドがメニューにレンダリングされるかどうかを指定します。 注意: |
IsHelpAvailable |
デフォルト: |
子コンポーネントに関するヘルプにアクセスするための「ヘルプ」コマンドがメニューにレンダリングされるかどうかを指定します。 注意: |
IsMaximizable |
デフォルト: |
|
IsMinimizable |
デフォルト: |
|
IsMovable |
デフォルト: |
|
IsSeededInteractionAvailable |
デフォルト: |
注意: 各生成済相互作用の表示は、それぞれの属性設定により制御されます。 |
これらの属性を設定するときに選択可能な「バインド」オプションを使用すると、ShowDetailFrame
インスタンスをマネージドBeanプロパティにバインドできます。
作業を保存します。
注意: ShowDetailFrame コンポーネント内の既存のコンポーネントを折り返すには、Oracle JDeveloperの構造ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「囲む」を選択します。「囲む」ダイアログ・ボックスで、リストから「カスタマイズ可能コンポーネント・コア」を選択します。コンポーネントのリストから「ShowDetailFrame」 を選択します。 |
ShowDetailFrame
コンポーネントにカスタム・アクションを定義して表示するには、ShowDetailFrame
ファセットを使用します。表4-7に、ShowDetailFrame
コンポーネントでサポートされるカスタム・アクションを表示するための追加のフックを提供するファセットを示します。
表4-7 ShowDetailFrameファセット
ファセット | 説明 |
---|---|
editAction |
カスタム編集アクション・ファセット。 |
helpAction |
カスタム・ヘルプ・アクション・ファセット。 |
titleBarAction |
アクションを |
additionalActions |
|
Oracle JDeveloperでは、構造ウィンドウに、ShowDetailFrame
コンポーネントに使用可能なすべてのファセットが表示されます。ただし、アクティブになるのは、UIコンポーネントが含まれるファセットのみです。
ShowDetailFrame
ファセットを追加する手順は、次のとおりです。
構造ウィンドウで「ShowDetailFrame」
コンポーネントを右クリックし、「ファセット - 詳細フレームを表示」を選択します。
このオプションの右側にある矢印をクリックします。
サポートされているファセットのリストから、追加するファセットを選択します。
そのファセットのf:facet
要素がページに挿入されます。
注意: ファセット名の隣のチェックマークは、そのファセットのf:facet 要素がすでにページに挿入されていることを示しますが、その中に子コンポーネントは含まれる場合も含まれない場合もあります。 |
Oracle JDeveloperユーザー・インタフェース内のコンポーネント・パレットには、使用可能なすべてのコンポーネント・タグ・ライブラリがリストされます。ライブラリを選択し、そのライブラリ内のコンポーネントを*.jspx
ページにドラッグ・アンド・ドロップします。
コンポーネントをページにドラッグ・アンド・ドロップする方法の詳細は、『Oracle Application Development Framework開発者ガイド』を参照してください。
すべてのカスタマイズ可能コンポーネントのルック・アンド・フィールドは、スキンCSSファイル内のカスタマイズ可能コンポーネント・セレクタCSS定義を変更することによって変更できます。様々なスタイル・セレクタおよびアイコン・セレクタが、カスタマイズ可能コンポーネントのスキンを設定するために使用可能です。使用可能なセレクタのリスト、Oracle ADF Facesスキンの概要、カスタム・スキンの作成方法、およびスキンを使用するためのアプリケーションの構成方法の詳細は、第9章「カスタマイズ可能コア・コンポーネントのスタイルの定義および適用」を参照してください。
PanelCustomizable
およびShowDetailFrame
コンポーネントを使用すると、最小化、最大化、移動などの様々なアクションを子コンポーネントに対して実行できます。カスタマイズ可能コンポーネントに対するアクションは、デフォルトでは保護されていません。あらゆるタイプのユーザーにすべてのアクションを公開することは望ましくないので、これらのコンポーネントに対して適宜セキュリティを定義することをお薦めします。
カスタマイズ可能コンポーネントに対するアクションに様々なレベルでセキュリティを実装するには、10.9.2項「カスタマイズ可能コンポーネントのセキュリティ」を参照してください。
WebCenterアプリケーションのインタラクティブ性を高める1つの方法として、関連するコンポーネントをリンクして、これらのコンテンツをコンテキストに即して同期させる方法があります。たとえば、1つのページに2つの株式ポートレットがあり、一方は株価のデータを提供し、もう一方は株式のヘッドライン・ニュース・アイテムを提供するとします。どちらのポートレットも株式ティッカー・シンボルに基づいているため、株価ポートレット内のティッカー・シンボルが変更されると、株式ヘッドライン・ポートレットはその変更を取り込んで、同じティッカー・シンボルに関連するヘッドラインを使用して自動的にリフレッシュする、という動作は筋が通っています。
このような種類の同期は、パラメータを介して実装できます。表4-8に、このタイプのコンテキストに基づく動作と関連付けることのできるコンポーネントのタイプをまとめます。
表4-8 同期可能なコンポーネント
コンポーネント開始パラメータ | コンポーネント読取りパラメータの値 | コメント |
---|---|---|
Oracle ADF Facesコンポーネント |
Oracle ADF Facesコンポーネント |
Facesコンポーネントをリンクする方法の詳細は、『Oracle Application Development Framework開発者ガイド』を参照してください。 |
WSRPポートレット |
オプションやリストなどのFacesコンポーネントを使用して、ポートレットの表示コンテンツを変更できます。 |
|
PDK-Javaポートレット |
オプションやリストなどのFacesコンポーネントを使用して、ポートレットの表示コンテンツを変更できます。 |
|
WSRP 2.0ポートレット脚注1 |
Oracle ADF Facesコンポーネント |
標準ベースのポートレットは、Facesコンポーネントにパラメータを渡すことができます。 |
WSRP 2.0ポートレット |
標準ベースのポートレットから標準ベースのポートレットにパラメータを渡すことができます。 |
|
PDK-Javaポートレット |
標準ベースのポートレットからPDK-Javaベースのポートレットにパラメータを渡すことができます。 |
|
PDK-Javaポートレット |
Oracle ADF Facesコンポーネント |
PDK-Javaポートレットは、Facesコンポーネントにパラメータを渡すことができます。 |
WSRPポートレット |
PDK-Javaポートレットから標準ベースのポートレットにパラメータを渡すことができます。 |
|
PDK-Javaポートレット |
PDK-JavaベースのポートレットからPDK-Javaベースのポートレットにパラメータを渡すことができます。 |
|
Oracle ADF Facesページ変数/パラメータ |
Oracle ADF Facesコンポーネント |
ページ上のFacesコンポーネントによってパラメータが取り込まれるように、ページ・レベルでパラメータを設定できます。 |
WSRPポートレット |
標準ベースのポートレットは、ページ・パラメータを取り込むことができます。 |
|
PDK-Javaポートレット |
PDK-Javaポートレットは、ページ・パラメータを取り込むことができます。 |
脚注1 ナビゲーション・パラメータはWSRP 2.0でのみサポートされることに注意してください。WSRP 1.0には、ナビゲーション・パラメータのサポートはありません。
ページ変数を定義すると、そのページ上のポートレットは実行時にページ変数を読み取って、それに応じて動作を変更できます。ポートレット・パラメータにリンク可能なページ変数を設定することで、ページ上のポートレットをコンテキストに順応させることができます。たとえば、ページに顧客識別子変数を含めるとします。この場合、ページ上の関連するポートレットは、この値を使用して、表示する内容を決定します。顧客詳細ポートレットは、この値を使用して、表示する顧客情報を決定します。
図4-3に、ページ・パラメータから顧客識別子番号(320)を取得するポートレットを示します。
ポートレットをページにリンクする方法
ポートレットの作成時にパブリック・パラメータを定義した場合、ポートレットをページ上にドロップすると、ページ変数がパラメータに対して作成されます。
ポートレットをページ上にドロップしたときにパラメータが実装されることを確認する手順は、次のとおりです。
注意: 以降のシナリオではOmniPortletを使用していますが、パラメータおよびページ変数に関連する基本原則は、どのポートレットでも同じです。 |
アプリケーション・ナビゲータで、ページをダブルクリックして開きます。ページが編集用に開き、「構造」ペインにページ構造が表示されます。
OmniPortletポートレットをページに追加します。4.3.2項「ページへのポートレットの追加」を参照してください。OmniPortletでPDK-Javaプロデューサを使用するため、プロデューサをアプリケーションに登録する必要があることに注意してください。PDK-Javaプロデューサの登録の詳細は、4.3.1.2項「PDK-Javaポートレット・プロデューサの登録」を参照してください。
「構造」ペインに表示されたツリー内の任意の場所を右クリックし、ポップアップ・メニューで「ページ定義に移動」を選択します。「構造」ペインにページ定義ツリーが表示され、ページ定義XMLが編集用に開きます。
ページ定義XMLでは、<variableIterator>
タグ内に5つのデフォルトのOmniPortletページ変数があります。また、<portlet>
タグの内部からページ変数への参照があります。例4-11に、OmniPortletが最初にページにドロップされた後のサンプル・ページ定義を示します。
例4-11 OmniPortletが含まれるPageDef.xmlファイル
<?xml version="1.0" encoding="UTF-8" ?> <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel" version="10.1.3.39.0" id="SRDemoDashboardPageDef" Package="view.pageDefs"> <parameters/> <executables> <variableIterator id="variables"> <variable Name="portlet1_Param1" Type="java.lang.Object"/> <variable Name="portlet1_Param2" Type="java.lang.Object"/> <variable Name="portlet1_Param3" Type="java.lang.Object"/> <variable Name="portlet1_Param4" Type="java.lang.Object"/> <variable Name="portlet1_Param5" Type="java.lang.Object"/> </variableIterator> <portlet id="portlet1" portletInstance="/oracle/adf/portlet/OmniPortletProducer_1154018261057/ ap/Portlet100_b0da57c9_010c_1000_8003_82235f50a408" class="oracle.adf.model.portlet.binding.PortletBinding" xmlns="http://xmlns.oracle.com/portlet/bindings"> <parameters> <parameter name="Param1" pageVariable="portlet1_Param1"/> <parameter name="Param2" pageVariable="portlet1_Param2"/> <parameter name="Param3" pageVariable="portlet1_Param3"/> <parameter name="Param4" pageVariable="portlet1_Param4"/> <parameter name="Param5" pageVariable="portlet1_Param5"/> </parameters> </portlet> </executables> </pageDefinition>
ページがURLを介してパラメータ値を取得するためには、ページ・レベル・パラメータを追加する必要があります。「構造」ペインで、「parameters」ノードを右クリックし、ポップアップ・メニューから「parametersの中に挿入」、「パラメータ」の順に選択します。パラメータの挿入・ダイアログ・ボックスが表示されます。
custID
のIDを入力し、${param.customerID}
の値を入力します。「OK」をクリックします。ページ定義のXMLは、次のようになります。
<parameters> <parameter id="custID" value="${param.customerID}"/> </parameters>
アプリケーション・ナビゲータで、ページを右クリックし、ポップアップ・メニューから「実行」を選択します。
ページが表示されたら、OmniPortletで「定義」をクリックします。
「SQL」を選択し、「次へ」をクリックします。
「文」領域で、次のSELECT文を入力します。WHERE句内のParam1
への参照に注意してください。
select * from USERS where USER_ID = ##Param1##
「接続」セクションで、SRDemoスキーマを含むデータベースへの接続を選択または作成します。
「ポートレット・パラメータ」で、Param1
の「デフォルト値」として320
を入力し、「パーソナライズ可能」を選択します。
「次へ」をクリックします。
この場合はフィルタは必要ないので、「次へ」をクリックします。
「ヘッダー・テキスト」で、次のように入力します。
Select a customer from the Most Active Customers List to view the customer details.
「レイアウト・スタイル」に「HTML」を選択し、「次へ」をクリックします。
「非繰返しヘッダー・セクション」で、デフォルトのHTMLを削除します。
「繰返しセクション」内のHTMLを次のコードで置き換えます。
<TABLE BORDER='0' WIDTH="100%"> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>ID</TD> <TD>##USER_ID##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>Email</TD> <TD>##EMAIL##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>First Name</TD> <TD>##FIRST_NAME##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>Last Name</TD> <TD>##LAST_NAME##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>Street</TD> <TD>##STREET_ADDRESS##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>City</TD> <TD>##CITY##</TD> </TR> <TR CLASS='PortletText1'> <TD CLASS='PortletHeading1'>State</TD> <TD>##STATE_PROVINCE##</TD> </TR>
デフォルトの「非繰返しフッター・セクション」をそのままにして、「終了」をクリックします。
Oracle JDeveloperに戻り、「構造」ペインでページ変数「portlet1_Param1」
をクリックします。プロパティ・インスペクタで、このページ変数のプロパティが表示されるようになります。
プロパティ・インスペクタで、DefaultValueプロパティの隣をクリックします。プロパティの値を編集するためのボタンが表示されます。この「編集」ボタンをクリックします。
「DefaultValue」ダイアログ・ボックスで、「ADFバインディング」ノードを開き、その下の「バインディング」ノードを開きます。portlet1_Param1
のバインディングが表示されます。
右矢印(>)を使用して変数を「式」に移動し、ボタンを使用して演算子を適用できます。作成した式は、次のようになります。
${(bindings.custID == null || bindings.custID == '') ? 320 : bindings.custID }
「OK」をクリックします。ページ定義XMLは、例4-12のようになります。
今度は、パラメータの値を設定して、ページ上のポートレットをテストする必要があります。値はページURLを介して設定できます。次に例を示します。
http://pc1.com:8988/SRDemo/faces/app/management/SRDashboard.jspx?customerID=321
このURLを渡すことで、ページはcustomerID
の値321でリフレッシュされます。ページ上のOmniPortletは、変更後の値を反映するデータでリフレッシュされるはずです。
多くの場合、一方のポートレット内のパラメータが変更されると他方のポートレットも新しい値でリフレッシュされるように、複数のポートレットを関連付けると便利です。たとえば、図4-4は2つのポートレットを示しています。ユーザーが左側の「Most Active Customer」ポートレットから「Last Name」をクリックすると、その顧客のIDが右側の「Customer Details」ポートレットに取り込まれ、「Customer Details」ポートレットはその顧客の詳細データでリフレッシュされます。
ポートレットをリンクする方法
ポートレットどうしをリンクする方法は、ポートレットをページにリンクする方法とほとんど同じです。「ポートレットをページにリンクする方法」に示した例では、URL内のページ・パラメータからページ変数に値が渡され、ページ変数の値がポートレットのパラメータに渡されています。この方法で簡単に、ページ変数の値を読み取る複数のポートレットをページ上に設定できます。さらに、ページ・パラメータはページURLから変更できるため、1つのポートレットでページ・パラメータの値を設定し、ページ変数の値を設定すると、ページ上の他のポートレットがその影響を受けます。
Facesコンポーネントとポートレットを組み合せると、非常に強力になります。リストやオプションなどのインタラクティブなFacesコンポーネントをページ上の1つ以上のポートレットに関連付けようとする場合は、このような種類の同期が便利です。たとえば、ダッシュボードのようなページで、ユーザーが事前定義済の選択項目セットから選択して、ページに表示するポートレットを決定できるようにするとします。この場合、Facesコンポーネント(リストまたはオプションの選択)がページ上の1つ以上のポートレットに値を渡します。ポートレットはこの値を使用して、表示するコンテンツを決定します。
図4-5では、「Volume for last」という名前のリストがFacesコンポーネントであり、OmniPortletによって円グラフが生成されます。リストからの値がOmniPortletに渡されると、OmniPortletは新しい値を使用して、更新済のグラフで自動的にリフレッシュします。
Facesコンポーネントをポートレットにリンクする方法
Facesコンポーネントをポートレットにリンクする手順は、次のとおりです。
アプリケーション・ナビゲータで、ページをダブルクリックして開きます。ページが編集用に開き、「構造」ペインにページ構造が表示されます。
Oracle JDeveloperのユーザー・インタフェースのジェスチャを使用して、必要なFacesコンポーネントをページに追加します。例4-13に、ユーザー・インタフェースを介してPanelCustomizable
内のShowDetailFrame
の中に作成されたselectOneChoice
を示します。selectOneChoice
は、dayPicker
という名前のリストを提供します。このリストから、ユーザーは、OmniPortlet(portlet1
)の円グラフでデータを表示する期間(日数)を選択できます。この例では、日付ピッカーのgetおよびset機能がバッキング・クラス内に自動的に作成されていることに注意してください。autoSubmit
をtrue
に設定すると、リストから項目が選択されるたびに、変数の値が強制的に変更されます。また、dayPicker
のすぐ下にあるOmniPortlet指定でdayPicker
を参照していることにも注意してください。
<cust:panelCustomizable text="Service Requests Volume" displayHeader="false" expansionMode="normal" isMovable="true" isSeededInteractionAvailable="true" id="panelCustomizable2" layout="horizontal"> <cust:showDetailFrame id="showDetailFrame1" text="Service Volume Distribution" displayHeader="true" isSeededInteractionAvailable="true"> <af:selectOneChoice id="dayPicker" label="Volume for last" value="360" binding="#{backing_app_management_SRDashboard.SelectOneChoice}" autoSubmit="true"> <af:selectItem label="1 day" value="1"/> <af:selectItem label="2 days" value="2"/> <af:selectItem label="3 days" value="3"/> <af:selectItem label="5 days" value="5"/> <af:selectItem label="10 days" value="10"/> <af:selectItem label="30 days" value="30"/> <af:selectItem label="60 days" value="60"/> <af:selectItem label="90 days" value="90"/> <af:selectItem label="180 days" value="180"/> <af:selectItem label="360 days" value="360"/> </af:selectOneChoice> <adfp:portlet value="#{bindings.portlet1}" portletType="/oracle/adf/portlet/OmniPortlet_Producer/applicationPortlets/ Portlet100_f20eef2c_010a_1000_8003_a9fe020295ca" partialTriggers="dayPicker" displayScrollBar="False" displayHeader="False" isMinimizable="True" renderPortletInIFrame="False"/> </cust:showDetailFrame> <adfp:portlet value="#{bindings.portlet3}" portletType="/oracle/adf/portlet/OmniPortlet_Producer/applicationPortlets/ Portlet100_f20f676b_010a_1000_8005_a9fe020295ca" renderPortletInIFrame="False"/> <adfp:portlet value="#{bindings.portlet2}" portletType="/oracle/adf/portlet/OmniPortlet_Producer/applicationPortlets/ Portlet100_f20f50cc_010a_1000_8004_a9fe020295ca" renderPortletInIFrame="False"/> </cust:panelCustomizable>
Facesコンポーネントを設定し、ページ上の必要なポートレットからそのコンポーネントを参照した後は、パラメータをページ定義に追加する必要があります。「構造」ペインでJSPルートを右クリックし、ポップアップ・メニューから「ページ定義に移動」を選択します。ページ定義XMLが編集用に開きます。
<executables>
セクションで、dayPicker
からportlet1
に渡されるパラメータを指定する必要があります。例4-14に、ページ定義内のデフォルト・コードを示します。
例4-14 portlet1のパラメータ
<executables> <variableIterator id="variables"> <variable Name="OmniPortlet2_1_Param1" Type="java.lang.Object" DefaultValue="<parameter name="Param1" value="${(backing_app_management_ SRDashboard.dayPicker.value == null) ? 360 : backing_app_management_ SRDashboard.dayPicker.value}"/> <variable Name="OmniPortlet2_1_Param2" Type="java.lang.Object"/> <variable Name="OmniPortlet2_1_Param3" Type="java.lang.Object"/> <variable Name="OmniPortlet2_1_Param4" Type="java.lang.Object"/> <variable Name="OmniPortlet2_1_Param5" Type="java.lang.Object"/> </variableIterator>