Hi Manish thanks for taking the time.  I got this code from an earlier post in the FlexCoders list.  I wanted to change it to grab from an xml file instead of hard coding it into the mxml

To see it working, comment out line 50 and uncomment line 49 and 75-87


<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:Script>
<![CDATA[
import mx.managers.DragManager;

function doDragEnter(event) {
    event.handled = true;
    trace("doDragEnter");
}

function doDragExit(event) {
    trace("doDragExit");
    event.target.hideDropFeedback();
}

function doDragOver(event) {
    trace("doDragOver");
    event.target.showDropFeedback();
    if (Key.isDown(Key.CONTROL))
        event.action = "">     else if (Key.isDown(Key.SHIFT))
        event.action = "">     else
        event.action = ""> }

function doDragDrop(event) {
    trace("doDragDrop");
    // Since the drag is over, remove visual feedback from the target.
    doDragExit(event);
    var dragItems = event.dragSource.dataForFormat("treeItems");
    var dest = event.target;
    //var dropLoc = dest.getDisplayIndex(dest.getTreeNodeAt(0));
    var dropLoc = dest.getDropLocation();
    var destParentNode = dest.getDropParent();
   
    var dropNode = dest.getNodeDisplayedAt(dropLoc);
    //var relDropLoc = dest.getDisplayIndex(dropNode);
    //has to be used when shift dragging (copy) a node;
    //dest.clearSelected();
    for (var i = dragItems.length - 1; i >= 0; i--)    {
        destParentNode.addTreeNodeAt(dropLoc, dragItems[i]);
        //destParentNode.selectItem(dropLoc, true);
    }
}
function initApp() {
    trace("initApp");
    //firstList.dataProvider = treeDP;
    treenodes.send();
    //secondList.dataProvider = [];

}
function doDragComplete(event) {
    trace("doDragComplete");
    var dragItems =    event.dragSource.dataForFormat("source").selectedItems;
    //trace(event.dragSource.dataForFormat("source").selectedItems);
    var counter = dragItems.length;
    for (var i=0;i<counter;i++)    {
        var item = dragItems[i];
        //trace(item);
        item.removeTreeNode();
    }
}

    function treeResult(event) {
        firstList.dataProvider=treenodes.result.people;       
    }

]]>
</mx:Script>

<mx:HTTPService id="treenodes" url="" result="treeResult(event)"/>
<!-- this works
<mx:XML id="treeDP">
        <node label="root">
            <node label="A">
                <node label="1"/>
                <node label="2"/>
            </node>
            <node label="B">
                <node label="3"/>
                <node label="4"/>
            </node>
        </node>
</mx:XML>
-->
<mx:Label text="Drag items within the list" />
<mx:HBox marginBottom="6">

<mx:Tree id="firstList" dragEnabled="true" height="400" width="300"
    multipleSelection="true"
    initialize="initApp()"
    dragComplete="doDragComplete(event)"
    dragEnter="doDragEnter(event)"
    dragExit="doDragExit(event);"
    dragOver="doDragOver(event);"
    dragDrop="doDragDrop(event)"/>
<mx:Button label="Reset tree" click="treenodes.send()"/>
</mx:HBox>
</mx:Application>




Here is the nodes.xml file in the same directory as this mxml
<people>
        <node label="root">
            <node label="A">
                <node label="1"/>
                <node label="2"/>
            </node>
            <node label="B">
                <node label="3"/>
                <node label="4"/>
            </node>
        </node>
</people>



On 5/20/05, Manish Jethani <[EMAIL PROTECTED]> wrote:
On 5/20/05, Rick Schmitty <[EMAIL PROTECTED]> wrote:
>  Hi all, was wondering if there is some kind of function to 'correct' (?)
> the indentation after doing a drag/drop with a tree

Can you post some code with instructions?



Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/






Yahoo! Groups Links

Reply via email to