From Nested Sets to Trees

Hi All
I need to construct a tree in java objects out of a table that has a nested set ( Joe Celko ) .
I have the table
Products
ProductID number primary key
Left number
Right number
A wanted to construct a tree base on the following
class Product {
Integer ProductID;
Product left;
Product right;
Does anyone know of a example/tutorial that explains this
thanks

Ps one product can have two childern , left and right , No more

Similar Messages

  • Batch file extracting all files from nested archives

    I have managed to leverage a powerful
    forfiles command line utility with the mighty
    7z compression program.
    Below is a simple batch file extracting all files from nested archives hidden at any depth inside other archives and/or folders. After the extraction each archive file turns into a folder having the archive file name. If, for example, there was an "outer.rar"
    archive file containing nothing but an "inner.zip" archive with only "afile.txt" inside, "outer.rar" becomes "...\outer.rar\inner.zip\afile.txt" file system path.
    @echo off
    rem extract_nested_archives.bat
    move %1 "%TMP%"\%2
    md %2
    7z x -o%1 -y %TMP%\%2
    del "%TMP%"\%2
    for %%a in (zip rar jar z bz2 gz gzip tgz tar lha iso wim cab rpm deb) do forfiles /P %1 /S /M *.%%a /C "cmd /c if @isdir==FALSE extract_nested_archives.bat @path @file"
    ARCHIVES ARE DELETED DURING THE EXTRACTION! Make a copy before running the script!
    "7z.exe" and "extract_nested_archives.bat" should be in folders available via the %PATH% environment variable.
    The first parameter of extract_nested_archives.bat is the full path name of the archive or folder that should be fully expanded; the second parameter is just the archive or folder name without the path. So you should run "c:\temp\extract_nested_archives.bat
    c:\temp\outer.rar outer.rar" from the command line to completely expand "outer.rar". "c:\temp" must be the current folder.
    Best regards, 0x000000AF

