Convert HierarchicalCollectionView to ArrayCollection

I'm trying to retrieve the ArrayCollection data provided to DataGrid and AdvancedDataGrid. While gridID.dataProvider works for flat data, I'm getting coercion error when data is heirarchical. Is there a way to retrieve the original ArrayCollection data? Parsing doesn't seem to work either. TIA!

If you have a GroupingCollection2 instance, you can still retrieve its source afterward by using something like var ac:ArrayCollection = gc.source as ArrayCollection;
<mx:AdvancedDataGrid id="myADG"   
    <mx:dataProvider>
      <mx:GroupingCollection2 id="gc" source="{dpFlat}">
        <mx:grouping>
          <mx:Grouping>
            <mx:GroupingField name="Region"/>
            <mx:GroupingField name="Territory"/>
          </mx:Grouping>
        </mx:grouping>
      </mx:GroupingCollection2>
    </mx:dataProvider> 
    <mx:columns>
      <mx:AdvancedDataGridColumn dataField="Region"/>
      <mx:AdvancedDataGridColumn dataField="Territory"/>
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/>
      <mx:AdvancedDataGridColumn dataField="Actual"/>
      <mx:AdvancedDataGridColumn dataField="Estimate"/>
    </mx:columns>
  </mx:AdvancedDataGrid>
In the case of this example from the livedocs, var ac:ArrayCollection = gc.source as ArrayCollection; would return a reference to dpFlat.

