ShowOneコンポーネントについて

ユーザーは、ADF FacesのShowOneコンポーネントにより、showDetailItemコンポーネントに属するコンテンツを選択および表示できます。ユーザーがコンテンツを選択する方法はShowOneコントロールできまります。ADF Facesでは、次のShowOneコントロールをサポートしています。

次の図は、showOnePanelコントロールで使用される3つのshowDetailItemコンポーネントを示しています。図の後で、showDetailItemコンポーネントの動作を説明しますが、これはすべてのShowOneコンポーネントにも該当する内容です。

コントロールに表示される各項目はshowDetailItemコンポーネントで、1つ以上の子コンポーネントが含まれている可能性があります。ユーザーは1度に1グループのshowDetailItem子コンポーネントを選択および表示できます。コントロール内の項目の順序は、showDetailItemコンポーネントがコントロールに追加された順序で決まります。

3つのパネル・バー: 1つは開き、1つは無効、1つは閉じた状態 3つのパネル・バー: 1つは閉じ、1つは無効、1つは開いた状態

パネル・バーのテキストは、showDetailItemtext属性で指定されます。ユーザーがパネル・バーをクリックまたは選択すると、そのバーのshowDetailItem子コンポーネントが開示(表示)されます。別のバーを選択すると、そのバーの子コンポーネントが開示(表示)され、以前に選択したバーの子コンポーネントは自動的に非開示(非表示)になります。

アクティブなパネル・バー(つまり、showDetailItem子コンポーネントを表示できるバー)が、バーをクリックできる(有効な)状態になります。無効なバーはテキストがグレー表示になり、バーをクリックしてコンテンツを表示できないことを示します。showDetailItemdisabled属性は、バーの表示状態(有効または無効)を指定します。デフォルトでは、この属性はfalse(つまり、バーは有効)です。

showDetailItemdisclosed属性は、コンポーネントの子の状態(表示または非表示)を指定します。デフォルトでは、この属性はfalse(つまり、コンテンツは非表示)です。ShowOneコンポーネントのいずれのshowDetailItemdisclosed="true"でない場合は、最初にある有効なshowDetailItemコンポーネントのコンテンツが自動的に表示されます。

ユーザーがShowOneコントロールの項目を選択してコンテンツを表示すると、選択したshowDetailItemコンポーネントによってDisclosureEventが配信されます。DisclosureEventに関連するリスナーはDisclosureListenerです。showDetailItemコンポーネントのDisclosureListener属性は、イベントを処理するバッキングBeanのDisclosureListenerメソッドにバインドできます。このメソッドは、DisclosureEventに応じて(つまり、ユーザーが項目を選択してコンテンツを表示する都度)起動されます。

ShowOneコンポーネント内では別のShowOneコンポーネントを使用できます。次の図に、showOneChoiceコントロール内でshowOneRadioコントロールが使用されている例を示します。

テキストの説明を参照

選択コントロールからユーザーが「10.1.3 demos」を選択すると、「ADF Faces demos」、「Web Services demos」および「UML demos」の3つのラジオ項目が、ドロップダウン・リストの後に表示されます。ラジオ項目(「ADF Faces demos」など)を選択すると、選択したshowDetailItemの子コンポーネントがラジオ・ボタン・グループの下に表示されます。

ShowOneコンポーネント内に別のShowOneコンポーネントをネストするには、ネストされるShowOneがshowDetailItemにラップされるようにします。次に例を示します。

<af:showOneChoice label="Select from: " position="start" alignment="top">

  <af:showDetailItem text="10.1.3 Features">
    <af:panelHeader text="10.1.3 Features">
      <af:outputText value="contents here"/>
    </af:panelHeader>
  </af:showDetailItem>

  <af:showDetailItem text="10.1.3 Release Notes">
    <af:panelHeader text="10.1.3 Release Notes">
      <af:outputText value="contents here"/>
    </af:panelHeader>
  </af:showDetailItem>

  <!-- Nested ShowOne must be wrapped in a showDetailItem -->

  <af:showDetailItem text="10.1.3 Demos" disclosed="true">

    <af:showOneRadio position="top">

      <af:showDetailItem text="ADF Faces demos">
        <af:panelHeader text="ADF Faces demos">
          <af:outputText value="contents here"/>
        </af:panelHeader>
      </af:showDetailItem>

      <af:showDetailItem text="Web Services demos">
        <af:panelHeader text="Web Services demos"/>
      </af:showDetailItem>

      <af:showDetailItem text="UML demos">
        <af:panelHeader text="UML demos"/>
      </af:showDetailItem>

    </af:showOneRadio>

  </af:showDetailItem>

</af:showOneChoice>     

ShowOneコンポーネント(showOnePanelを除く)では、開示されたコンテンツに対してShowOneコントロールを配置して位置合せするために、次の属性をサポートしています。

ADF FacesのShowOneコンポーネントは、そのアクションに部分ページ・レンダリングを使用します。部分ページ・レンダリングがクライアント・ブラウザまたはプラットフォームでサポートされない場合は、かわりに全ページ・レンダリングが自動的に使用されます。


showDetail、showDetailHeaderおよびshowDetailItemコンポーネントについて
ADF Facesでの部分ページ・レンダリングのサポートについて