Oracle ADFポートレット・タグ - adfp:portlet

タグ名: <adfp:portlet>
UIコンポーネント・クラス: oracle.adf.view.faces.component.portlet.PortletBase
コンポーネント・タイプ: oracle.adf.portlet

Oracle ADFポートレットのコンポーネント用タグです。このタグはjspx WebCenterアプリケーション・ページのポートレットを表します。このポートレットにより、タグ(特にvalue属性)で指定されたバインディングからのポートレット・コンテナ(プロデューサ)サポートが取得されます。ポートレットの属性および属性値を指定するには、adfp:portletタグを使用します。

例1: ポートレット・タグ

<h:form>
    <adfp:portlet value="#{bindings.portlet1}"
       portletType="/oracle/adf/portlet/richtextportlet ..."
       allModesSharedScreen="true"/>

</h:form>

例2: PanelCustomizableコンポーネント内のポートレット・タグ

<h:form>
    <cust:panelCustomizable id="panelCustomizable1" text="panelCustomizable 1" isSeededInteractionAvailable="true">
         <adfp:portlet value="#{bindings.portlet1}"
       portletType="/oracle/adf/portlet/richtextportlet ..."
       allModesSharedScreen="true"/>
 
    </cust:panelCustomizable>
</h:form>

adfp:portletタグの属性

属性値は、属性サポートをポートレットに構築したときに関係があります。たとえば、isAboutModeAvailabletrueに設定しても、ポートレットに対し「バージョン情報」モードを定義していない場合、属性設定はポートレットに影響を与えません。

adfp:portletタグでは、属性の次の4つのカテゴリが使用されます。

一般属性

属性 説明
height

数字はピクセルまたは使用可能領域の割合で表されます。

  • ピクセルの場合、npxと入力します。たとえば、300pxとなります。
  • 割合の場合、n%と入力します。たとえば、50%となります。

ポートレットを表示できる領域の高さです。

実際のポートレットの高さが、ここで入力したheight値より大きい場合、dislayScrollBar属性によりスクロールバーが表示され、このdislayScrollBarautoまたはtrueに設定されます。dislayScrollBarfalseに設定すると、実際のポートレットの高さがheight属性で示した値を超過した場合、ポートレットはフルサイズ表示され、height属性値は無視されます。

icon

イメージのURIを入力します。たとえば、次のとおりです。

icon="coffee.png"

Oracle JDeveloperでは、値列の「編集」アイコンをクリックして、必要なイメージを配置および選択します。この例で示すURIはドキュメント・ルートに保存されます。このため、フルパスは必要ありません。イメージがドキュメント・ルートに格納されていない場合は、次のようにフルパスを指定する必要があります。

icon="c:¥portal¥images¥box_b.gif"

または

icon="http://source-pc/images/accessability.gif"

アイコンの場所を指定するURIはポートレット・ヘッダーのポートレット・タイトルの左に表示されます。これは、ポートレットの目的を示すため、ブランド力強化のため、コンテンツ・インジケータとして、またはその他の理由のために使用できます。
id

ポートレットの一意の識別子として使用するテキスト文字列を入力します。たとえば、次のとおりです。

id="newsBrief"

コンポーネントの一意の識別子です。
text

ポートレットのヘッダー・タイトルとして使用するテキスト文字列を入力します。たとえば、次のとおりです。

text="Announcements ..."

ポートレットのヘッダー・タイトルです。ポートレットにタイトルを表示する場合に使用します。

<adfp:portlet>タグで指定したtext属性値は、他(ポートレットのマークアップなど)で指定したどのタイトルよりも優先されます。

値を指定しない場合、ポートレットによりポートレットのマークアップからタイトルが抽出されます(レスポンス)。<adfp:portlet>タグのtext属性も「戻る」も使用できない場合、タイトルはポートレット定義から抽出されます。

注意: 設計時にtext属性に値を入力することは、実行時のポートレット・タイトルのカスタマイズおよびパーソナライズの妨げになります。

width

数字はピクセルまたは使用可能領域の割合で表されます。

  • ピクセルの場合、npxと入力します。たとえば、300pxとなります。
  • 割合の場合、n%と入力します。たとえば、50%となります。

ポートレットを表示できる領域の幅です。