Similar Messages

  • Help needed in  converting ArrayList to ArrayCollection

    I am converting an ArrayList (Java) to ArrayCollection of Flex .
    Please help me in this , i dont know whether this is correct approach or not
    I have a Created a User VO ActionScript class  on flex with two properties as uname , pass .
    [Bindable]       
            var result:ArrayCollection
    private function displayDetails(event:ResultEvent):void
    result = event.result as ArrayCollection;
    <mx:DataGrid  dataProvider="{result}">
                    <mx:columns>
                        <mx:DataGridColumn headerText="UserName" dataField="uname"/>
                        <mx:DataGridColumn headerText="Password" dataField="pass"/>
                    </mx:columns>
                </mx:DataGrid>
    This is from my Java DAO File :
                ResultSet rs = stmt.executeQuery("select NAME , PASS from Users");
                list = new ArrayList();
                while (rs.next()) {
                    User user = new User();
                    user.setUname(rs.getString(1));
                    user.setPass(rs.getString(2));
                    list.add(user);
            return list;
    With the below code ,the displayed DataGrid is empty with no data , please help me where i am doung wrong
    Do i need to do anything more ?? The data is coming well on to the lcds server console .
    Please help .

    Hi Kiran,
    Debugging solves most of the problems that you encounter ......you need to use a lot of debuggung so that you will come to know exactly what's
    happening indeed...
    So just put a break point at your displayDetails(event:ResultEvent):void  function and try to watch the event variable and check the event.result
    What is the datatype of the event.result ...Are you getting any data or is it null..???
    Please make these observations and let me know...
    Thanks,
    Bhasker

  • How do I create a line chart direct from xml or convert xml to ArrayCollection

    The xml is simple:
    <data>
    <row name="Q1">
    <expenses>64</expenses>
    <revenue>98</revenue>
    <profit>34</profit>
    </row>
    <row name="Q2">
    <expenses>44</expenses>
    <revenue>28</revenue>
    <profit>64</profit>
    </row>
    <row name="Q3">
    <expenses>14</expenses>
    <revenue>58</revenue>
    <profit>54</profit>
    </row>
    </data>
    it's dynamically generated as a string so could be created in xml format, or ArrayCollection, or any other format that works. However I can't find a example of using xml as the datasource that works. I've tried to convert it to an ArrayCollection first but that didn't work either.
    Alternatively I could store the data as a string "Month: "May", Profit: 2400, Expenses: 575, Amount: 456", then:
    expensesAC2.addItem({Month: "May", Profit: 2400, Expenses: 575, Amount: 456 });
    works but:
    var settings:String = resultXML.row[0];
    expensesAC2.addItem({settings});
    doesn't work. Any suggestions, or links to a tutorial that works would be really appreciated?

    Hi all,
    This issue was resolved off-line, however, I wanted to note a few points that were shared with me.
    Learnings from Forum discussion:
    Best practice is to use a combination of INDEX and MATCH functions instead of Vlookups.  Using the VLOOKUP function can result in a very slow dashboard if using a lot of data. 
    Also, when using the Filter Component note the destination field as the filter component does not copy the first filter value at all so you have to adjust by one column to accommodate for this (two columns if you have 3 filters etc).

  • Converting Array Objects into ArrayCollections

    Hi,
    I am facing problem with converting Array Objects into ArrayCollections. How can i convert Array Objects into ArrayCollections. If any one knows how can we do that Pl reply.
    Thanks in advance to all
    Regards
    subbareddy.p

    Hi Bhasker,
    thanks for u r reply. Here i attached screen shot of my server "data.result".
    My proxy varaible contains
    My object varaible "obj" contains
    After parsing the result my arraycollection contains, (i mean after converting Object to Array to ArrayCollection) the below information. For information Pl find the attached arraycollection.png image. In the attached image my arraycollection name is "users".
    Here i pasted the code that i used  to convert  "ObjectProxy" to "ArrayCollection"
    var proxy:ObjectProxy = ObjectProxy(data.result);
                var obj:Object = proxy.object_proxy::object;
                var arrycoll:Array = ArrayUtil.toArray(obj); 
                model.users = new ArrayCollection(arrycoll);
    Regards
    sss

  • AdvancedDataGrid.expandItem() fails when dataProvider is of type HierarchicalCollectionView

    1. I pas an instance of HierarchicalCollectionView to the dataProvider of my AdvancedDataGrid
    2. The hierarchical data is displayed fine
    3. expandItem() fails miserably:
    TypeError: Error #1034: Type Coercion failed: cannot convert mx.collections::ArrayCollection@c9f6e81 to mx.collections.IHierarchicalCollectionView.
         at mx.controls::AdvancedDataGrid/isItemOpen()[E:\dev\4.x\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:4306]
         at mx.controls::AdvancedDataGrid/expandItem()[E:\dev\4.x\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:4391]
    I'm using the HierarchicalCollectionView because it has the filterFunction property.

    1. I pas an instance of HierarchicalCollectionView to the dataProvider of my AdvancedDataGrid
    2. The hierarchical data is displayed fine
    3. expandItem() fails miserably:
    TypeError: Error #1034: Type Coercion failed: cannot convert mx.collections::ArrayCollection@c9f6e81 to mx.collections.IHierarchicalCollectionView.
         at mx.controls::AdvancedDataGrid/isItemOpen()[E:\dev\4.x\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:4306]
         at mx.controls::AdvancedDataGrid/expandItem()[E:\dev\4.x\frameworks\projects\datavisualization\src\mx\controls\AdvancedDataGrid.as:4391]
    I'm using the HierarchicalCollectionView because it has the filterFunction property.

  • Arraycollections Problem

    Hi i'm having some problems with Arraycollections. here is what my intention is and what i'm doing
    What i want:  I want to send some information from the flex ui to a java class . and save this info in a data base.
    What i'm doing:
    I'm packing the info into a Arraycollection(it consists of an 2-D integer array and a String array).
    Sending  it to a java class using remote object. I'm using  flex.messaging.io.ArrayCollection package to use Arraycolelction to  recieve that data in java class
    Problem:  I want o extract the  integer array and String array from that ArrayCollection so that i can  use it to store them in DB.
    Am i doing anything wrong?? Is there any alternate way like storing the whole Arraycollection as it is in DB

    Hi Bhasker,
    thanks for u r reply. Here i attached screen shot of my server "data.result".
    My proxy varaible contains
    My object varaible "obj" contains
    After parsing the result my arraycollection contains, (i mean after converting Object to Array to ArrayCollection) the below information. For information Pl find the attached arraycollection.png image. In the attached image my arraycollection name is "users".
    Here i pasted the code that i used  to convert  "ObjectProxy" to "ArrayCollection"
    var proxy:ObjectProxy = ObjectProxy(data.result);
                var obj:Object = proxy.object_proxy::object;
                var arrycoll:Array = ArrayUtil.toArray(obj); 
                model.users = new ArrayCollection(arrycoll);
    Regards
    sss

  • HTTPService XML: force ArrayCollections?

    I'm loading an XML document with HTTPService.  It has an annoying behavior.  If the source XML looks like:
    <one>
      <two>thing</two>
    </one>
    then one.two will be a String ("thing").
    If the XML is:
    <one>
       <two>thing</two>
       <two>another thing</two>
    </one>
    then one.two will be an ArrayCollection.
    Is there a way to force the first case to also generate an ArrayCollection?  Right now I have to manually check everywhere if two is an ArrayCollection, if it isn't, make a new one, etc... Seems like Flex should take care of this automatically.
    -jsd-

    Hi,
    Checkout the below code...this will ensure that you will get only ArrayCollection in both the cases...and also you need to check only once whether it is arrycollection or not and at other places you can avoid the check as you are converting it to ArrayCollection so you can directly use the arraycollection..
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="loadXMLData();" layout="absolute">
    <mx:Script>
      <![CDATA[
       import mx.collections.ArrayCollection;
       import mx.rpc.xml.SimpleXMLDecoder;
       private var arrayCollection:ArrayCollection = new ArrayCollection();
       private function loadXMLData():void
        var xml:XML = new XML(myXml.toString());
        var xmlDoc:XMLDocument = new XMLDocument(xml);
        var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
        var resultObj:Object = decoder.decodeXML(xmlDoc);
        if(resultObj != null)
         if(resultObj.one.two is ArrayCollection)
          arrayCollection = resultObj.one.two as ArrayCollection;
         else if(resultObj.one.two is String)
          arrayCollection.addItem(resultObj.one.two);
      ]]>
    </mx:Script>
    <mx:XML id="myXml" xmlns="">
      <one>
        <two>thing</two>
      </one>
    </mx:XML>
    </mx:Application>
    If this post answers your question or helps, please kindly mark it as such.
    Thanks,
    Bhasker Chari

  • Load model from ArrayCollection (json)

    I'm using turbogears, which conventiently returns json that
    is easily converted to an ArrayCollection. This works fine for
    loading general items like datagrids.
    But I would like to load a form from the record in the
    database in order to edit it. The returned data is something like
    {id:1, title:"very fast boat", body:"john had a fast jon
    boat..."} which gets loaded into an arraycollection.
    I see how to bind mx:model to the textinput fields (I think).
    But I would like to map the ArrayCollection either to the model, or
    directly to the fields in the form, without having to write a
    statement for each element in the form.
    Can this be done???????

    I can give you a partial response: you can't map the
    ArrayCollection to the model, since models must be defined at
    compile time. You should be able to map the AC to the fields, but
    AFAIK you'd have to do each one individually, or write ActionScript
    that semi-automates the process.
    matt horn
    flex docs

  • Large XML file Loading

    I have a large XML file that I am converting to an
    ArrayCollection to use as a dataprovider for a datagrid. It takes
    sometime to fully load. Is there any way to load partial list while
    the rest of the list is loading?? or does anyone know a way speed
    up this process??
    Thanks

    I'd try to modify the autoComplete component.
    You could break this processing up into smaller chunks. For
    it to work, you need some outside counter or indexer that keeps
    track of where you are. Have the conversion function process say
    nodes 0-500, then end. Then using callLater, call that function
    again, to process ne next batch of nodes.
    This process will allow the UI to update between iteration
    batches. If you need more responsiveness, you could try monitoring
    mouse move, and stopping the conversion, until the mouse is
    inactive again. That is just brainstorming. I have not tried it
    (the mouse move part. I know the iterator method works to allow the
    UI to update.)
    Tracy

  • How do I populate a ScrollView with multiple TextView and ImageView?

    Hi there,
    I'm new to development and I'm trying to create an app which includes many views, each with a scrollview containing a combination of blocks of texts and images.
    I can do this awkwardly with Storyboard, but what's the simplest way to setup and populate these through code?
    Thanks,
    Darryl

    Thanks for your response.
    Since writing my first post, I have learned that I cannot
    simply return the 2 dimensional array I create in my CFC. I think I
    need to return an array of structures.
    So now the question is, how do a receive an array of
    structures and stick it into an arrayCollection?
    I get this error:
    TypeError: Error #1034: Type Coercion failed: cannot convert
    mx.collections::ArrayCollection@3ce1251 to Array.
    in this function:
    [Bindable]
    public var acPeriod:ArrayCollection;
    private function wsListResult(event:ResultEvent):void{
    acPeriod= new ArrayCollection(wsList.onePeriod.lastResult);
    }

  • Comparison of number of bytes transferred over network while using HTTPService and RemoteObjects

    If I have to transfer data(say records of 100 employees in a DB) from Server to Client, I could use HTTPService and fetch the data as an XML file and then convert it to ArrayCollection in the Client. Or use RemoteObject and transfer the data in binary. Lets ignore other methods(Web Services etc) of data transfer for the moment.
    Now, for the same data, if I implement the application using HTTPService and RemoteObject, I notice that the number of bytes transferred over the network is less in case of HTTPService(XML) when compared to RemoteObject(AMF) which is a shock to me. My understanding is that AMF transfer should be more compact than XML. Ofcourse, once the data is available, RemoteObject result processing is noticeably faster than HTTPService result processing. My concern is why data transferred using AMF is larger than XML. As an example, you may refer to the samples provided in TourDeFlex. Refer to the following:
    HTTPService:
        Found in : Flex Data Access->HTTPService->BasicExample
        Link: http://www.adobe.com/devnet-archive/flex/tourdeflex/web/#docIndex=0;illustIndex=0;sampleId =12700
        Click on the 'Get Data' button to fetch the data.
        Bytes transferred - 1050
    RemoteObject:
        Found in : Flex Data Access->RemoteObject->BasicJavaRemoting
        Link: http://www.adobe.com/devnet-archive/flex/tourdeflex/web/#docIndex=0;illustIndex=0;sampleId =13300
        Click on the 'Get Data' button to fetch the data.
        Bytes transferred - 1440
    This is a significant size difference. You may see the data transfer size by using developer tools like the HTTPFox Firefox extension.
    Am I missing something here? Any help will be very much appreciated.
    Thanks,
    Balu

    There is definitely problem with your tool or you looked at something else. Please check the attached snapshots of the session using charles capture tool. The response sizes are way bigger than what you mentioned but remoteobjects is almost half of httpservice for the complete transfer including request and response. Check below -
    httpservice -
    http://tinypic.com/view.php?pic=2q2le2e&s=7
    amf -
    http://tinypic.com/r/10wmx4o/7

  • Complex Array/Objects in Datagrid

    Hi,
    I'm a complete noob to all this but I have a somewhat complex
    array.....and I know my arrays will only get more complex.
    I can get a single row by putting this as the data provider:
    {dataProvider[0]['Time']}
    Or, this: {dataProvider[1]['Time']}
    BUT... I want multiple rows in my data grid. I can't seem to
    figure out how to achieve this.
    Simply putting {dataProvider} returns [object Object] ...
    putting in {dataProvider[1]} will also return [object Object] ....
    this is provided my dataFields are specified correctly of course
    for each level.
    Flash sees these as Objects, it barks at me for trying to
    convert them to ArrayCollection or anything else.
    I try to make a new array even of just the
    dataProvider[0]['Time'] entries by specifying newArray[0] =
    dataProvider[0]['Time'] ... etc. or by trying
    newArray.push(dataProvider[0]['Article']) ... but this is inside a
    function (for my remote connection) and I can't get the array back
    to the public space for use in my data grid... or I'll get an error
    about not being able to make an object into an array.
    Any clues?? This sounds like such a simple thing ... and of
    course I found out you can't simply put a statement to loop inside
    the dataprovider... which would make it super easy.... so what's
    up?
    Thanks.
    Here's the structure of my array by the way (returned with
    amfphp) .. which will probably not be indented, sorry.
    Array
    [0] => Array
    [Time] => Array
    [id] => 1
    [created] => 2007-02-25
    [time] => 10
    [notes] => hours (10)
    [project_id] => 1
    [user_id] => 1
    [Project] => Array
    [id] => 1
    [name] => Test Project #1
    [created] => 2007-02-25
    [due] => 2007-02-28
    [User] => Array
    [id] => 1
    [username] => admin
    [1] => Array
    [Time] => Array
    [id] => 2
    [created] => 2007-03-04
    [time] => 4
    [notes] => setup initial layout
    [project_id] => 1
    [user_id] => 1
    [Project] => Array
    [id] => 1
    [name] => Test Project #1
    [created] => 2007-02-25
    [due] => 2007-02-28
    [User] => Array
    [id] => 2
    [username] => tom

    Similar problem with different data structure
    My data looks like this
    <employee >
    <shift id="1">
    <date>Sun 3-25</date>
    <in0 id="122" >8:00am</in0>
    <in1 id="333" >12:40</in1>
    <out1 id="1234">5:40</out1>
    <total>8.02</total>
    </shift>
    The datagrid displays the time in the <in1> tag just
    fine, but when the user clicks on this cell, I need to be able to
    get the "id" attribute in order to update the DB.
    I'm a newbie and am trying to redo a dojo project in flex.
    I'm not locked in to the xml pattern shown above. Otherwise my
    datagrid is working well. snippet below...
    <mx:DataGrid id="punchdetail"
    itemClick="punchSelected(event);"
    itemRenderer="BackgroundColorRenderer"
    dataProvider="{DetailDS.lastResult.employee.shift}"
    change="editPunch(event);"
    sortableColumns="true">
    <mx:columns>
    <mx:DataGridColumn dataField="id" visible="false" />
    <mx:DataGridColumn dataField="date" headerText="Date"/>
    <mx:DataGridColumn dataField="in0" width="50"
    headerText="In" />
    <mx:DataGridColumn dataField="out0" width="50"
    headerText="Out"/>
    <mx:DataGridColumn dataField="total" />
    </mx:columns>
    </mx:DataGrid>
    private function punchSelected(event:ListEvent):void {
    var col:DataGridColumn =
    punchdetail.columns[event.columnIndex];
    Alert.show ( " "+punchdetail.selectedItem.col.dataField);
    //Alert.show ( " "+col.dataField);
    //Alert.show ( " "+punchdetail.selectedItem.valueOf());
    Text
    Text

  • Simple Array and Concat Issue...

    my problem shouldn't be to terribly difficult to resolve, however it might be a little rough to explain. I am having an issue using the concat feature...
    I want to join 2 arrays, I assume you can use concat for this right?
    This is my goal...
    I am dynamically adding objects to my mx:List box. I want to be able to submit this list of objects to another mx:List box and when I add elements to the first list box, i want to again add them into the second list box without erasing the results that we first added...
    That probably doens't make much sense... I know. But I am just wanting to combine 2 arrays...
    How do I get the elements of a Mx:List into an array? would it be MyListBox.data ?? or MyListBox.DataProvider.???
    Any advice and help would be appreciated.

    dataProvider will be the one, but remember that once you set a dataProvider if it's an array it gets converted into an ArrayCollection.

  • DataGrid and getItemAt

    Hi!
    I used in my DataGrid this code:
    <mx:itemRenderer>
    <mx:Component>
    <mx:VBox clipContent="false">
    <mx:Text
    text="{data.myid[data.myid.length()-1].toString())}"
    paddingLeft="5" paddingRight="5" />
    </mx:VBox>
    </mx:Component>
    </mx:itemRenderer>
    It works! BUT...I get Warning message: "
    For Array, please use ArrayCollection.getItemAt() instead."
    I tried to change my code:
    <mx:Text
    text="{data.myid.getItemAt(data.myid.length()-1).toString())}"
    paddingLeft="5" paddingRight="5" />
    It doesn't work! :(
    I tried this:
    <mx:Text
    text="{data.dataProvider.myid.getItemAt(data.dataProvider.myid.length()-1).toString())}"
    paddingLeft="5" paddingRight="5" />
    It doesn't work too :(
    Can you tell me how to use getItemAt in my example???
    Marcin

    Thanks for answer!
    First, sorry! I hope that admin move it to Gen. Disc. forum.
    My DataProvider is external XML. I thought that AS recognize
    it as ArrayCollection. It looks like this:
    // load
    xmlFiletest.send();
    // handle
    public var XMLtest : XML;
    XMLtest = XML(xmlFiletest.lastResult);
    // in my DataGrid
    dataProvider="{XMLtest}"
    It's really huge XML (few MB's). I don't use addItem because
    I don't need this.
    Is it mean that this Warning - "For Array, please use
    ArrayCollection.getItemAt() instead." is out of sense???
    I can try convert it to ArrayCollection but I'm afraid that
    can make my app much slower :(((
    Do you have some suggestions?

  • Flex Remoting

    when I am in development, my remoting calls have to go over flex.messaging.endpoints.AMFEndpoint, but in production it has to go over flex.messaging.endpoints.SecureAMFEndpoint.
    My RemoteObject destination is "rubyamf," and my services-config.xml looks like this:
    <services>
         <service id="rubyamf-flashremoting-service" class="flex.messaging.services.RemotingService"
             messageTypes="flex.messaging.messages.RemotingMessage"
             >
             <destination id="rubyamf">
                  <channels>
                       <channel ref="channel-rubyamf" />
                       <channel ref="channel-rubyamf-secure" />
                  </channels>
                  <properties>
                       <source>*</source>
                  </properties>
             </destination>
        </service>
    </services>
    <channels>
       <!-- RUBY AMF -->  
      <channel-definition id="channel-rubyamf" class="mx.messaging.channels.AMFChannel">
       <endpoint uri="/app/rubyamf/gateway" class="flex.messaging.endpoints.AMFEndpoint" />
       <properties>
       <polling-enabled>true</polling-enabled>
       </properties>
       </channel-definition>
       <!-- SECURE RUBY AMF -->
       <channel-definition id="channel-rubyamf-secure" class="mx.messaging.channels.SecureAMFChannel">
       <endpoint uri="/app/rubyamf/gateway" class="flex.messaging.endpoints.SecureAMFEndpoint" />
       </channel-definition>
    </channels>
    If I use this, will it work for my development and production environments? I don't like having to have to recompile the app each time I want to launch it for production.

    "drenner1" <[email protected]> wrote in
    message
    news:gf9j2f$901$[email protected]..
    >i have a current app .... it uses a web service to pull
    data .... returns
    >the
    > data as XML and then the data is converted to an
    arraycollection for use
    > in
    > various datagrid dataproviders ..... bottleneck in app
    appears to be
    > converting all data from xml to arraycollection ....
    approx 5 minutes to
    > process 3000 rows before data appears in app .... so
    want to use remoting
    > to
    > improve app performance ...
    >
    > my question is: when I use remoting and return data to
    client via
    > remoting,
    > can I use the data immediately without having to do a
    'conversion' step as
    > the
    > app is currently doing ??? can the data returned via
    remoting immediately
    > be
    > processed as an array (for example, looping over array
    elements) so it can
    > be
    > 'partitioned' for use for the various datagrids?? or do
    I still have to do
    > some
    > sort of conversion like I am currently doing ??? if I
    can immediately
    > 'use' the
    > data returned from the remote object without having to
    do a conversion
    > step, I
    > am thinking this will increase performace dramatically
    Try using an XMLListCollection.

Maybe you are looking for

  • I am having some confliction between FX-5200

    Hello Guys, I want to know that what does a new driver has to do with modem that it makes noises like "click click" during the gameplay... Right now i am using the old version that came with the box.It is 43.45 that has been released almost an year a

  • Idea Pad N586

    I bought my Idea Pad in Sept. 2012 as refurbished.  Upgraded from original W7 to W8.0 in Feb. 2013.  In the past few months, however, I keep going in circles and am very frustrated: - Windows Updates reappear after being updated and some won't update

  • Derive fiscal year

    hello i have a field called BUDAT (posting date) and i need to derive the fiscal year from this date. Can you help me. I am not very familiar with abap so please help me write the code for it. I found a FM called GM_GET_FISCAL_YEAR but i am not sure

  • Upgrade to Tiger with DVD sharing?

    Hi, My upgraded Digital Audio G4 (now 1GHz + 1Gig ram) is running Panther and has no DVD drive for the Tiger Install disks. I'd like to upgrade to Tiger. Is it possible to use DVD sharing on my new Snow Leopard iMac to do this? If not can I use an ex

  • I am unable to make different folders in menu like games n all

    Please help me to make folders in menu page of HP slate 7.. Like game, social n chats etc... I am able to make folders only on home page its not as per my requirements..