Dataprovider for Flex Tree

how do you dynamically populate nodes in the Flex tree with data from a database?
For example... if I have a node for Groups and a database for names of groups... how would I populate the child nodes of the Groups folder with the names of the groups in the database?

alright i'll experiment. you may be able to help me understand why this isn't working though... this is the route i was going down:
i wanted to convert this mxml to actionscript and bind it to the tree (so i can add results from my dataprovider):
    <mx:XMLListCollection id="treeData">
        <mx:source>
      <mx:XMLList>
              <node label="Items">
                  <node label="Open"/>
                  <node label="In Progress"/>
              </node>
      </mx:XMLList>
        </mx:source>
    </mx:XMLListCollection>
and i was trying this code to make it bindable:
var stringData:String = '<node label="Items">' + '<node label="Open"/>' + '<node label="In Progress"/>'
+ '</node>';
var treeData= new XMLList(stringData);
but when i use actionscript to create the treeData variable... and use {treeData} as the binding data... nothing shows in my tree.

Similar Messages

  • Assigning Complext XML as DataProvider to Flex Tree

    I have complex XML structure to fed as dataprovider for FlexTree. Wanted to know how can i specify the grouping.My sample XML structure looks like this ->
    <root>
         <Group>
              <name>
              <size>
              <location>
              <children>
                  <Group>
                        <name>
                        <size>
                        <location>
                   </Group>
              </children>
         </Group>
         <Group>    
              <name>
              <size>
              <location>
              <children>
                   <Group>
                        <name>
                        <size>
                        <location>
              </children>
         </Group>
    </root>
    I could actually say element "Group" can have Group within itself as child.I want to display them in Tree.How can i accomplish this.I searched so many examples no one have solution for this.Help greatly appreaciated.Thanks a ton.
    Thanks,
    Manohar.

    I think you need a custom ITreeDataDescriptor.

  • How to Flex tree control using folder click event  to pass coldfusion to get data from dynamiclly ?

    Hi friends.........
                Iam using flex tree control data coming from coldfusion file to display grid. As i click the tree folder to change the data from dynamic from grid.
    How to pass the folder id from coldfusion file.. Is it possible ?.. Means give any example please....
    Any One Help Me......
    With Regards.,
    Lingu.......

    When you set the dataProvider for your tree control, you actually pass an array or arraycollection or whatever to that property. The array contains objects coming from your server, right? Each object should contain a property with the folder id, something like:
    var arr:Array = [{id: 1, folderID: 34, name: "..."}, {id: 2, folderID: 4, name: "..."}, ...];
    Now, when you click an item in your tree or your dataGrid, you can access the folder id by:
    myTree.selectedItem.folderID
    Hope this helps
    Dany

  • Selecting/highlighting a node in Flex Tree using HierarchicalCollectionView as DataProvider

    Hi,
    I am using GroupingCollection2 as the dataprovider for HierarchicalCollectionView. The GroupingCollection2 takes its data from an ArrayCollection. And finally I have a Tree whose dataprovider is the HierarchicalCollectionView . I want to acheive 2 things:
    1) I want to programatically select/highlight a node in this tree. Using expandItem and passing the Object from the arraycollection is not working.
    2) Refresh the tree if there is a change in the arrayCollection.
    For the second task, I have a Java Layer that gives me the ArrayCollection  (dp for GroupingCollection2) when I fire a CairngormEvent. But the problem is that every node in the tree is duplicated. I can clearly see that say there are 8 items in the array collection but still the tree shows 16 items ( Each item duplicated as the node in the tree.)
    I have been trying to figure this out for many days now without any luck. Any sort of suggestion would be appreciated.
    Thank u in advance.

    I got the refreshing of the tree part by myself. One needs to call the refresh method on the GroupingCollection2 and HierarchicalCollectionView objects when the arraycollection has just arrived from the database.
    But I still havent been able to figure out how to highlight or open a tree node programatically. I am repeating that using (calling / setting) tree.expandItem() and tree.openItems is not helping me. Plz somebody help.

  • Change the root of Flex Tree dynamically

    I have a Flex Tree constructed dynamically. The dataprovider is xmllistcollection.The user clciks on a button to add an item(node) to the tree.
    when user tries to add 2nd item to the tree I want to create root(with a button) at the top automatically.
    So  a Root need to be created dynamically after 2nd item is added.
    Can someone please help me in getting this.
    I am using MXTreeItemrender  as Itemrender and was able to add nodes. But I could not get the third item(I am taking this xml node as Branch and adding) added to the top of the tree.
    Any help is very much appreciated

    Or in APEX 4.0 this can be done using a Dynamic Action that executes JavaScript code to change the region title.
    Give the region a static region ID for use in a jQuery selector.
    As solutions may be dependent on APEX version&mdash;among other factors&mdash;always specify the following information in your initial post:
    <li>APEX version
    <li>DB version and edition
    <li>Web server architecture (EPG, OHS or APEX listener)
    <li>Browser(s) used
    <li>Theme
    <li>Templates
    <li>Region type

  • Populate flex tree control on demand using HTTPService (Flex 3)

    First, I am sorry if the same post is already posted here but after spending 30 minutes or may be more I could not find the solution.
    By the way I have two problems. 1.) I am new to flex which I know if my own problem and soon I will handle it.
    2.) This is major problem for me. I have to populate Tree control from database and I used HTTPService to get the data from database.
    I created a object of HTTPService and on load of Tree control I am calling a function which calls the HTTP URL and returns me the first level of node for my Tree.
    When I click on any node a function is called again using HTTPService and result is appended to the currently selected node. The same goes until n level and it works fine. I was happy with my results. I am stuck in new problem. The problem is if the tree is already populated on my browser and I make some add/update/delete any node or child node, the flex doesn't make a call to HTTP URL and I am not getting updated data.
    The mxml code is below (this code has some extra things too).
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"  backgroundGradientAlphas="[1.0, 1.0]"
    backgroundGradientColors="[#000000, #868686]" >
    <mx:Script>
      <![CDATA[
       import mx.utils.StringUtil;
       import mx.rpc.http.HTTPService;
       import mx.events.ListEvent;
       import mx.binding.utils.BindingUtils;
       import mx.controls.Alert;
       import mx.rpc.events.FaultEvent;
       import mx.collections.XMLListCollection;
       import mx.utils.ObjectProxy;
       import mx.collections.ArrayCollection;
       import mx.rpc.events.ResultEvent;
       import mx.utils.ArrayUtil;
       [Bindable]
       public var datalist:XMLListCollection = new XMLListCollection();
       [Bindable]
       public var xmlFromDatabase:HTTPService=new HTTPService();
       [Bindable]
       private var xmlForChildren:HTTPService;
       private function resultHandler( event:ResultEvent ):void
           var x:XML = event.result as XML;   
           var xl:XMLList = XMLList( x );
       private function faultHandler( event:FaultEvent ):void
        Alert.show(event.message.toString());
       private function display():void
        var params:Object = {};
        params["parent"] = "0";
        xmlFromDatabase.url = "http://localhost:8080/GrailsFlex/department/tree";
        xmlFromDatabase.method = "GET";
        xmlFromDatabase.resultFormat = "e4x";
        xmlFromDatabase.useProxy = false;
        xmlFromDatabase.send(params);
        xmlFromDatabase.addEventListener(ResultEvent.RESULT,displyTree,false,0,false);
       private function displyTree(event:ResultEvent):void
        XMLtree1.dataProvider =  event.result;
        XMLtree1.labelField = "@name";
       private function getChilds(event:ListEvent):void
        try
         var xmlTree:Tree = event.currentTarget as Tree;
         var node:XML = xmlTree.selectedItem as XML
         var params:Object = {};
         params["parent"] = node.@id;
         xmlForChildren = new HTTPService();
         xmlForChildren.url = "http://localhost:8080/GrailsFlex/department/tree";
         xmlForChildren.method = "GET";
         xmlForChildren.resultFormat = "e4x";
         xmlForChildren.useProxy = false;
         xmlForChildren.send(params);
         xmlForChildren.addEventListener(ResultEvent.RESULT,appendChild,false,0,false);
         xmlForChildren.addEventListener(ListEvent.ITEM_CLICK,getChilds,false,0,false);
        catch (E:Error)
         Alert.show("getChilds Error:-- " + E.message);
       private function deleteTreeNode(xmlItem:XML):void
        var xmlParent:XML = XML(xmlItem).parent();
        if (xmlParent.@parent == null || StringUtil.trim(xmlParent.@parent) == "")
         xmlParent.@parent = "0";
        if (xmlParent.@parent != "0")
         //Recursive call until I get reach to children of root node
         deleteTreeNode(xmlParent);
        else
         // Now I am at root.
         var xmlRoot:XML = XML(xmlParent).parent();
         var bActualRoot:Boolean = false;
         if (xmlRoot == null)
          xmlRoot = xmlParent;
          bActualRoot = true;
         if (bActualRoot)
          if (xmlRoot.@parent == "0")
           try
            for each (var xl:XML in xmlParent.children())
             if (xl.@name != xmlItem.@name)
              for (var cn:int=xl.children().length()-1; cn >=0; cn--)
               delete xl.children()[cn];
           catch (ex:Error)
            Alert.show("error Real Root: " + ex.toString());
         else
          for each (var nodexm:XML in xmlRoot.children() )
           if (nodexm.@name != xmlParent.@name )
            try
             for (var cu:int=nodexm.children().length()-1; cu >=0; cu--)
              delete nodexm.children()[cu];
            catch (ex:Error)
             Alert.show("error No Real Root: " + ex.toString());
       private function appendChild(event:ResultEvent):void
        var node:XML = event.result as XML
        var sItem: XML = XMLtree1.selectedItem as XML;
        if (sItem.children().length() > 0)
         delete sItem.children();
        for(var i:int=0; i < node.children().length(); i++)
                        var item:XML = node.children()[i];
                        XMLtree1.selectedItem.appendChild(item);
                        XMLtree1.expandItem(XMLtree1.selectedItem,true,true);
        deleteTreeNode(XML(XMLtree1.selectedItem));
      ]]>
    </mx:Script>
    <mx:Tree id="XMLtree1" width="350" height="470"
          showRoot="false" creationComplete="display()" itemClick="getChilds(event)"  />
    </mx:Application>
    Thanks in advance

    Thanks buddy for the answer.
    Unfortunately the answer came after quite long time of posting the message. Anyway I was able to open a tree on demand using HttpService and due to my new requirement I changed it to RemoteObject.
    I my latest change I am able to populate tree nodes on demand and also the same solution if getting update from server via JMS using Consumer object.
    I kind a like this solution because it took me good amount of effort to find the right solution.
    If any one is intersted the he/she can reply to the post and I can provide code here or may at some location so that it can be easily downloaded.
    The solution is Flex-Grails combination.
    Thanks everybody.

  • Problem in setting dataprovider for a dynamically generated datagrid

    Hi everybody
    I have a issue in flex, I am generating datagrids dynamically
    by using repeaters but i am unable to set a seperate dataprovider
    for each grid
    Grid1 might come with some set of data and grid 2 with some
    and so on so i want to set dataproviders at runtime for each grid
    how can i do that
    i have pasted my code for generating datagrid dynamically plz
    go thru that and find me some solution
    <mx:Repeater id="ProjectNames"
    dataProvider="{GetTimeSheetDetails.lastResult.NewDataSet.Table1}"
    >
    <mx:Canvas label="{ProjectNames.currentItem.ProjectName}"
    width="100%" height="251" id="CanvasTimeSheet"
    creationComplete="disablecanvas();">
    <mx:DataGrid x="10" y="10" width="864" height="206"
    editable="true"
    dataProvider="{GetTimeSheetDetails.lastResult.NewDataSet.Table}"
    id="dgTimeSheet">
    <mx:columns>
    <mx:DataGridColumn headerText="Task" dataField="TaskName"
    width="60" >
    </mx:DataGridColumn>
    <mx:DataGridColumn headerText="Task Description"
    dataField="TaskDescription" width="150" editable="true"/>
    <mx:DataGridColumn headerText="M" dataField="Monday"
    width="15" editable="true"/>
    <mx:DataGridColumn headerText="T" dataField="Tuesday"
    width="15" editable="true"/>
    <mx:DataGridColumn
    </mx:columns>
    </mx:DataGrid>
    <mx:Label x="564" y="222" text="0" width="35"
    textAlign="right" id="lblMonday" />
    <mx:Label x="602" y="222" text="0" width="33"
    textAlign="right" id="lblTuesday"/>
    </mx:Canvas>
    </mx:Repeater>
    </mx:TabNavigator>

    try this and say me if it works fine!!!
    <html>
    <head>
    <script>
    function fileds() {
         var myParent = document.getElementById('myDiv');
         var text = document.createElement('input');
         text.setAttribute('id', 'myText');
         myParent.appendChild(text);
         document.all.myText.focus();
    </script>
    </head>
    <body>
    <input type="button" onClick="javascript:fileds()" value="Create And Give Focus">
    <br>
    <div id="myDiv"></div>
    </body>
    </html>
    bye

  • Error in compiling swf for Flex 2 application

    Hello experts!
    After applying SPS 7 for EHP1 7.0 I am receiving the following error when deploying my model.
    Error in compiling swf for Flex 2 application. The log is appended below.
    I realized the error only occurs when I use value help.
    Can anybody advise please.
    Thanks,
    Ibrahim
    Error in compiling Flex application: /usr/sap/QJB/JC01/j2ee/cluster/server0/GUIMachine_Business_Packages/[xxx]MyModels.QM.Tab_test/FLEX_COMPILATION_FOLDER/AAD3KX_P.mxml(17): col: 145 Error: Element type "vc:LabeledDropDown" must be followed by either attribute specifications, ">" or "/>".
                      <vc:LabeledDropDown comboHeight="16" width="200" labelField="text" selectedIndex="{VC.getEnumIndex(AXCWV1, AAA3L21.Current.SELOP_TYPE || "BT", 'value')}" valueProperty="SELOP_TYPE" valueObject="{(AAA3L21.Current)}" id="ACA3L21_DropDown1" dataProvider="" comboComponent_y="40" prompt="" label="{(Languser1.BhlfcdeBHckjkGcInkHE)}" comboY="40" visible="{DE.NOT(false)}" creationComplete="AXCWV1.addEventListener(InfosetEvent.DATA_REFILLED, selectDefaultACA3L21_DropDown1)" component_x="88" x="8"/>
    Edited by: Ibrahim Ibrahim on Apr 15, 2011 1:19 PM

    We have solved this by applying note: 1510453 - Certain default values in list-based controls causes error

  • Flex Tree Vertical Scroll Bar Issue

    When i click on the + image of flex tree than first time the vertical scroll bar is not coming but when when i minimize it and again click on + than it appears can any one tell me what is the issue??

    Hi Rob,
    I have tried changing styles of those div's in  which I have my dropdown's are there but it didnt work.
    Below is the code for reference:
    <div class="k-animation-container km-popup" style="width: 250px; height: 206px; margin- padding- padding-right: 10px; padding-bottom: 15px; display: none; "><div class="k-list-container k-popup k-group
    k-reset" id="MaintenanceType-list" data-role="popup" style="height: 200px; display: none; font-family: 'Segoe UI', Verdana, Tahoma, Arial; font-size: 11px; font-style: normal; font-weight: normal; line-height: normal; width: 244px; -webkit-transform: translateY(-206px);"><ul
    unselectable="on" class="k-list k-reset" tabindex="-1" role="listbox" aria-hidden="true" id="MaintenanceType_listbox" aria-live="off" style=""><li tabindex="-1" role="option" unselectable="on" class="k-item"></li><li tabindex="-1" role="option"
    unselectable="on" class="k-item">AUX - Accessories belonging to EA group</li><li tabindex="-1" role="option" unselectable="on" class="k-item">ARL - Artificial Lift</li>
    Regards,
    Jyothi

  • Issue with child items of flex tree using QTP

    Hi,
    We are trying to automate Flex web application using QTP10.
    We are facing below issue with Flex tree when we try to automate a scenario of selecting a child item displayed in flex tree.
    Issue:
    On recording the step of selecting an item from Flex tree using QTP, the script displayed is .Select Index1. But when we replay it back no action is being performed.
    Also on object spy we are able to navigate only till flex tree and we are not able to spy child items of flex tree.On the web page the child items are displayed as radio buttons/checkboxes.
    Please provide a solution for me to this problem.
    Thanks

    Hi,
    You could perform a HTTP trace (using HTTP watch) and compare the OCI data in POST method for both users (the correct and incorrect ones).
    Perhaps there is some additional/missing information being passed from catalog to SRM.
    Kind regards,
    Ricardo

  • Using xml as dataProvider for chart

    I am trying to use a loaded xml as the dataProvider for a pie chart like this
    <mx:PieChart id="pieChart"
                         dataProvider="{get_xml.lastResult.AssetAllocationFunds.fund[0].target_allocation}">
    This works, but gives a warning that
    "Data binding will not be able to detect changes when using the square bracket operator. For Array, please use ArrayCollection.getItemAt() instead."
    Can someone give me some direction on how to implement this.
    Thanks.

    So that solution I posted up wasn't going to work for what I needed.
    Basically, the "itemRollOver" and "itemClick" that work for the pie chart when hard coded on the main application don't work when embedded in a custom class that extends the PieChart. I haven't been able to figure out why.
    However, I did get the syntax for targeting ArrayCollection.getItemAt() worked out.
    Here is a simple example.
    Hope it helps others.
    Mark
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application
        xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:mx="library://ns.adobe.com/flex/mx"
        xmlns:s="library://ns.adobe.com/flex/spark"
        >
        <fx:Script>
            <![CDATA[
                import mx.charts.events.ChartEvent;
                import mx.charts.events.ChartItemEvent;
                import mx.charts.series.items.PieSeriesItem;
                import mx.collections.ArrayCollection;
                import mx.events.FlexEvent;
                import mx.rpc.events.ResultEvent;
                import mx.charts.series.PieSeries;
                private function pieChart_itemRoll(evt:ChartItemEvent):void {
                    var psi:PieSeriesItem = evt.hitData.chartItem as PieSeriesItem;
                    myTextArea.text += "\rtarget: "+psi.item.target;
                    trace(psi.item.target);
                private function pieChartClick(event:ChartItemEvent, pieName:String):void{   
                    myTextArea.text += "\rid: "+pieName;
                [Bindable]
                private var chartData:ArrayCollection = new ArrayCollection(
                    [[{target:"Target A0",percent:40},
                        {target:"Target A1",percent:30},
                        {target:"Target A2",percent:20},
                        {target:"Target A3",percent:10}],
                        [{target:"Target B0",percent:45},
                            {target:"Target B1",percent:22},
                            {target:"Target B2",percent:17},
                            {target:"Target B3",percent:8}]]);
            ]]>
        </fx:Script>
        <s:VGroup>
            <s:HGroup id="myGroup">
                <mx:PieChart
                    dataProvider="{chartData.getItemAt(0)}"
                    itemRollOver="pieChart_itemRoll(event);"
                    itemClick="pieChartClick(event, 'pie 0');"
                    showDataTips="false"
                    height="210"
                    width="210">
                    <mx:series>
                        <mx:PieSeries
                            field="percent"
                            nameField="target"
                            labelPosition="inside"
                            >
                        </mx:PieSeries>
                    </mx:series>
                </mx:PieChart>
                <mx:PieChart
                    dataProvider="{chartData.getItemAt(1)}"
                    itemRollOver="pieChart_itemRoll(event);"
                    itemClick="pieChartClick(event, 'pie 1');"
                    showDataTips="false"
                    height="210"
                    width="210">
                    <mx:series>
                        <mx:PieSeries
                            field="percent"
                            nameField="target"
                            labelPosition="inside"
                            >
                        </mx:PieSeries>
                    </mx:series>
                </mx:PieChart>
            </s:HGroup>
            <s:TextArea id="myTextArea"  width="550" height="220" />
        </s:VGroup>
    </s:Application>

  • Error in executing a process for Flex compilation ....exceeds 32K...

    Hi,
    deployin my model i get the following error-message.
    "Error in executing a process for Flex compilation, Error: Branch between 64935 and 97770 around line 0 exceeds 32K span. If possible, please refactor this component.
    Error: Branch between 64935 and 97770 around line 0 exceeds 32K span."
    Do i delete a sort-element from my model it is deployed very well. So what does this message exactly mean and how can I locate where the error occurs and how can i fix that problem because i need this sort-element to be in my model.
    Thanks for your help!
    Tobias

    Hi Tobias,
    You are receiving this error due to a current limitation in the Flex server. How you can fix this is to split the iView you are currently working on into two iViews, and embed one within the other. This will decrease the size of the current iView you are receiving the error for and eliminate this problem.
    Hope this helps
    Cheers,
    Scott

  • More than one dataprovider for a datagrid

    Is there a way that i can provide more than one dataprovider
    with a comma or a semicolon seperated values in the datagrid?
    Since i need to display values from two different providers.
    Thanks,
    Geetha

    I don't think so.
    It seems like you need some intervention by a server first,
    to fetch the data from the first source and then the second source,
    then mash the two together into a single data result set and send
    that to the Flex app.
    You can probably "construct" your single dataprovider inside
    Flex as well, creating a new query or xml object, calling one data
    source and then the other to construct its contents.
    Never done it myself, tho. I tend to do as much as possible
    on the server side, to keep the Flex app as light as
    possible.

  • Creation of a Popup Menu for a Tree Node

    Hi Ppl,
      I need to create a Pop-up Menu for a tree node in WebDynpro Application, please give me a "How to .." sort of material or a link which would have same sort of information...
    Also, My requirement is to call the pop-up on the right click of mouse on the tree node, please let me know on which event handler I can call it ? Do I require a custom event handler for it ?
    Thanks in advance
    Anish

    Hi Anish,
    You simply add a Tree UI element, and then right-click the tree UI element and insert a TreeNode element.
    To the TreeNode element you can add a menu, and then to this menu you can add menu items. When the user right click the tree node, the menu item is displayed. If the user clicks the menu item, the action for the menuitem is run.
    Hope that helps.
    Daniel

  • Help needed in drag and drop of Flex tree

    Hi,
    We have an application which allows drag and drop between
    multiple
    trees and lists.
    Here are the steps I follow to refresh on drag and drop:
    1. Dispatch a custom event which calls server.
    2. On successful response from server I change the model
    which is
    data provider for the tree.
    3. Then, set a flag which triggers 'invalidateDisplayList'
    and 'invalidateList' for tree (and other listeners).
    4. The tree refreshes fine. But as soon as I drag and drop
    between
    trees again, I get this error in Tree.as:
    TypeError: Error #1010: A term is undefined and has no
    properties.
    at mx.controls::Tree/::updateDropData()
    at mx.controls::Tree/calculateDropIndex()
    at mx.controls.listClasses::ListBase/showDropFeedback()
    at mx.controls::Tree/showDropFeedback()
    The behaviour is weird, sometimes the browser hangs and stops
    responding.
    I am calling 'contentTree.showDropFeedback(event)' in my
    dragOver
    event listener which is triggering error.
    My tree data provider is a custom class which has 'children'
    array
    collection attribute.
    Any help on how to resolve this issue would be highly
    appreciated.
    Thanks in advance,
    Sujatha

    the major restrictions in its implemented only in
    jdk1.1.Why!

Maybe you are looking for

  • Entrada de Nota Fiscal de energia elétrica modelo 6 com 9 digítos

    Ola, Gostaria de entender qual a medida adotada para entrar com uma nota modelo 6 que tem mais do que 6 digitos. A nota de fornecimento de energia elétrica de SP tem 7 digitos "5754899", e o campo NFNUM tem apenas 6 posições. Não falamos de uma nota

  • Problem with sending emails on my iPad 2?

    Hi, I'm unable to send emails using my iPad 2 but I'm using all the correct account settings from my macbook pro which works perfectly. I have deleted and re-set my accounts but still dose not work, please help? Thanks Darren

  • Summary: Install (and re-install) steps of SAP NW 7.01 ABAP Trial

    This forum is awesome ! After ran into bunch of errors (200 601 etc) during install, thanks to all the Q&As especially posted answers in multiple thread discussions, I finally managed to make the install a success. I put following summary here hoping

  • No network boot-- lot of problem even with generation 2

    Hi All, I have hyperv 2012 hypervisor and i have created some vms on it. I need one of my win7 vm to boot over network. It is created with generation 1. As generation 1 has some problem to boot vms over network, i thought of creating a generation 2 v

  • AC3/Dolby 5.1 sound through my Mac Mini

    Is there an adapter that allows me to take advantage of Dolby 5.1? I want to hear my videos and movies through my stereo system in 5.1/AC3. There must be some sort of adapter that exports AC3 through usb, firewire or the Stereo port.