実際のポートレットの幅が、ここで入力したwidth値より大きい場合、dislayScrollBar属性によりスクロールバーが表示され、このdislayScrollBarautoまたはtrueに設定されます。dislayScrollBarfalseに設定すると、実際のポートレットの幅がwidth属性で示した値を超過した場合、ポートレットはフルサイズ表示され、width属性値は無視されます。

binding

マネージドBeanの名前です。たとえば、次のとおりです。

binding="#{managedBean.Binding}"

Oracle JDeveloperでは、値列で「編集」アイコンをクリックし、マネージドBeanを選択して、関連するマネージドBeanプロパティを指定します。

コンポーネント・インスタンスを格納するためのバインディング・リファレンスです。バインディング・リファレンスにより、ポートレットのインスタンスがマネージドBeanプロパティにバインドされます。マネージドBeanとは、JSF faces-config.xmlファイルに登録されているアプリケーションが使用するJavaBeansのことです。
partialTriggers

部分更新をトリガーする1つ以上のコンポーネントのIDを入力します。たとえば、次のとおりです。

partialTriggers="_id1,_id2 componentID5"

部分更新をトリガーするコンポーネントのIDです。ポートレットは指定したトリガー・コンポーネントをリスニングします。トリガー・コンポーネントの1つが、なんらかの方法で更新するトリガー・イベントを受け取った場合、ポートレットでも更新が要求されます。

partialTriggersタグでは、コンポーネントはスペースでお互いに区切られます。

portletType

これに必要な属性値は、デフォルトでフレームワークに用意されています。

PortletTypeは、設計時環境において異なるポートレット間を区別するために使用します。値は、フレームワークからプログラムによって提供されます。改訂または削除は行わないでください。

shortDesc

テキスト文字列を入力します。たとえば、次のとおりです。

shortDesc="Portlet for entering display text in place."

ポートレットの簡単な説明です。

value

これに必要な属性値は、デフォルトで用意されています。

ポートレットは、ここで指定したバインディングからポートレット・コンテナ(プロデューサ)サポートを得ます。この属性値はプログラムによって入力されます。改訂または削除は行わないでください。

submitUrlParameters

true/false

デフォルト: false

ポートレットが配置されたページを参照するポートレット・リンクは、リンクのURLでリロードせずに、ページ自体に送信を強制します。デフォルトでは、このURLのパラメータはページに対して有効にできません。これはリクエストを開始するポートレット内でのみ使用できます。

submitUrlParameterstrueに設定すると、これらのURLパラメータを
コンテナ・ページでも使用できるようになります。

アクション属性

アクション属性により、モード切替えのUIアクションの表示が制御されます。モード切替えアクションはポートレット・ヘッダー上のアイコンとして(「最小化」アイコン最小化アイコンなど)表示されるか、またはポートレット・ヘッダー(またはポートレット・クロム)に表示される「アクション」メニューに表示されます。

ポートレットを特定のモードでレンダリングする機能は、ポートレットおよびユーザーの認証レベルによりサポートされるモードに依存します。つまり、ポートレットでモードがサポートされていない場合は、アクション属性をtrueに設定しても効果はありません。さらに、ユーザーにアクションを実行する十分な権限がない場合は、このユーザーに対しアクションは使用できません。

すべての属性

属性 説明
isAboutModeAvailable

true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレットの「アクション」メニューの「バージョン情報」コマンドがレンダリングされます。ユーザーは「バージョン情報」を選択してポートレットの「バージョン情報」モードを起動できます。

isConfigModeAvailable

true/false

デフォルト: true

WebCenterアプリケーションでは、JSR 168ポートレットの「アクション」メニューで「構成」コマンドがレンダリングされます。ユーザーは「構成」を選択してポートレットの「構成」設定を開きます。
isCustomizeModeAvailable

true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレットの「アクション」メニューで「カスタマイズ」コマンドがレンダリングされます。「カスタマイズ」モードにより、サイト管理者はポートレットのデフォルトのパーソナライズ・データを編集できます。

isDetailModeAvailable true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレットの「アクション」メニューで「詳細」コマンドがレンダリングされます。ユーザーは「詳細」を選択してポートレットの詳細ページを開きます。

この属性によりOracle PDK-Javaポートレットの「詳細ページを表示」モードにマップされます。スタンダード・ベース(JSR 168)のJavaポートレットにはアプリケーションはありません。

isHelpModeAvailable true/false

