采用数据库为Flex Tree组件的提供数据-FlexTree组件

来源:互联网 发布:域名转移流程 编辑:程序博客网 时间:2024/04/29 04:26

FlexTree组件

Tree 数据格式以为:

<node label="音乐">

    <node label="流行">

      <node label="林忆莲" />

      <node label="李克勤" />

      <node label="刘德华" />

      <node label="张学友" />

    </node>

    <node label="古典">

      <node label="李斯特" />

      <node label="莫扎特" />

    </node>

</node>

 

  Flash Builder 4 Tree组件,这是显示部分。

<s:Panel title="Flex Tree 显示例子"

             width="75%" height="75%"

             horizontalCenter="0" verticalCenter="0">

        <s:VGroup left="10" right="10" top="10" bottom="10">

            <s:Label width="100%" color="blue"

                     text="选择一个树节点."/>

           

            <mx:HDividedBox width="100%" height="100%">

                <mx:Tree id="myTree" width="50%" height="100%" labelField="@label"

                         showRoot="false" change="treeChanged(event);"/>

                <s:TextArea height="100%" width="50%"

                            text="Selected Item: {selectedNode.@label}"/>

            </mx:HDividedBox>

        </s:VGroup>

    </s:Panel>

 

treeChanged”处理树节点被改变事件,目的显示节点内容

public function treeChanged(evt:Event):void {

    selectedNode = Tree(evt.target).selectedItem as XML;

}

 

     定义一个RemoteObject,目的远程调用Java对象。

    <fx:Declarations>

    <mx:RemoteObject id="srv" destination="echo2005T" result="onselectresult(event)" fault="onfault(event)"/>

    </fx:Declarations>

 

onselectresult”处理接收数据,并绑定Tree

private function onselectresult(event:ResultEvent):void{

    var xmldocroot:XML=new XML(event.result);

    myTree.dataProvider=xmldocroot.child("node");

}

 

应用程序启动时就要获取数据,所以加一个creationComplete事件处理RemoteObject远程调用Java对象,getAlbumElementToXml_V2是一个Java方法,返回org.w3c.dom.Document类,该类型可以转化为Flex XML 类型。

 

完整Flex2001.mxml

<?xml version="1.0" encoding="utf-8"?>

<!-- Simple example to demonstrate the Halo Tree control. -->

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

               xmlns:s="library://ns.adobe.com/flex/spark"

               xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="application1_creationCompleteHandler(event)">

   

    <fx:Script>

        <![CDATA[

            import mx.controls.Alert;

            import mx.events.FlexEvent;

            import mx.rpc.events.FaultEvent;

            import mx.rpc.events.ResultEvent;

           

            [Bindable]

            public var selectedNode:XML;

           

            // Event handler for the Tree control change event.

            public function treeChanged(evt:Event):void {

                selectedNode = Tree(evt.target).selectedItem as XML;

            }

           

            //结果处理函数

            private function onselectresult(event:ResultEvent):void{

                var xmldocroot:XML=new XML(event.result);

                myTree.dataProvider=xmldocroot.child("node");

            }

           

            //处理错误函数

            private function onfault(event:FaultEvent):void{

                Alert.show(event.fault.faultString, 'Error');     

            }

           

            protected function application1_creationCompleteHandler(event:FlexEvent):void

            {

                // TODO Auto-generated method stub

                srv.getAlbumElementToXml_V2();

            }

           

        ]]>

    </fx:Script>

   

    <fx:Declarations>

        <mx:RemoteObject id="srv" destination="echo2005T" result="onselectresult(event)" fault="onfault(event)"/>

    </fx:Declarations>

   

    <s:Panel title="Flex Tree 显示例子"

             width="75%" height="75%"

             horizontalCenter="0" verticalCenter="0">

        <s:VGroup left="10" right="10" top="10" bottom="10">

            <s:Label width="100%" color="blue"

                     text="选择一个树节点。"/>

           

            <mx:HDividedBox width="100%" height="100%">

                <mx:Tree id="myTree" width="50%" height="100%" labelField="@label"

                         showRoot="false" change="treeChanged(event);"/>

                <s:TextArea height="100%" width="50%"

                            text="Selected Item: {selectedNode.@label}"/>

            </mx:HDividedBox>

        </s:VGroup>

    </s:Panel>

   

</s:Application>

 

原创粉丝点击