ADF Facesのpage
およびpanelPage
コンポーネントでは、ページ全体を、関連するページに移動するための階層メニューを使用してレイアウトできます。この2つのコンポーネントの主な違いは、ファセットと、階層メニューをレイアウトする際のコンポーネントの使用方法にあります。
panelPage
コンポーネントには、階層メニュー・コンポーネントのレイアウトに使用できるmenu1
、menu2
およびmenu3
の各ファセットがあります。次のいずれかを実行できます。
MenuModel
オブジェクトにバインドし、各メニューについては、nodeStamp
ファセットを使用してメニュー項目をスタンプ・アウトします(このために、各メニュー・コンポーネントに複数のメニュー項目コンポーネントを指定する必要はありません)。これによって、JSFページで使用するコードが減り、同じメニュー・コードを使用して、ほとんどのページ(階層内の位置に関係なく)をレンダリングできます。詳細は、「メニュー・モデルでのPanelPageおよびメニュー・コンポーネントの使用」を参照してください。
page
コンポーネントはMenuModel
オブジェクトを使用し、nodeStamp
ファセットを介して階層メニュー項目情報をスタンプ・アウトします。個々のメニュー・コンポーネントをメニュー・モデルにバインドしたり、複数のメニュー項目を挿入する必要はありません。基本的に、ページの階層では同じメニュー・モデル・バインド・コードを使用できます。詳細は、「メニュー・モデルでのページ・コンポーネントの使用」を参照してください。
また、panelPage
コンポーネントには、グローバル・メニュー・ボタンを追加するためのmenuGlobal
ファセットがあります。このボタンは、アプリケーションのアクティブ・ページからいつでも使用できるボタンです(ヘルプ・ボタンなど)。メニュー・コンポーネントに子メニュー項目があるpanelPage
を使用する場合、JSFページのコードは次のようになります。
<af:panelPage title="Title">
<f:facet name="menuGlobal">
<af:menuButtons>
<af:commandMenuItem text="Help"
icon="/components/images/globalhelp1.gif"
action="go.help"/>
<af:commandMenuItem text="Preferences"
icon="/components/images/globalhelp2.gif"
action="go.prefs"/>
</af:menuButtons>
</f:facet>
...
</af:panelPage>
page
コンポーネントでは、menuGlobal
ファセットのかわりに、メニュー・モデルのみでグローバル・メニュー・ボタンをサポートしています。グローバル・ボタンとしてレンダリングされる項目は、メニュー・タブ項目と同じレベルの項目としてメニュー・モデルに追加され、JSFページでは、関連するメニュー項目コンポーネントのtype
属性がglobal
を戻します。次の図のようなメニュー階層があると仮定します。ここでは、a1とa2は様々な子サブノードを備えた最上位レベル・ノードであり、a3とa4は子サブノードのないスタンドアロン・ノードです。
ページ・レイアウト表現では、a1およびa2ノードはメニュー・タブ項目を表し、a3およびa4ノードはグローバル・ボタンを表します。faces-config.xml
ファイルでは、メニュー・グローバル項目a3およびa4に対するマネージドBean宣言は、次の事項を除いて、メニュー・タブ項目a1またはa2に対するマネージドBean宣言と同じです。
たとえば、faces-config.xml
では次のようになります。
<!-- menu tab item a1 -->
<managed-bean>
<managed-bean-name>menuItem_a1</managed-bean-name>
<managed-bean-class>oracle.adfdemo.view.faces.menu.DemoMenuItem</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>children</property-name>
<list-entries>
<value-class>oracle.adfdemo.view.faces.menu.DemoMenuItem</value-class>
<value>#{menuItem_a1b1}</value>
<value>#{menuItem_a1b2}</value>
</list-entries>
</managed-property>
<managed-property>
<property-name>label</property-name>
<value>a1</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/components/page_a1.jspx</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>guide.page_a1</value>
</managed-property>
</managed-bean>
<!-- menu global item a3 -->
<managed-bean>
<managed-bean-name>menuItem_a3</managed-bean-name>
<managed-bean-class>oracle.adfdemo.view.faces.menu.DemoMenuItem</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>label</property-name>
<value>a3</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/components/page_a3.jspx</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>guide.page_a3</value>
</managed-property>
<managed-property>
<property-name>ico</property-name>
<value>/images/globalhelp.gif</value>
</managed-property>
<managed-property>
<property-name>type</property-name>
<value>global</value>
</managed-property>
</managed-bean>
メニュー・モデルにバインドされるpage
コンポーネントを使用するJSFページでは、次のようになります。
<af:page var="foo"
value="#{menuModel.model}"
title="Title attribute"
quickLinksShown="true">
<f:facet name="nodeStamp">
<af:commandMenuItem text="#{foo.label}"
action="#{foo.getOutcome}"
type="#{foo.type}"
icon="#{foo.ico}"/>
</f:facet>
...
</af:page>
page
またはpanelPage
コンポーネントの詳細な例は、「ADF Facesのデモ・ファイルについて」を参照してください。
page
およびpanelPage
コンポーネントは、階層メニューのレイアウトに加え、ページ・レベルとアプリケーション・レベルのテキスト、イメージ、アクションおよびボタンをページ内の特定の領域にレイアウトするためのファセットをサポートします。詳細は、「ADF Facesでのページ・レイアウト・コンテンツ領域について」を参照してください。
レイアウトに影響を与えるpage
およびpanelPage
コンポーネントの属性は、次のとおりです。
chromeType
: デフォルトはcompact
です。これは、アプリケーションまたは製品のbrandingApp
ファセット・イメージが、企業または組織のbranding
ファセット・イメージの横に配置されることを意味します(それらが単一のページで使用される場合)。「ADF Facesでのページ・レイアウト・コンテンツ領域について」の図を参照してください。brandingApp
イメージをbranding
イメージの下に配置するには、この属性をexpanded
に設定します(下の図を参照)。brandingAppContextual
テキストも設定されている場合は、brandingApp
イメージがbranding
イメージの横に自動的にレンダリングされます。
messageType
: デフォルトはnone
です。メッセージ情報のみを表示するページを作成する場合は、この属性を有効な値(errorなど)に設定します。図および詳細は、「ADF Facesのメッセージ・ページについて」を参照してください。
partialTriggers
: このpage
またはpanelPage
コンポーネントがリスニングする1つ以上のコンポーネントID(スペースで区切る)を示します。あるイベントの結果として、リストされている1つ以上のコンポーネントが更新された場合は、このpage
またはpanelPage
コンポーネントも更新されます。部分ページ・レンダリングの例および詳細は、「ADF Facesでの部分ページ・レンダリングのサポートについて」を参照してください。
quickLinksShown
: デフォルトはfalse
です。true
に設定すると、ADF Facesによって、ページ・コンテンツ内にあるpanelHeader
(ページの最初のヘッダーを除く)ごとに1つのリンクが挿入されます。サブヘッダーは含まれません。ページ・タイトルの上に水平に配置されたpanelHeader
リンクによって、セクション・ヘッダーに簡単にアクセスできます。ページの先頭に簡単に移動するための最初に戻るリンクもすべてのpanelHeader
テキスト・ラベル(最初のヘッダーを除く)の横に自動的に挿入されます。リンクの配置については下の図を参照してください。通常は、ページ内のコンテンツの各セクションが明確に定義された長いページに対して使用します。ShowDetailHeader
はクイック・リンクに挿入されます(ページ内で使用されている場合)。
title
: ページのタイトルを示します。
ADF Facesでの部分ページ・レンダリングのサポートについて
メニュー階層の作成
Copyright © 1997, 2007, Oracle. All rights reserved.