デフォルト: true
WebCenterアプリケーションでは、ポートレットの「アクション」メニューで「ヘルプ」コマンドがレンダリングされます。ユーザーは「ヘルプ」を選択してポートレットのヘルプ・ページを開きます。
isMaximizable

true/false

デフォルト: true

WebCenterでは、ポートレットの「アクション」メニューで「最大化」コマンドがレンダリングされます。ユーザーは「最大化」を選択してポートレットを拡張します。コンポーネントが最大化されると、「リストア」コマンドが「アクション」メニューに表示され、ポートレットがデフォルトの表示モードに戻されます。

「最大化」オプションはpanelCustomizableコンポーネント内に置かれたポートレットにのみ適用されます。ユーザーが「最大化」を選択すると、ポートレットは親panelCustomizableの幅を拡張し、panelCustomizableに置かれている他のすべてのコンポーネントを移動します。

「最大化」および「リストア」アクションは実行時と設計時では異なる動作をします。詳細は、最大化、最小化、リストアおよび移動の概要を参照してください。

isMinimizable

true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレット・ヘッダーで「最小化」アイコンがレンダリングされます。ユーザーはアイコンをクリックしてウィンドウの形にポートレットを縮小します。再度アイコンをクリックするとポートレットのサイズが元に戻ります。

「最小化」アクションは実行時と設計時では異なる動作をします。詳細は、最大化、最小化、リストアおよび移動の概要を参照してください。

isMovable

true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレットの「アクション」メニューに「移動」コマンドがレンダリングされます。ユーザーはコマンドを選択し、ページの他のコンポーネントに関係のあるポートレットの現在の場所に応じて、サブコマンドの「上へ移動」、「下へ移動」、「左へ移動」、または「右へ移動」を選択します。

「移動」アクションは実行時と設計時では異なる動作をします。詳細は、最大化、最小化、リストアおよび移動の概要を参照してください。

isNormalModeAvailable

true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレットの「アクション」メニューに「リフレッシュ」コマンドがレンダリングされます。ユーザーが「リフレッシュ」コマンドを選択すると、ポートレットはページの他のコンテンツに依存せずにリフレッシュ(再描画)されます(部分ページ・リフレッシュとして知られています)。
isPersonalizeModeAvailable

true/false

デフォルト: true

WebCenterアプリケーションでは、ポートレットの「アクション」メニューに「パーソナライズ」コマンドがレンダリングされます。ユーザーは「パーソナライズ」を選択してポートレットの個人の表示を変更します。このモードはスタンダード・ベースのJavaポートレット(JSR 168)ウィザードの「編集」モード・セクションと同じです。

「パーソナライズ」コマンドは、認証を受けたユーザー(つまりログインしているユーザー)の「アクション」メニューにのみ表示されます。パブリック・ユーザーまたは認証を持たないユーザーには表示されません。ユーザーがポートレットの表示をパーソナライズできるようにするには、なんらかのアプリケーション・セキュリティを実装する必要があります。

ポートレットを作成する開発者であり、アプリケーションに対して完全なセキュリティ・モデルを作成せずに「パーソナライズ」モードをテストする場合は、Oracle WebCenter Framework開発者ガイドのセキュリティの章を参照してください。特に、ポートレットのパーソナライズをテストするための基本認証の構成を参照してください。

注意: 通常のパーソナライズではポートレット・タイトルを設定します。adfp:portletタグのtext属性の値を入力することにより、設計時にポートレット・タイトルを設定できます。ただし、設計時にtext属性に値を入力することにより、実行時のポートレット・タイトルのパーソナライズおよびカスタマイズの妨げになることを考慮してください。

isPreviewModeAvailable

true/false

デフォルト: false

ポートレット・コンテンツをプレビューできます。WebCenterアプリケーションにおいて特別なアプリケーションではありませんが、OracleAS Portalのポートレット・リポジトリではポートレットをプレビューするためにクリックする拡大鏡アイコンとしてレンダリングされ、使用されます。
isPrintModeAvailable

true/false

デフォルト: true

WebCenterアプリケーションでは、JSR 168ポートレットの「アクション」メニューに「印刷」コマンドがレンダリングされ、ポートレットのプリンタ用のバージョンが表示されます。
isSeededInteractionAvailable

true/false

デフォルト: true

