Pessoal,

Segue a minha solução (mas estou certo de que existem soluções melhores):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute" 
        initialize="getInitialData();">
        <mx:Script>
                <![CDATA[
                        import mx.controls.Alert;
                        import mx.collections.XMLListCollection;

                        private const FOLDER:String = "folder";
                        private const COURSE:String = "course";
                        private const MODULE:String = "module";
                        
                        [Bindable]
                        private var types: Array = [FOLDER,COURSE,MODULE];
                
                        [Bindable]
                        private var coursesList:XML = 
                                        <list><node objectID="6" name="CF" 
parentID="1" recordType="course"><node objectID="7" name="CFC" parentID="6" 
recordType="module"/><node objectID="8" name="CFAdmin" parentID="6" 
recordType="module"/><node objectID="9" name="CFML" parentID="6" 
recordType="module"/><node objectID="10" name="CFSCRIPT" parentID="6" 
recordType="module"/></node><node objectID="2" name="DataBase" parentID="1" 
recordType="folder"><node objectID="3" name="Oracle" parentID="2" 
recordType="course"><node objectID="4" name="PLSQL" parentID="3" 
recordType="module"/><node objectID="5" name="SP" parentID="3" 
recordType="module"/></node></node></list> ;
                        
                        [Bindable]
                        private var courses:XMLListCollection;
                        
                        private function getInitialData():void
                        {
                                courses = new 
XMLListCollection(coursesList.node);
                        }

                        private function treeNodeLabelFunction(item:XML):String
                        {
                                return [EMAIL PROTECTED] + " (" + [EMAIL 
PROTECTED] + ")";
                        }
                        
                        
                        private function moveNodeTest():void
                        {
                                if ([EMAIL PROTECTED] != MODULE)
                                {
                                        btUp.enabled = false;
                                        btDown.enabled = false;
                                }
                                else
                                {
                                        var modulesList:XMLList = 
myTree.selectedItem.parent().descendants();
                                        if (modulesList[0] == 
myTree.selectedItem)
                                        {
                                                btUp.enabled = false;
                                                btDown.enabled = true;
                                        }else if 
(modulesList[modulesList.length()-1] == myTree.selectedItem)
                                        {
                                                btUp.enabled = true;
                                                btDown.enabled = false;
                                        }
                                        else
                                        {
                                                btUp.enabled = true;
                                                btDown.enabled = true;
                                        }
                                }
                        }
                        
                        private function moveNode(type:String):void
                        {
                                var i:Number;
                                var module:XML;
                                var aModule:XML;
                                var tempNode:XML;
                                
                                if (type == "up")
                                {
                                        module = XML(myTree.selectedItem);
                                        tempNode = 
XML(myTree.selectedItem).copy();
                                        myTree.selectedIndex = 
myTree.selectedIndex - 1
                                        aModule = XML(myTree.selectedItem);
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                }
                                else if (type == "down")
                                {
                                        module = XML(myTree.selectedItem);
                                        tempNode = 
XML(myTree.selectedItem).copy();
                                        myTree.selectedIndex = 
myTree.selectedIndex + 1
                                        aModule = XML(myTree.selectedItem);
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                        [EMAIL PROTECTED] = [EMAIL PROTECTED];
                                }
                                else
                                {
                                        Alert.show("Error");
                                }
                                moveNodeTest();
                        }
                        ]]>
        </mx:Script>

        <mx:Tree id="myTree" dataProvider="{courses}" 
labelFunction="treeNodeLabelFunction" 
                change="moveNodeTest()"
                width="200" showRoot="false" height="300"/>
        
        <mx:TextInput id="tiTemp" text="{myTree.selectedItem.parent()[EMAIL 
PROTECTED]" y="142" x="208"/>
        
        <mx:Button id="btUp" label="UP" enabled="false" click="moveNode('up')" 
x="209" y="189" width="58"/>
        <mx:Button id="btDown" label="Down" enabled="false" 
click="moveNode('down')" x="209" y="219"  />
        
</mx:Application>


-- 
Hamad Amaral
[EMAIL PROTECTED]


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a