    Incredibly useful!  Thank you so much.  I did make a couple of small changes to make the script a little easier to use from the end-user perspective.
    First - I don't like making the user input the redundant second parameter, so I added this snippet which extracts it from the first parameter.  The first line of the snippet enables delayed expansion so that special characters in our file name don't
    break anything.  The second line pulls the parameter into a variable, and the 3rd line uses delayed expansion on that new variable.  Before implementing delayed expansion I had problems with file paths which included parentheses.
    SetLocal EnableDelayedExpansion
    Set SOURCE=%1
    For %%Z in (!source!) do (
    set FILENAME=%%~nxZ
    set FILENAME=%FILENAME:"=%
    Anyway once that was done, I just used %FILENAME% everywhere in the script instead of
    %2 (making sure to correct quotes as needed)
    This way, to run my script all you need to run is:
    C:\temp\extract_nested_archives.bat C:\temp\Archive.zip
    Second - I didn't want to modify the Windows environment variable.  So I replaced
    7z with "%PROGRAMFILES%\7-zip\7z.exe"
    I also replaced extract_nested_archives.bat with "%~f0" (which represents the full path+filename of the current script).
    Here is my full script now.  Tested on Windows 8 with the 64-bit version of 7-zip installed:
    @echo off
    Setlocal EnableDelayedExpansion
    Set source=%1
    For %%Z in (!source!) do (
    set FILENAME=%%~nxZ
    set FILENAME=%FILENAME:"=%
    move /Y %1 "%TMP%\%FILENAME%"
    md "%FILENAME%"
    "%PROGRAMFILES%\7-zip\7z.exe" x -o%1 -y "%TMP%\%FILENAME%"
    DEL "%TMP%\%FILENAME%"
    for %%a in (zip rar jar z bz2 gz gzip tgz tar lha iso wim cab rpm deb) do (
    forfiles /P %1 /S /M *.%%a /C "cmd /c if @isdir==FALSE "%~f0" @path @file"

  • Displaying Nested Sets

    Hello~
    I am just starting to use the nested set model for storing hierarchical data in a database, and while I understand the concept, I am not at all sure how to actually display the data in, say, an unordered list! Right now, I am using the following query to retrieve my list:
    SELECT
            node.pageName
        FROM
            admin_nav AS node,
            admin_nav AS parent
        WHERE
            node.lft BETWEEN parent.lft AND parent.rght
            AND parent.pageName = 'Assessment'
        ORDER BY
            node.lft
    It outputs correctly if I cfdump it, but I am not sure how to create a loop that would put the <ul> and <li> tags in the correct places. I have searched for some kind of tutorial about this, but no luck! Any help would be appreciated. Thanks!
    KC

    OK, I think I have got it all figured out, and I thought I would post my solution! Thanks to everyone for your help!
    I added a new table to my database to hold any special formatting tags for a given depth of the list (ie, I want my 1st level items to be enclosed in <h2></h2> tags).
    Query:
        SELECT
            o.pageName,
            o.depth,
            ant.specialTag
        FROM
            ADMIN_nav_tag AS ant
            RIGHT JOIN
                    SELECT TOP (100) PERCENT
                        node.pageName,
                        (COUNT(parent.pageName) - 1) AS depth
                    FROM
                        admin_nav AS node,
                        admin_nav AS parent
                    WHERE
                        node.lft BETWEEN parent.lft AND parent.rght
                        AND node.pageName <> 'Home'
                    GROUP BY
                        node.pageName,
                        node.lft
                    ORDER BY
                        node.lft
            AS o
            ON ant.depth = o.depth
    Output:
    <div id="navBar">
        <ul>
            <Cfset count = 0 />
            <cfoutput query="getNav" group="depth">
                <cfset liTag = '' />
                <cfif specialTag NEQ ''>
                    <cfset liTag = '<' & #specialTag# & '>' />
                </cfif>
                <cfoutput>
                    <Cfset fdepth = getNav.depth[getNav.currentRow + 1 ] />
                    <cfif lengthcount eq 1>
                        <li>#liTag##pagename##replaceNoCase(liTag, '<', '</')#</li>
                    <cfelse>
                        <li>#liTag##pagename##replaceNoCase(liTag, '<', '</')#
                        <cfif count lt lengthCount -1>
                            <Cfif fdepth gt depth>
                                <ul>
                            <cfelse>
                                </li>
                            </Cfif>
                            <cfif fdepth lt depth>
                                #repeatString('</ul></li>',depth-fdepth)#
                            </cfif>
                        <cfelse>
                            </li>
                        </cfif>
                        <Cfset count = count + 1 />
                    </cfif>
                </cfoutput>
            </cfoutput>
        </ul>
    </div>

  • Retrieve data from nested tables

    Hi All,
    I have big trouble to retrieve data from nested tables..
    From java code developer are passing struct data type to Oracle procedure.. So equal data type in oracle has been created as created as object
    CREATE OR REPLACE TYPE TXNDATA AS OBJECT
      TRAN_ID            NUMBER             ,
      EVENT_ID                   NUMBER             ,
      EVENT_CD                   VARCHAR2(10 BYTE))and create a procedure which has a IN parameter as TXNDATA
    now i need to retrieve the column data's through SELECT clause such as
    TYPE Proc_txn  IS TABLE OF  TXNJOURNALDATA;
    EVENT_JOURNAL_SEQ Proc_txn;
    select  * from table(cast(EVENT_JOURNAL_SEQ));but above SQL will give all column data's but i need to retrieve only 2 column values such as
    select EVENT_ID , EVENT_CD  from table(cast(EVENT_JOURNAL_SEQ))how can i achieve the above result set?
    Thanks & Regards
    Sami.

    use a table alias in your query
    SQL> set serveroutput on
    SQL> create TYPE TXNDATA AS OBJECT
      2  (
      3    TRAN_ID            NUMBER             ,
      4    EVENT_ID                   NUMBER             ,
      5    EVENT_CD                   VARCHAR2(10 BYTE));
      6  /
    Type created.
    SQL>
    SQL> create type txnjournaldata
      2  as table of txndata;
      3  /
    Type created.
    SQL>
    SQL> declare
      2     txn txnjournaldata := txnjournaldata (
      3                             txndata(10, 20, 'One')
      4                             ,txndata(10, 20, 'Two')
      5                           );
      6  begin
      7     for rec in (select tx.event_id
      8                       , tx.event_cd
      9                    from table (txn) tx
    10                 )
    11     loop
    12        dbms_output.put_line (rec.event_id||' - '||rec.event_cd);
    13     end loop;
    14  end;
    15  /
    20 - One
    20 - Two
    PL/SQL procedure successfully completed.Edited by: Alex Nuijten on Oct 24, 2011 12:24 PM

  • Problem in Retrive values from result set

    I have a class where i do all database operation .First i fire select query and take values from result set and based on that value i fire update query.
    Problem is that i am not getting all values from result set . i get only last value and when i fire update query i get error as :Resultset is closed.
    I am using acess and java.

    You probably are using the same Statement object for both queries? Try creating separate Statement objects for each query. (My guess is this a problem with the way you're using JDBC, not a Servlet issue.)

  • Mapping from nested to one table (sales order) XML to IDOC

    Hello,
    I have to map a xml file to the IDOC SALESORDER_CREATEFROMDAT2.SALESORDER_CREATEFROMDAT202.
    How I can map the the longtext from the XML file to the IDOC struktur.
    Part of the XML file, there could be n times BPosition with n times longtext. The longtext must be map with a table. I some case its a mapping from nested to mornal table.
        <BPosition>
             <lpos>1</lpos>
             <bbl_sap_nr/>
             <milvonr/>
             <kurztitel/>
             <anzbest/>
             <anzliefer/>
             <kostenpflichtig/>
             <longtext>
                <line>pos1 zeile1</line>
                <line>pos1 zeile 2</line>
             </longtext>
          </BPosition>
    thanks for your help.

    Hi, I have to map this 1 XML to 1 IDOC
    XML:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_Milver xmlns:ns0="http://ccssap.bfi.admin.ch/milver">
       <bestellung>
          <besteller>
             <bestellnr/>
             <auftragdefit/>
             <wempfdebit/>
             <bestelldat/>
             <lieferdat/>
             <anzpos/>
             <language/>
             <adrzeile1/>
             <adrzeile2/>
             <adrzeile3/>
             <adrzeile4/>
          </besteller>
          <Kopf>
             <Lkopf>Kopf1 zeile1</Lkopf>
             <Lkopf>Kopf1 zeile2</Lkopf>
          </Kopf>
          <BPosition>
             <lpos>1</lpos>
             <matnr/>
             <milvonr/>
             <kurztitel/>
             <anzbest/>
             <anzliefer/>
             <kostenpflichtig/>
             <bemerkung>
                <line>pos1 zeile1</line>
                <line>pos1 zeile 2</line>
             </bemerkung>
          </BPosition>
          <BPosition>
             <lpos>2</lpos>
             <matnr/>
             <milvonr/>
             <kurztitel/>
             <anzbest/>
             <anzliefer/>
             <kostenpflichtig/>
             <bemerkung>
                <line>pos2 zeile1</line>
                <line>pos2 zeile 2</line>
             </bemerkung>
          </BPosition>
       </bestellung>
    </ns0:MT_Milver>
    IDOC:
    The Idoc have a segment for the longtext (table).I have to map, lpos, line into  E1BPSDTEXT from SALESORDER_CREATEFROMDAT2. Its now more clear?

  • Help with creating a new XML file from an existing DOM tree!!

    i want to create a new XML file from an existing DOM tree
    i used this code to create a new document:
    static public Document createDocument(String fileName) throws ParserConfigurationException//,IOException,SAXException
              try {
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   factory.setIgnoringComments(true);
                   factory.setIgnoringElementContentWhitespace(true);
                   factory.setValidating(true);
                   DocumentBuilder builder =factory.newDocumentBuilder();
                   return builder.newDocument();
    //          handle exception creating DocumentBuilder
              catch ( ParserConfigurationException parserError ) {
                        throw new ParserConfigurationException();
              }then i used this code to transform the DOM :
    public void exportDocument(Document document) {
              try {
                   Source xmlSource = new DOMSource( document );
                   Result result = new StreamResult( System.out );
                   TransformerFactory transformerFactory =
                        TransformerFactory.newInstance();
                   Transformer transformer =transformerFactory.newTransformer();
                   transformer.setOutputProperty( "indent", "yes" );
                   transformer.transform( xmlSource, result );
           //then catching the exceptions
    But the file was not created and i didn't find where can i specify the DTD that the XML file should use and where can i enter the name of the XML file itself
    Another questoin can i write a DTD file dynamically during the execution of the program??

    Cross-post: http://forum.java.sun.com/thread.jspa?threadID=784467&messageID=4459240#4459240

  • How to retrieve date from a set type in SAP CRM in BRF+ application

    Hi,
    Can anybody please let me know how can I retrieve date from a set type in SAP CRM to BRF+.
    I need to process the data in BRF+ and then send it back to CRM. Thanks.
    Regards
    Yogesh

    Hi Manish,
    From my experience, you cannot change an existing attribute of a set type (esp. when it has a dependency).
    You need to delete the attribute, save the changes and then re-create the attribute with new value table.
    Also remove any dependencies before deleting the attribute.
    Regards,
    Vartika

  • How to change content type from Document set to Item

    While creating content type I've selected Item as a parent but after created I can see its showing Document Set as a parent content type. Now can anyone please suggest if possible I can change the parent content type from Document Set to Item.

    Hi,
    From your description, I know you want to change content type’s parent after creating it.
    There is no OOB method to change content type’s parent after you create it. If current content type has not been used, you could delete it and recreate it with your desired base type. Here are similar cases:
    http://sharepoint.stackexchange.com/questions/16131/change-base-content-type-of-content-type
    https://social.technet.microsoft.com/Forums/sharepoint/en-US/b976f17e-99b5-42bb-bc82-8d4123a625cf/change-the-parent-of-a-content-type.
    This article may help you understand the relationship of Content type inheritance:
    https://support.office.com/en-au/article/Create-and-edit-content-types-3d5d45af-608d-4183-8d51-073095fe0312#__toc239159103.
    Best Regards
    Vincent Han
    TechNet Community Support

  • EEWB (attributes from product set type)

    Hi gurus,
    I have a question about EEWB. Could you please help me.
    There is possibility to add components (attributes from product set type) at item level:
    Business object - BUSINESS_TRANSACTION
    Extension Type - ADD_NEW_ITEM_COMPONENT.
    I’ve created an extension with certain set type (it consists of 2 attributes). Everything was ok.  New fields with 2 attributes have been added to new tab in a sales order’s item.
    But then I’ve added 1 new attribute to the same set type. So I think this new attribute is to appear on the same tab with 2 other attributes. But it doesn't’t!
    I’ve regenerated my extension, I’ve recalled wizard for this extension. Nothing has changed. There is still only 2 attribute in the tab.
    So is it normal situation and is it necessary to create a new extension in order new fields to appear in a tab? Or I can do something else without creating the new extension?
    So could you help me and give any solutions. Appreciate any help.
    And thanks in advance.
    Sunny.

    It works already.

  • Email Notification send from previous setting although it has been deleted.

    Hello,
    Current monitoring schedule for Daily Monitor Open Item (Vendor) are 3 times a day at 1700, 1730 and 1800. However, we receive a notification for this monitoring activity at 0600 with a differents in (1) email header, (2) Monitoring ID and (3) Email Description.
    (1) Email Header:
    a) Normal notification has a header like below:
    Solution number.....SOL/0020203551/0021324570_0020203551
    Solution name.......BPM - PER
    Business Process....Daily Monitoring
    Step................Monitor AP Open Items
    System..............PER
    Monitoring Object...Open Items (Vendors)
    Monitoring ID.......000002736757000
    b) The notification we received at 0600 has header like below:
    Solution number.....SOL/0020203551/0021324570_0020203551
    Solution name.......BPM - PER
    Business Process....0000000662
    XXX.................0000000674
    System..............PER
    Monitoring Object...0000000719
    Monitoring ID.......000002563457000
    (2) Monitoring ID
    a) Monitoring ID from our setting at 1700, 1730 & 1800 is 000002736757000
    b) Monitoring ID from email at 0600 is 000002563457000
    (3) Email Description
    Email description from email at 0600 is an old email format. We have no longer using that email format for all of our monitoring activities.
    We double check this issue at Scheduling Overview and every day it is expected Collector Runs at 0600 even weu2019re not scheduling this session.
    We already deactivate and delete the current setting. Then do the setting again for Daily Monitor Open Item (Vendor). But still the notification is still there.
    Please advice on how to disable the unwanted email notification.
    Thanks

    I have discovered this site which claims the ability to do what you might want. I have no personal experience of it!
    http://www.icopybot.com/itunes-backup-manager.htm

  • How to extract controlfile from backup set?

    Hi
    If I use this "INCLUDE CURRENT CONTROLFILE" in backup command direct to tape and no catalog, How to extract controlfile from backup set from tape?
    Thanks,
    Taohiko
    Edited by: taohiko on Sep 17, 2009 7:54 AM

    yes
    list backup of controlfile
    will show you where controlfile backup piece reside with backup piece name
    after then
    restore controlfile from 'backup_piece_naem_with_its_full_path_from_above_command_result';Khurram

  • HT5048 how to restore like fresh from factory setting the 10.7.3

    How to restore fresh from factory setting w/o install DVD?

    Install or Reinstall Lion from Scratch
    If possible backup your files to an external drive or second internal drive.
    Boot to the Recovery HD:
    Restart the computer and after the chime press and hold down the COMMAND and R keys until the menu screen appears. Alternatively, restart the computer and after the chime press and hold down the OPTION key until the boot manager screen appears. Select the Recovery HD and click on the downward pointing arrow button.
    Erase the hard drive:
    Select Disk Utility from the main menu and click on the Continue button.
    After DU loads select your hard drive (this is the entry with the mfgr.'s ID and size) from the left side list. Note the SMART status of the drive in DU's status area.  If it does not say "Verified" then the drive is failing or has failed and will need replacing.  SMART info will not be reported  on external drives. Otherwise, click on the Erase tab in the DU main window.
    Set the format type to Mac OS Extended (Journaled.) Click on the Erase button and wait until the process has completed.
    Quit DU and return to the main menu.
    Reinstall Lion: Select Reinstall Lion and click on the Install button.
    Note: You can also re-download the Lion installer by opening the App Store application. Hold down the OPTION key and click on the Purchases icon in the toolbar. You should now see an active Install button to the right of your Lion purchase entry. There are situations in which this will not work. For example, if you are already booted into the Lion you originally purchased with your Apple ID or if an instance of the Lion installer is located anywhere on your computer.

  • How can i Unlocked Iphone 4 From US Set

    Hello...i have buy a iphone4 16GB From US set...
    But having some problems....
    i cannot use a Malaysia Local Sim Card...
    My Friend Are Telling me Because I buy Is Locked Set...
    Any body Can Teach me How to unlock my Phone?
    it using IOS 5.0.0...now my phone likes a stone only...
    cant be call...cant online...any body can tell me what can i do?

    Any body Can Teach me How to unlock my Phone?
    If it is locked to AT&T in the US, you can't unlock it. Sell it and buy an unlocked model.

  • Issue : drag and drop from list control to tree control

    Hi,
    I was trying a drag and drop from list control to tree control. I have used some sample data to populate list and tree controls .
    It is working fine . except one problem ..
    Prob : when i drag an item to tree control .. it gets added .. now tree contains (X+1) data in list .. say X is the inital number of nodes in a tree node.
              now if i drag another item from list to last item in the tree node  .. i.e at X+1 index. .. it throws null pointer exception.
    I am considerably new in flex programming . looking for help from experts ..
    Below is my code :
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                    layout="horizontal"
                    creationComplete="init()">
        <mx:Script>
            <![CDATA[
                import mx.controls.listClasses.IListItemRenderer;
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                import mx.utils.ObjectUtil;
                import mx.collections.ICollectionView;
                import mx.core.UIComponent;
                import mx.managers.DragManager;
                import mx.events.DragEvent;
                import mx.controls.Alert;
                import mx.controls.Label;
                import mx.events.CloseEvent;
                private var homePath:String="/home/e311394/dndTest/";
                private var destPath:String="/home/e311394/dndDest/";
                private var eid:String="e311394";
                private var actn:String;
                [Bindable]
                private var cm:ContextMenu;
                private var cmi:ContextMenuItem;
                [Bindable]
                private var dp:ArrayCollection;
                private function init():void
                    cmi=new ContextMenuItem("Remove");
                    cmi.enabled=true;
                    cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_menuItemSelect);
                    cm=new ContextMenu();
                    cm.hideBuiltInItems();
                    cm.customItems=[cmi];
                    cm.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenuItem_menuSelect);
                    list.contextMenu=cm;
                private function contextMenuItem_menuSelect(evt:ContextMenuEvent):void
                    list.selectedIndex=lastRollOverIndex;
                private function contextMenuItem_menuItemSelect(evt:ContextMenuEvent):void
                    var loclSelectedRow:Object=list.selectedItem;
                    var lostrSelectedMenuItem:String;
                    lostrSelectedMenuItem=evt.target.caption;
                    if (loclSelectedRow != null)
                        var obj:Object=new Object()
                        obj.label=loclSelectedRow.label as String;
                            //Alert.show(obj.label);
                    if (lostrSelectedMenuItem == "Remove")
                        if(loclSelectedRow!=null)
                        var pth:String=homePath.concat(loclSelectedRow.label);
                        //Alert.show(pth);
                        //FlexDnDRemoteService.process(eid,"delete",pth,"-"); 
                        var coll:ArrayCollection=list.dataProvider as ArrayCollection;
                        if (coll.contains(loclSelectedRow))
                            coll.removeItemAt(coll.getItemIndex(loclSelectedRow));
                public function onTreeDragEnter(event:DragEvent):void
                    event.preventDefault();
                    DragManager.acceptDragDrop(event.target as UIComponent);
                    tree.showDropFeedback(event);
                protected function onTreeDragOver(event:DragEvent):void
                    event.preventDefault();
                    event.currentTarget.hideDropFeedback(event);
                    try
                        var index:int=tree.calculateDropIndex(event);
                    catch (e:Error)
                        DragManager.showFeedback(DragManager.NONE);
                        return;
                    tree.selectedIndex=index;
                    var draggedOverItem:Object=tree.selectedItem;
                public function onTreeDragExit(event:DragEvent):void
                    event.preventDefault();
                    tree.hideDropFeedback(event);
                private function showAlert():void
                    Alert.yesLabel="Move";
                    Alert.noLabel="Copy";
                    Alert.buttonWidth=70;
                    Alert.show("Copy / Move ?", "Confirm", Alert.YES | Alert.NO | Alert.CANCEL, this, alertListener, null, Alert.OK);
                private function alertListener(eventObj:CloseEvent):void
                    var result:Boolean=false;
                    if (eventObj.detail == Alert.CANCEL)
                        //Alert.show("CANCEL");
                        return;
                    if (eventObj.detail == Alert.YES)
                        //Alert.show("YES");
                        result=true;
                    else if (eventObj.detail == Alert.NO)
                        //Alert.show("NO");
                        result=false;
                    var index:int=tree.calculateDropIndex(treedropevt);
                    //Alert.show("Drop Pos" + index.toString());
                    /* var treeList:ArrayCollection=tree.dataProvider as ArrayCollection;
                       Alert.show(" index"+index+"Length "+treeList.length);
                       if(index > treeList.length)
                       Alert.show("Returning");
                       return;
                    var items:Array=new Array();
                    if (treedropevt.dragSource.hasFormat("items"))
                        items=items.concat(treedropevt.dragSource.dataForFormat("items") as Array);
                    var parentItem:Object;
                    parentItem=getObjectTarget();
                    /* if (tree.dataDescriptor.isBranch(tree.indexToItemRenderer(index).data))
                       parentItem=tree.indexToItemRenderer(index).data;
                       else
                       var dropParentPackage:Object = tree.mx_internal::_dropData.parent as Object;
                       Alert.show("HAck"+dropParentPackage.toString());
                       parentItem=tree.getParentItem(tree.indexToItemRenderer(index).data);
                       //Alert.show("Lenght "+ObjectUtil.getClassInfo(parentItem).properties.length);
                    //Alert.show("Lenght "+ObjectUtil.getClassInfo(parentItem).properties.length);
                    var position:int=0;
                    /* if(ObjectUtil.getClassInfo(parentItem).properties.length==0)
                       Alert.show("Returning");
                       return;
                    if (parentItem != null)
                        try
                            while (tree.indexToItemRenderer(index).data != parentItem)
                                //Alert.show(tree.indexToItemRenderer(index).data.toString());
                                if (index > 0)
                                    index--;
                                //Alert.show("Insiade");
                                position++;
                        catch (e:Error)
                            Alert.show("Catch" + index.toString());
                            return;
                    for each (var item:Object in items)
                        var obj:Object=new Object()
                        obj.label=item.label as String;
                        if (parentItem != null)
                            //Alert.show("ADDED");                       
                            tree.dataDescriptor.addChildAt(parentItem, obj, position++);                       
                        else
                            //Alert.show("PARENT NULL");
                            tree.dataDescriptor.addChildAt(tree.selectedItem, obj, position++);                       
                        var spth:String=homePath.concat(item.label);
                        //Alert.show(spth);   
                        var dpth:String=destPath.concat(item.label);
                        //Alert.show(dpth);
                        if (result == true)
                            removeItems();
                                //FlexDnDRemoteService.process(eid,"move",spth,dpth);
                        else
                            //FlexDnDRemoteService.process(eid,"copy",spth,dpth);
                        tree.validateNow();
                public function getObjectTarget():Object
                    var dropData:Object=tree.mx_internal::_dropData as Object;
                    if (dropData.parent != null)
                        return dropData.parent;
                    else
                        // if there is not parent (root of the tree), I take the root directly
                        var renderer:IListItemRenderer=tree.indexToItemRenderer(0);
                        return renderer.data;
                public function removeItems():void
                    //remove moved elements
                    var items:Array=treedropevt.dragSource.dataForFormat("items") as Array;
                    var coll:ArrayCollection=list.dataProvider as ArrayCollection;
                    for each (var item:Object in items)
                        if (coll.contains(item))
                            coll.removeItemAt(coll.getItemIndex(item));
                private var treedropevt:DragEvent;
                public function onTreeDragDrop(event:DragEvent):void
                    treedropevt=event;
                    showAlert();
                    event.preventDefault();
                    tree.hideDropFeedback(event);
                public function resultHandler(event:ResultEvent):void
                    Alert.show("Success", "Status");
                public function faultHandler(event:FaultEvent):void
                    Alert.show(event.fault.faultString, "Failure");
            ]]>
        </mx:Script>
        <mx:ArrayCollection id="listDP">
            <mx:Object label="File1.dnd"/>
            <mx:Object label="File2.dnd"/>
            <mx:Object label="File3.dnd"/>
            <mx:Object label="File4.dnd"/>
            <mx:Object label="File5.dnd"/>
        </mx:ArrayCollection>
        <mx:Number id="lastRollOverIndex"/>
        <!--
             <mx:ArrayCollection id="treeDP">
             <mx:Object label="/home">
             <mx:children>
             <mx:Object label="dummy1.ks"/>
             <mx:Object label="dummy2.ks"/>
             <mx:Object label="e493126">
             <mx:children>
             <mx:ArrayCollection>
             <mx:Object label="/home/e493126/sample1.ks"/>
             </mx:ArrayCollection>
             </mx:children>
             </mx:Object>
             </mx:children>
             </mx:Object>
             </mx:ArrayCollection>
        -->
        <mx:ArrayCollection id="treeDP">
            <mx:Object label="/dndDest">
                <mx:children>
                    <mx:ArrayCollection>
                        <mx:Object label="sample1.ks"/>
                        <mx:Object label="sample2.ks"/>
                        <mx:Object label="sample3.ks"/>
                        <mx:Object label="sample4.ks"/>
                        <mx:Object label="sample5.ks"/>
                        <mx:Object label="sample6.ks"/>
                    </mx:ArrayCollection>
                </mx:children>
            </mx:Object>
        </mx:ArrayCollection>
        <mx:List id="list"
                 itemRollOver="lastRollOverIndex = event.rowIndex"
                 width="50%"
                 dragEnabled="true"
                 dataProvider="{listDP}"
                 labelField="label"
                 allowMultipleSelection="true"
                 dragMoveEnabled="false">
        </mx:List>
        <mx:Tree id="tree"
                 width="50%"            
                 dragEnabled="true"            
                 dataProvider="{treeDP}"            
                 dragEnter="onTreeDragEnter(event)"
                 dragOver="onTreeDragOver(event)"
                 dragExit="onTreeDragExit(event)"
                 dragDrop="onTreeDragDrop(event)"
                 labelField="label"
                 liveScrolling="true">
        </mx:Tree>
        <mx:RemoteObject id="FlexDnDRemoteService"
                         showBusyCursor="true"
                         destination="FlexDnD">
            <mx:method name="process"
                       result="resultHandler(event)"
                       fault="faultHandler(event)"/>
        </mx:RemoteObject>
    </mx:Application>
    Thanks,
    Rajiv

    Ya , i have searched and have used the same code.
    But needed to customize few things like:
    stop dnd in same tree
    drop some item into a folder ..( onto it ) etc
    have achieved the same .. but this issue ..
    i think the tree dataprovider (contents internally is not being updated .. only the UI)
    any suggestions ?
    - Rajiv

Maybe you are looking for