ポートレットに「最大化」、「移動」、「最小化」をユーザーに対して表示できるようにします。属性をtrueに設定すると、シード済相互作用が表示できます(ただし、各シード済相互作用の表示は固有の属性設定によって制御されます)。属性をfalseに設定すると、シード済相互作用は表示できません。

カスタム相互作用はこの属性設定の影響を受けません。

最大化、最小化、リストアおよび移動の概要

開発環境のニーズに合うように、portletコンポーネント(およびshowDetailFrameコンポーネント)の「最小化」「最大化」「リストア」「移動」アクションの動作は、設計時および実行時で異なります。設計時では、これらのアクションは特定のOC4Jセッションでは維持されますが、セッションを超えては維持されません(セッションとは、OC4Jの開始と停止の間の時間を意味します)。実行時では、特定のOC4Jセッションおよびセッション間でもこれらのアクションは維持されます。

この違いは、設計時のアプリケーション・ページの自動リセットを可能にするために導入されました。

実行時においてセッション間でアクションを維持することが不要な場合は、アプリケーションのweb.xmlファイルへの単純な変更はオフにできます。アプリケーションの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>

これを次のように置換します。

<context-param>
    <param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
    <param-value> oracle.adf.view.faces.change.SessionChangeManager</param-value>
</context-param>

アプリケーションにセキュリティを実装すると、「最小化」、「最大化」、「リストア」、「移動」アクションはカスタマイズ権限を持つユーザーにのみ表示されます。パーソナライズ権限を持つユーザーには表示されません。カスタマイズ権限を持つユーザーは設計時に次のステップを実行することで、これらのアクションの効果をテストできます。

コア属性

属性 説明
contentInlineStyle CSSスタイルの名前 ポートレット・コンテンツに適用されるCSSスタイルです。

少なくともCSS 2.0に準拠した属性を手動で入力します。この属性ではadfp:portletタグで次の書式が使用されます。

contentInlineStyle="color:rgb(255,0,255);
font-size:large;"

contentInlineStyleに入力する値によりポートレット・コンテンツがスタイル化されますが、inlineStyleに入力する値ではヘッダーを含む全ポートレットがスタイル化されます。両方の属性に競合する値がある場合は、contentInlineStyleが優先されます。

たとえば、inlineStyleを使用して背景色を設定すると、ポートレットおよびそのコンテンツは指定した色に設定されます。ただし、contentInlineStyleinlineStyleで異なる背景色を設定した場合は、ポートレット・ヘッダーはinlineStyleの色でスタイル化され、ポートレットのコンテンツはcontentInlineStyleの色でスタイル化されます。

inlineStyleとは異なり、contentInlineStyleを使用するとポートレットの枠線をオフにできます。たとえば、次のとおりです。

contentInlineStyle:border-style:none;

inlineStyle

CSSスタイルの名前

ポートレットに適用されるCSSスタイルです。このノードを開いて、背景色、フォント、マージンなどの特定のスタイル要素に対するスタイルを指定します。

指定した属性の他にも、プロパティ・インスペクタの属性リストに表示されないinlineStyleの属性を手動で入力できます。この場合、それらの属性は最低でもCSS 2.0に準拠している必要があります。このような属性ではadfp:portletタグで次のような書式が使用されます。

inlineStyle="color:rgb(255,0,255);font-size:large;"

inlineStyleおよびcontentInlineStyleの作業環境に関しては、contentInlineStyleを参照してください。

rendered true/false

デフォルト: true
コンポーネントをレンダリングするかどうかを指定します。falseに設定すると、出力がレンダリングされません。

表示モード属性

属性 説明
allModesSharedScreen

true/false

デフォルト: false

ポートレット・モードの変更を新しいページに新しいモードでレンダリングするかどうかを決定します。ポートレットが存在するページを除外する場合はfalseに設定します。

  • trueはすべてのポートレット・モードがインラインで表示されることを意味します。あるモードが同一ページの他のモードに切り替えられます。つまり、この属性によりすべてのポートレット・モードを特定のページのコンテキストを残さずに表示できます。
  • falseはView(JSR 168)またはShow(PDK-Java)を除いたすべてのポートレット・モードがそれぞれのページにレンダリングされることを意味します。デフォルト・モードはOmniPortletやWeb Clippingポートレットなどのポートレットに役立ちます。これらはShowモード以外のモードが、ポートレットが存在しないページに表示されることを要求します。
