詳細アイコン グループ・ノードへのアイテム・ノードの変換

ADFメニュー・メタデータ・ファイル(sale_menu.xmlなど)の「構造」ウィンドウで、任意のノードを右クリックすると、ポップアップ・メニューのオプションとして「変換」が表示されます。

構造ウィンドウ、「変換」ポップアップ・メニュー・オプション

「変換」ダイアログでリストに表示されるオプションは、構造ウィンドウで選択したノードのタイプによって異なります。たとえば、itemNodeを右クリックすると、選択リストにはgroupNodesharedNodeが表示されます。

「itemNodeの変換」ダイアログ

この例では、「変換」ダイアログで「groupNode」を選択し、「OK」をクリックすると、「groupNodeのプロパティ」ウィザードが起動します。「idref」フィールドに子itemNodeのIDを入力するか、「プロパティの編集」ダイアログでIDを選択する必要があります。これは、メニュー・メタデータ・ソース・ファイルのgroupNode要素に、ナビゲーションの子ノードを参照する必要がある必須のidref属性があるためです。

「groupNodeのプロパティ」ダイアログ

「idref」フィールドの端にある プロパティの編集アイコン をクリックすると、「プロパティの編集」ダイアログにメニューで使用可能な子itemNode要素が表示されます。

「プロパティの編集」ダイアログ

子は、実行時にメニューに各アイテムが表示される順序でリストされます。通常は、idref属性の最初の子アイテムを選択します。作業の完了後に「OK」をクリックします。次に、「groupNodeのプロパティ」ウィザードで「終了」をクリックします。

プロンプトが表示された場合は、変換を確認するために、「変換の確認」ダイアログで「OK」をクリックします。

「変換の確認」ダイアログ

変換が終了すると、ADFメニュー・メタデータ・ファイルにgroupNode要素が表示されます。たとえば、sale_menu.xmlには次のように表示されます。

<menu xmlns="http://myfaces.apache.org/trinidad/menu">
  <groupNode id="itemNode_sale" label="Sale"
             idref="itemNode_electronics">
    <itemNode id="itemNode_electronics" label="Electronics"
              action="adfMenu_electronics"
              focusViewId="/electronics"/>
    <itemNode id="itemNode_office" label="Office"
              action="adfMenu_office" focusViewId="/office"/>
    <itemNode id="itemNode_media" label="Media"
              action="adfMenu_media" focusViewId="/media"/>
  /groupNode>
</menu> 

groupNode要素には、次の属性が格納されます。

<menu xmlns:"http://myfaces.apache.org/trinidad/menu">
  <groupNode id="gn1" idref="gn11" label="GLOBAL_TAB_0">
    <groupNode id="gn11" idref="in1" label="PRIMARY_TAB_0">
      <itemNode id="in1" label="LEVEL2_TAB_0" action="goToSubTabOne"
                focusViewId="/menuDemo/subtab1.jspx"/>
      <itemNode id="in2" label="LEVEL2_TAB_1" action="goToSubTabTwo"
                focusViewId="/menuDemo/subtab2.jspx"/>
    </groupNode>
    <itemNode id="in3" label="PRIMARY_TAB_1" focusViewId="/menuDemo/tab2.jspx"
              destination="/faces/menuDemo/tab2.jspx"/>
  </groupNode>
  <itemNode id="gin1" label="GLOBAL_TAB_1" action="goToGlobalOne" 
            focusViewId="/menuDemo/global1.jspx"/>
  <itemNode id="gin2" label="GLOBAL_TAB_2" 
            destination="/faces/menuDemo/global2.jspx"
            focusViewId="/menuDemo/global2.jspx"/>
</menu> 

ADFメニュー・メタデータ・ファイルで、itemNodeは、ユーザーが選択したときにナビゲーションを実行するメニュー・アイテムを表します。ナビゲーションは、要素のactionまたはdestination属性を介して実行されます。groupNodeには1つ以上の子itemNode要素または別のgroupNode、あるいはその両方を格納できます。

itemNode要素とは異なり、groupNode要素にはaction属性やdestination属性はありません。ナビゲーションは、アクション結果またはグループ・ノードのidref属性で参照される子itemNodeのナビゲート先URIを介して間接的に実行されます。子groupNodeidrefで参照される場合は、子itemNodeに到達するまで、ノードでのナビゲーション検索が続行されます。

この例では、「Sale」についてitemNodegroupNodeに変換し、子itemNodeの「Electronics」を指すようにグループ・ノードを構成します。これは、アプリケーションの実行時にエンド・ユーザーが「Sale」メニュー・アイテムを選択すると、SaleページではなくElectronicsページが表示されることを意味します。