<tree>要素
ネームスペース: http://xmlns.oracle.com/uix/ui
派生元: <ui:base>要素
グループ: UIX Components
要素の型: UINode

<tree>要素は、オブジェクトを階層ツリー形式に表示するために使用されます。
このBeanは、エージェントのタイプがPDA、携帯電話、音声の場合にはサポートされません。

構文
<tree
    [ formName="string" ]
    [ formSubmitted="boolean" ]
    [ unvalidated="boolean" ]
    [ data:nodes ="data binding to oracle.cabo.ui.data.DataObjectList" ]
    [ data:proxy ="data binding to oracle.cabo.ui.data.tree.TreeDataProxy" ]
>
   <nodes></nodes>
   <nodeStamp></nodeStamp>
   <proxy></proxy>
</tree>

注意:
  • この要素は派生元要素のすべての属性と子要素を持つことができます。
  • data:で始まる属性は、実際には要素となります。 data:は、その属性構文がデータ・バインディングせずに使用されることがないことを示しています。

  • 説明

    <tree>要素は、オブジェクトを階層形式に表示するために使用されます。 開いている、または閉じている子ノード、リーフ・ノードおよび親ノードにデータを取り込みます。 ツリー・コントロールの用途は、ユーザーが複雑な階層構造のオブジェクト・セットに素早く目を通し、ツリー内でハイライト表示することで、レコードの詳細情報にアクセスできるようにすることです。 ツリーを使用して階層を視覚的に表示することで、オブジェクト間の相互の関係を示す目的もあります。

    TreeBeanは、クライアントで静的にレンダリングされます。 ただし、データがすべて静的である必要はありません。 すべてのユーザー間で共有される静的データを、レンダリング時に決まるクライアントの状態と組み合せる方法が提供されます。 TreeBeanデータは、TreeBeanの属性として設定できるTreeDataProxyインタフェースを実装するオブジェクトを使用して、レンダリングごとに設定できます。 TreeDataProxyの便利な実装の1つが、ClientStateTreeProxyです。 これは、ノードが開いている/閉じている状態を管理し、オプションでクライアントおよびサーバーの両方のツリーでの選択を、レンダリングごとに管理します。

    ツリー階層データ

    TreeBeanでは、IDnodesおよびproxyの3つの属性と、1つの名前の付けられた子をサポートします。 ツリーのIDは、サーバーによるイベント時のツリーの識別に使用されます。 proxy属性はオプションで、各ノードの一部のプロパティを取得するメソッドを提供します。 nodes属性は、ツリーのルート・ノードを含むDataObjectListを返します。 この最初のDataObjectListは、すべてのルート、つまり最上位のノードを示します。 ルート・ノードの数は、このルートDataObjectListでのgetLength()をコールした結果により決まり、getItem(int index)へのコールにより返されるすべてのDataObjectがルートDataObjectの1つを返します。 ユーザーは、ツリーの名前の付けられた子nodeStampを指定できます。 nodeStampは、適切なノード・データを使用してツリーの各ノードでレンダリングされるUINodeです。 ノード・スタンプが指定されていない場合、デフォルトのスタンプであるアイコンおよびリンクが使用されます。

    これらの各ルート・ノードDataObjectの子を決定するには、nodes属性の値を順に取得します。 この値は、ノードに子がないことを示すnullか、ノードの子を表す別のDataObjectListのいずれかです。 これらのDataObjectListも、nodes属性を使用して問い合され、ツリーをレンダリングするために、ツリー構造全体の作成が完成するまでプロセスが続きます。

    ツリー・ノードの外観

    各DataObjectはツリーで表示されるノードを表していることに注意してください。 特定のノードの実際の外観は、プロキシを介した一連の問合せにより取得されたプロパティにより決まります。 ノードのプロパティは、次のとおりです。

    • そのノードに表示されるテキストは、UIConstant TEXT_KEYを使用してStringとして格納されます。
    • そのノードに表示されるアイコンは、UIConstant ICON_KEYを使用して、イメージ・ファイル(幅16ピクセル、高さ22ピクセル)を指すString URIとして格納されます。 何も格納されていない場合、リーフ・ノードにはアイコンがレンダリングされず、子のあるノードにはデフォルトのフォルダ・アイコンがレンダリングされます。
    • 選択された状態でレンダリングされるノードでは、Boolean.TRUEがUIConstant SELECTED_KEYを使用して格納されている必要があります。
    • そのノードのリンク先は、UIConstant DESTINATION_KEYを使用してString URIとして格納されます。
    • ノードはEXPANDABLE_KEYを使用した問合せで、開いているか、閉じているか、あるいは子がないかが判断されます。 UIConstant EXPANDABLE_EXPANDED(またはEXPANDABLE_ALWAYS)を含むノードは、展開された状態で子とともにレンダリングされます。 EXPANDABLE_COLLAPSEDを含むノードは、現在非表示になっている子があるものとしてレンダリングされます。 EXPANDABLE_NOまたはnullを返すノードは、リーフとしてレンダリングされます。
    • EXPANDABLE_KEYを使用した問合せによりEXPANDABLE_EXPANDEDとしてマークされたノードには、COLLAPSE_DESTINATION_KEYを使用した問合せが実行され、開いているノードを閉じるリンク先として、String URIが返されます。
    • EXPANDABLE_KEYを使用した問合せによりEXPANDABLE_COLLAPSEDとしてマークされたノードには、EXPAND_DESTINATION_KEYを使用した問合せが実行され、閉じているノードを開くリンク先としてString URIが返されます。
    • EXPANDABLE_KEYを使用した問合せによってEXPANDABLE_ALWAYSとしてマークされたノードは閉じることができず、常に開いた状態でレンダリングされます。


    データ・バインドされたproxy属性を持つツリー

    <ctrl:content xmlns:ui="http://xmlns.oracle.com/uix/ui">
    
      <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
        <contents>
          <tree name="tree1" proxy="${TreeProxy.proxy}">
            <nodes>
              <nodes text="Root1" expandable="collapsed"/>
              <nodes text="Root2" expandable="collapsed"/>
              <nodes text="Root3" expandable="expanded">
                <nodes text="Node3-1"/>
                <nodes text="Node3-2" expandable="expanded">
                  <nodes text="Node3-2-1" selected="false" />
                  <nodes text="Node3-2-2" selected="true" expandable="no"/>
                  <nodes text="Node3-2-3" expandable="no"/>
                </nodes>
                <nodes text="Node3-3" expandable="no"/>
              </nodes>
              <nodes text="Root4" expandable="collapsed"/>
            </nodes>
          </tree>
    
        </contents>
    
        <provider>
          <data name="TreeProxy">
            <method class="oracle.cabo.doc.demo.DataTrees"
                    method="getTreeProxy"/>
          </data>
        </provider>
      </dataScope>
    </ctrl:content>
    
    <ctrl:handlers xmlns="http://xmlns.oracle.com/uix/controller">
    
      <event name="expand">
        <method class="oracle.cabo.doc.demo.DataTrees"
          method="expandEventHandler"/>
      </event>
    
    </ctrl:handlers>

    属性

    説明
    formName 送信するフォーム名。
    string
    formSubmitted 開く/閉じるリンクでフォーム送信を使用するかどうか。
    boolean
    unvalidated この要素をformSubmittedモードで使用した場合、デフォルト動作では、サーバーへの送信前にすべてのフォーム入力は検証されません。 この属性により、この検証を有効にできます。
    boolean

    子要素

    説明 必須 組込み可能な数
    <nodes>
    ツリー・データの階層。
    いいえ 1
    <nodeStamp>
    各ツリー・ノードにレンダリングするUINode。
    いいえ 1
    <proxy>
    ツリー・ノードと、そのノードの開閉状態、選択状態、および子の間にあるプロキシ。
    いいえ 1