background

light/medium/dark

デフォルト: <default>

異なるルック・アンド・フィールをアプリケーション・ページ上の各ポートレットに適用できます。デフォルトのスキンはOracleMinimalおよびSimpleであり、カスタム・スキンにはlightmediumおよびdarkという3つのバージョンのスタイル・セレクタがあります。backgroundプロパティに指定する値に応じて、スキンには関連するスタイル/アイコンのセレクタ・バージョンが適用されます。

詳細は、Oracle WebCenter Framework開発者ガイドを参照してください。

displayHeader

true/false

デフォルト: true

ポートレットのヘッダーを表示するかどうかを表します。

  • trueはヘッダーを表示することを意味します。したがって、ヘッダー・ベースのメニューおよびアイコンが表示されます。
  • falseはヘッダーを表示しないことを意味します。このため通常ヘッダーに表示されるメニューおよびアイコンは非表示となります。

    isSeededInteractionAvailabletrueに設定すると、マウスをポートレットに移動することでユーザーはポートレット・メニューおよびアイコンを使用できます。ユーザーが「アクション」メニュー・オプションで選択できるフェードイン/フェードアウト・ツールバーが表示されます。

expansionMode

maximized/minimized/normal

デフォルト: normal

ポートレットのデフォルトの状態です。次の中から選択します。

  • minimized: ポートレットのデフォルトの表示モードを縮小します(最小化)。
  • maximized: このオプションはpanelCustomizableコンポーネント内に置かれたポートレットにのみ適用されます。ポートレットのデフォルトの表示モードは親panelCustomizableの幅に拡張され、panelCustomizableに置かれた他のすべてのコンポーネントは移動されます。
  • normal: ポートレットのデフォルトの表示モードは通常です。つまり、ページの幅は縮小も拡張もされません。
displayScrollBar

true/false/auto

デフォルト: auto

コンテンツが指定したwidthまたはheightに合わない場合に、スクロールバーが表示されます(auto)。

true値はスクロールバーを常にレンダリングします。false値はスクロールバーをレンダリングしません。ポートレットがwidthまたはheightで指定した値を超過した場合、これらの値は無視され、ポートレットは実際のサイズでレンダリングされます。

heightおよびwidthを参照してください。

renderPortletInIFrame true/false/auto

デフォルト: auto

ポートレットをiframeでレンダリングするかどうかを決定します。

  • true: ポートレットをiframeでレンダリングします。
  • auto: ポートレット・タグによりポートレットのレスポンスがチェックされ、iframeが必要がどうかを決定します。この決定はformまたはポートレット・レスポンス内のリンクに基づきます。
  • false: この値を選択することはできますが、サポートはされません。iframeにレンダリングされないポートレットからのHTMLマークアップは、ADFページの他のコンポーネントの障害となる場合があります。

詳細は、iframesおよびformタグを参照してください。

iframesおよびformタグ

JavaServer Facesページで生成されたHTMLソースにはformタグが含まれます。ネストされたformタグはHTMLでは許可されないため、ポートレットは同じページで新しいフォームを開くことができません。

この問題を回避する最もよい方法は、iframe内でポートレットをレンダリングすることです。これはrenderPortletInIFrame属性をtrueまたはautoに設定することで実行できます。true値は常にiframeを使用します。auto値では、Oracle WebCenter Frameworkによりポートレットにform要素が含まれるかどうかがチェックされ、含まれる場合はこれをiframe内でレンダリングします。

たとえば、事前構成済のOC4JのWSRPサンプル・プロデューサが用意されているアップロード・ポートレットでは正しく実行するためにiframeが必要です。renderPortletInIFrametrueまたはautoに設定しても、iframe内に配置しなかった場合は、ポートレットが機能しません。

注意: ポートレットをiframe内でレンダリングすると、window.locationの操作により予期しない結果をもたらすことがあります。ポートレットがwindow.locationを使用する場合は、ポートレットが自身をiframe内でレンダリングする場合でも処理できるくらいJavaScriptが堅牢であることを確認する必要があります。

または、ポートレットのマークアップのform要素を除外するためにポートレットを書き直すことができます。ただし、この方法は面倒であり、すべての場合に適用できるわけではありません。


Oracle WebCenter Frameworkの使用