詳細アイコン ナビゲーション・ペイン・コンポーネントの他のレベルのバインド

ナビゲーション・ペインをADFメニュー・モデルにバインドし、nodeStampファセットを使用してコマンド・ナビゲーション・アイテムをスタンプ・アウトすると、任意のメニュー・レベルのナビゲーション・ペイン・コンポーネントに対して、実質的に同じコードを使用できます。変更する必要があるナビゲーション・ペイン・コンポーネント属性は、level値とhint値のみです。

たとえば、レベル0のボタンを生成するコードは、次のようになります。

<af:navigationPane var="menuInfo" value="#{root_menu}"
                   level="0" hint="buttons"..>
  <f:facet name="nodeStamp">
    <af:commandNavigationItem text="#{menuInfo.label}"
                              action="#{menuInfo.doAction}"
                              icon="#{menuInfo.icon}"
                              destination="#{menuInfo.destination}"../>
  </f:facet>
</af:navigationPane>

また、レベル1のタブを生成するコードは、次のようになります。

<af:navigationPane var="menuInfo" value="#{root_menu}"
                   level="1" hint="tabs"..>
  <f:facet name="nodeStamp">
    <af:commandNavigationItem text="#{menuInfo.label}"
                              action="#{menuInfo.doAction}"
                              icon="#{menuInfo.icon}"
                              destination="#{menuInfo.destination}"../>
  </f:facet>
</af:navigationPane>

XMLソース・エディタでの編集に慣れている場合は、ナビゲーション・ペインのコード全体をコピー・アンド・ペーストし、特定のレベルのlevel属性とhint属性の値を単純に置換してもかまいません。(ナビゲーション・ペインおよびとコマンド・ナビゲーション・アイテムのid値が設定されている場合は、それを一意の値で置換することも必要です。)

注意: ADFメニュー・モデルのメタデータに特定のレベルのアイテムがない場合、コードは無視され、そのレベルのアイテムはスタンプ・アウトされません。これは、テンプレート内のすべてのレベルに対してコードを挿入し、そのテンプレートを使用してJSFページを作成できることを意味します。その後、JSFページの作成者が、ページ固有のコンテンツを追加します。メニュー・モデルへのナビゲーション・ペイン・コンポーネントの追加およびバインドについて、ページ作成者が心配する必要はありません。