What is the best way to Exchange items in the arraycollection collection
What's the more simple to swap items in a collection arraycollection? , I want to do this becaue I write my own sort bubble.
public function swapItemsAt(fromIndex:Number, toIndex:Number, collection:ListCollectionView):void{ var fromItem:Object = collection.getItemAt(fromIndex); var toItem:Object = collection.getItemAt(toIndex); collection.setItemAt(fromItem, toIndex) collection.setItemAt(toItem, fromIndex); }
Tags: Flex
Similar Questions
-
Access table in the arraycollection collection and add the item at the end of the table
for "login_user":"XXX"},i); //mess2=sess_MessArr[i2]; //mess1=dispArray[i2].fwchat_message //searchArray(mess2);} (var i:int = 0; i< dispArray.length; ++i){ dispArray[i]. dispArray.addItemAt({
I have this code to try to access the values in the table in the arraycollection collection, but that's not it actually creates a value at the end of the arraycollection collection. can someone tell me what im doing wrong I basically want retransmits the individual tables in the arraycollection collection and add Login_userSo, I guess your ArrayCollection collection holds an array of objects, as follows:
public var myAC:ArrayCollection = new ArrayCollection([{first:"bob",last:"smith"},{first:"jim",last:"jones"},{first:"mary",last:"allen"}]);
And you try to add a new property of login_user to each of them, right?
for each (var obj:Object in myAC) { obj.login_user = obj.first + "83"; }
Each person would be firstly, properties last and login_user. In my example above, all the login_user would set their name + number 83, so adjust you accordingly for your application.
It is the ease (for each rock for this situation). However, if you want to paste the iterative approach, you have published, you can try this:
for (var i:int = 0; i < myAC.length; i++) { myAC.getItemAt(i).login_user = myAC.getItemAt(i).first + "83"; }
I think that the for each syntax is clearer, but anyway works the way I think you want.
-
Is it possible to search the ArrayCollection collection by index?
Hi all
I know, we can loop and compare each element of the ArrayCollection collection to get the correct item that we want. Obveriously, performance is going to hurt and it is not a wise method of search. Can we create an index for the key field of each item? Or any other class offering such a feature?
Thank you
When you say "a clue" are you talking like one in a table of database index? That is something that can speed up a search?
I'm trying to understand your desire and I think that what I hear, is that you have an ArrayCollection collection contains a number of objects. When you want to find a particular object, you have found a way to locate the desired instance to browse each item in the collection ArrayCollection and ask "this element is equal to the key of the object I'm looking for? I think that you are concerned by the amount of time it can take.
Go back decades to my knowledge of computer science, this is an o(n) algorithm where n is the number of items in the table.
Now, if there was an 'index' (ala databases) on the data, so if this index have been sorted, you would be able to find your match in O (log n)
You can pay an O (n log n) cost the sort index when the data structure is created, but if you have a large number of research, then it can pay for itself.
I'm not aware of any function that will help you on this out of the box (but that doesn't mean not there does not exist, only that I don't know about it.)
I would like to also truthly ask yourself "is it worth the cost? How many items you will have a typical table? How often do you locate an entry in this table?
Neil
-
How to check whether or not the arraycollection collection is initialized
Hi all
I am bit new to use the collection arraycollection in flex. I'm having this particular scenario, where I get Server data in a table. So I have to check if the arracollection I created is initialized or not. If it is not initialized I need to initialize it or other wise, just add collection from table to table. Here is the code snippet
currentTrajectory = new collection ArrayCollection (event.result as Array);
var _multiTrajectoryEvent:MultiTrajectoriesEvent;
_multiTrajectoryEvent = new MultiTrajectoriesEvent (MultiTrajectoriesEvent.DRAW_AUTO_TRAJ);
If (!) (_multiTrajectoryEvent.trajectories.source is nothing))
{
_multiTrajectoryEvent.trajectories.addItem (currentTrajectory);
}
else
{
_multiTrajectoryEvent.trajectories = new ArrayCollection ([currentTrajectory]);
}
But unfortunately the above code does not work for me, because the arraycollection collection is not initialized first, there is no way of checking me if it is initialized later or not as the compiler gives me the error checking to null...
Can any Walter suggest how can I check if the table collection is initialized or not?
I would appreciate any suggestions and thouhgts for the same
Thank you
Akshay
Sorry to say, but it's not the right approach...
I'm abt don't know what is exactly done so I'll give a generic example...
I have an ArrayCollection collection...
private var arrC:ArrayCollection;
Maybe it's getting used internally in several places, so you be sure if she be initialized already or not. Then use a code something like that...
If (arrC! = null & arrC.length > 0)
{
...
...
}
If you are using
If (arrC.Length > 0)
{
...
...
}
and it is not initialised it will give exceptional at the time to compile...
For a logic if(a && b) be true both a and b must be true, so if same first one (a) is false it will not evaluate the second logic (b).
Thus, the previous logic works.
concerning
Nishant
-
Add a line of DataGrid using the ArrayCollection collection
Work of one of these, when I hard code do it programmatically is not:
Hard-coding approach 1 - *.
var acData:ArrayCollection = new ArrayCollection();
...
Each DataGridColum has a dataField like "col1", "col2", "col3", etc...
Therefore, adding items like this works
acData.addItem({col0:"testa",col1:"testb",col2:"testc",col3:"testd",col4:"teste"});)
2 - programming approach *.
But adding items like that does not work
for (var j = 0; j < dataRows.length (); j ++) {}
var t:String = [j] of dataRows m:System.NET.SocketAddress.ToString (); dataRows is of type XMLList, data are formatted as the format above
I did a breakpoint to check and someone else watch the channel and it matches the format that works.
acData.addItem (t);
}
When I try the second approach, I get all the content of the string in each cell of the grid, where, in the first approach, I get "tested" in the first column, "testb" in the second column (without quotes of course), etc...
Anyone know why there is a difference or what I am doing wrong?
Thanks in advance.
I guess that's because in the second approach, you add a string to your ArrayCollection collection instead of an object as in the first approach:
acData.addItem({col0:"testa",col1:"testb",col2:"testc",col3:"testd",col4:"teste"});) This is an object with the properties that you add to the ArrayCollection collection
var t:String is dataRows [j] m:System.NET.SocketAddress.ToString ();. It is a string, not an object
acData.addItem (t); you add a string to the ArrayCollection collectionYou must take your XML string and generate a new object, as in your first approach, using the End Sub
-
get the fields of the arraycollection collection?
I want to loop through a collection of table and access all the items (columns)
the arrayCollection collection looks so
.columnOne [1]
.columnTwo [1]
.columnThree [1]
.columnfour [1][Bindable] public var dataSet:ArrayCollection = new ArrayCollection();
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
TODO self-generating method stub
var d: Array = new Array()
var int count = 5;
var c:Number, r: Number;
for (var i: int = 0; i<>
{
c = Math.Floor (Math.Random () * 10)
r = Math.Floor (Math.Random () * 10)
d.push ({cost: i + 1})
Recipes: 2 * i + 1
});
}
dataSet.source = d;
Call();
}
function call (): void
{
for each (var point: Object in dataSet)
{
(var key: string in point)
{
trace (Key)
trace ([Key] Item)
}
}
}
-
Export the ArrayCollection collection in XML file
Hi all
Is it possible to export a Flex ArrayCollection collection to an XML file.
My collection of table is displayed in a datagrid as follows
< mx:DataGrid = "360" x y = "120" width = "448" height = "200" dataProvider = "{questionsArr}" >
< mx:columns >
< mx:DataGridColumn headerText = "Issue" dataField = "issue" / >
< mx:DataGridColumn headerText = dataField "Start" = "start" width = "40" textAlign = "center" / >
< mx:DataGridColumn headerText = "Stop" dataField = "stop" width = "40" textAlign = "center" / >
< / mx:columns >
< / mx:DataGrid >And I want to output the XML to look like this
< cue >
"< question section =" "start =" "stop =" "/ >
"< question section =" "start =" "stop =" "/ >
"< question section =" "start =" "stop =" "/ >
< / cue >Is this possible? I mean all the data is ready, he just needs to be saved. .
Hi djh88ukwb,
Try something as shown below in the link by performing a loop through the arraycollection collection and forming the knots... the way you need...
http://nsdevaraj.WordPress.com/2008/08/20/ArrayCollection-XML/
Thank you
Jean Claude Chari
-
How to add a new column to an existing item to an arraycollection collection?
Hello
I have a collection of arraycollection, acLeaseContract, which has this structure:
These are the columns and their respective data I get from main system. Now, I would like to add 2 more columns, after TenantName.
I can iterate through this collection arraycollection, creating an object, add all columns again to the new object, and also add new columns that I want to add and then add that object to the arraycollection collection.
for (i = 0; i < acLeaseContract.length; i ++) {}
var o: Object = new Object();
o.ContNo = acLeaseContract [i]. ContNo;
o.ContType = acLeaseContract [i]. ContType;
o.EndDt = acLeaseContract [i]. EndDt;
.
.
.
.
o.TenantName = acLeaseContract [i]. TenantName;
o.MyNewColumn1 = "somevalue";
o.MyNewColumn2 = "somevalue";
acLeaseContract.addItemAt (o, i);
}
But I think it's very painful and long, because we re building the collection whole arraycollection once again, just to add a couple of more columns.
Is there a clever way to update the collection arraycollection with new entries, if yes can you pls tell me how can this be achieved?
Thanks for your help...
-Deepak
Hello Deepak,
Try to use the ObjectUtil.copy method. This will create a complete copy of your object as:
var tempArray:Array = ObjectUtil.copy (acLeaseContract.source) in the table;
acLeaseContract = new ArrayCollection (tempArray);
You will avoid your iteration for simply copy your arrayCollection collection deeply.
Now, when you look at acLeaseContract it will all contain the dataStructure as an object. Now, you are free to add any number of column to any node.
Hope this helps you.
See you soon
-Vikash
-
How to get the child elements of the ArrayCollection collection?
Hi all
I want to analyze collection ArrayCollection and want the child node element.
How to parse the arraycollection collection?
for (var i: int = 0; i<>
{if (arrayCollectionObject.getItemAt (i). Item is "requireditem")}
your code
break;
}
}
Let me know if it helps
-
How to upgrade the ArrayCollection collection when running?
Am facing a problem with the arraycollection collection...
will have an arraycolelction like that...
var dpHierarchy:ArrayCollection = new ArrayCollection([)
{Region: "Application1"},
{Region: "Demand2"},
{Region: "Demand3"},
[{Region: "APPROVISIONNEMENTS4"}]
now what I'm looking for is... How to upgrade this arraycollection collection during execution using actions script?
I need to update this collection table something like this...
var dpHierarchy:ArrayCollection = new ArrayCollection([)
{Region: "Application1", year: '2008'},
{Region: "demand2', year: '2008'},
{Region: "Demand3', year: '2008'},
[{Region: "APPROVISIONNEMENTS4", year: '2008'}]
How to add the year field in to existing collection arraycollection as shown in the example...
Thanks in advance
Pratap
Hey get...
I have to just give
dpHierarchy [0] ['year'] = '2008 '.
:-)
-
update of the arrayCollection collection
Jin
I have an arrayCollection collection each time it updates, I need to make some sort of a calculation, how can I do with mechanizm binding?
Thank you
Jean MichelThere is an event collectionChange on the ArrayCollection collection that gets shot above power off when the ArrayCollection collection changes. You can capture this event and then sort the collection out of that.
The reference of the language will give you a few details: http://livedocs.macromedia.com/flex/2/langref/index.html
-Andy
-
Need help: best way to exchange the Ipads?
Dear all,
Need help a genre:
I use Ipad Air2 and my father is using retina Ipad Mini... I gifted him before 2 years...!
We thought to share the Ipads because he loved the biggest... Can someone guide what is the best way to swap the parameters of the iPad?
It is by taking backup and restore from Icloud? There will be data loss? or anything else that needs attention (something that he needed to be reconfigured)?
Any help is very appreciated!
Make a backup of each individual iPad. Use your own accounts: How to back up your device using iCloud or iTunes - Apple Support
Import your photos from each iPad: import pictures and videos from your iPad, iPhone or iPod touch to your computer - Apple Support
Then do it on every iPad: what to do before you sell or give away your iPhone, iPad or iPod touch - Apple Support
Then restore the backup in your 'new' ipads: restore your device from an iCloud or iTunes backup - Apple Support
If the ipads have the same size of storage with the same iOS version, it should work fine. -AJ
-
To access the names of the fields in the ArrayCollection collection
Hello, this can seem like a n00b question, but, I have a collection of table that looks to the below:
public var topFive:ArrayCollection = new ArrayCollection([)
{Month: "GAME_Redemptions"},
{Month: "TALLINK_Redemptions"},
{Month: "YvesRocher_Redemptions"},
{Month: "ETAM_Redemptions"}
]);With a loop, for example, if I want to access the value, I would type, topFive [i] .month. However, if I want to access domain name, what would be the code. IM assuming that it would be something like [i] topFive - but it does not return the desired result.
Does anyone know how to do this? I wanted to avoid having to put the table in a datagrid control and then extract values from there.
Help, please!
Craig
Your ArrayCollection collection contains five dynamic objects. If the expression 'topFive [i]' will give you the object at index 'i', rather than the Month of this object property. If you do not know the names of the properties of these objects then you need in order to access their properties a second loop:
<>
"xmlns:MX ="http://www.adobe.com/2006/mxml"
Layout = "vertical" >
Import mx.collections.ArrayCollection;
private var topFive:ArrayCollection = new ArrayCollection([)
{Month: "GAME_Redemptions"},
{Month: "TALLINK_Redemptions"},
{Month: "YvesRocher_Redemptions"},
{Month: "ETAM_Redemptions"}
]);
private void doLoop(): void
{Loop through the objects in the collection
for each (var item: object in topFive)
{Loop in the properties of the current object.
for (var property: String in object)
{Display the name of the current property and the value it contains
output. Text += property + ":"+ object [property] + '\n'; '.
}
}
}
]]>
<>
label = 'Do Loop'
Click = "doLoop ()" / > "
<>
Width = "200".
Height = "300".
ID = "output" / >
-
Extract information from the arrayCollection collection
Hello world
I have a very simple problem, but I'm a new flex developer and I have no idea what to do.
that I extracted information from a database by using a Web service in coldfusion.
in flex, I recovered my query result in an arrayCollection collection
private var tabInfosDriver:ArrayCollection
and if I give {tabInfosDriver} as a dataprovider to a DataGrid, the result of the query is displayed correctly, something like that.Private function driverInfoHandler(event:ResultEvent):Sub
tabInfosDriver = event.result as ArrayCollection; collection
Header1 By tete2 Header3 Header4 Header5 someValue value2 someValue3 someValue4 someValue5
now, I want to use header1 someValue to fill a textField instance.I tried:
Label1.text = tabInfosDriver.getItemAt (1.0) m:System.NET.SocketAddress.ToString)
but it wrong: the index table out of range and in any case, I want to use the name of the header field, which is the database table to call its value
Label1.text = tabInfosDriver.getItemAt("header1").value.toString)
What can I do? I don't know that it is easy to solve. I looked at all the methods of the collection arrayCollection object, but I can't understand wich one to use.
Please forgive me of my language, I do not speak English very often.
Dominic
Often you can either return the data to the Flex application in standard object notation, or to reconfigure the data in this way once he returns to the Flex application in the result handler. The standard notation, to which I am referring is:
{
{key1: 'value 1', key2: "Value2", key3: "Value3"},
{key1: 'value 1', key2: "Value2", key3: "Value3"},
{key1: 'value 1', key2: "Value2", key3: "Value3"},
{key1: 'value 1', key2: "Value2", key3: "Value3"}
}
So in this way the data is structured, already as an associative array, because such a table is really just an ActionScript object.
If these data should be accessible in two ways:
var tempVar:String = myObject.key1;
var tempVar:String = myObject ["key1"]; (maybe myObject ["key1"])
Moreover, this "standard object notation" is also known under the name of JSON and there are libraries for handling JSON to the format of the data in Flex, PHP, etc if you have not necessarily to treat it as JSON, which comes, which makes it a little more formal and provides additional APIs:
-
Add the object to the ArrayCollection collection
Hi all
I have an ArrayCollection collection which will be filled by a call remotely from java code.
The Collection is no longer bound to a ComboBox that is shownup in the Panel.
I tried to add an object to the collection of ArrayCollection iterated to 0th Index, whereas I could see this label of objects as the default label in the drop-down list box.
But when the drop-down list box is displayed, the first element of the returned list of JavaCode is shown as the default label.
See all present items in the drop-down list box, the label of objects which is added at Index 0 is seen, but when rendering this is not used as the default when appears on the display.
< mx:ArrayCollection id = "departments" / >
private void departmentResultHandler(event:ResultEvent):void
{
departments = event.result as ArrayCollection collection;
Department: Department of var = new Department();
department.departmentID = 0;
department.departmentName = "Department";
departments.addItemAt(department,0);
}
< mx:ComboBox id = "add_departmentID" dataProvider = "{services}" labelField = "departmentName" textAlign = "left" selectedIndex = "0" / >
As I can't download images screeshot here, these are the URL that displays the images and gives a clear picture of what explains
http://picasaweb.Google.com/narra.Madan/screenshots/photo#5118474206291402818
http://picasaweb.Google.com/narra.Madan/screenshots/photo#5118474206291402834
Please suggest where I have gone wrong
Kind regards
MadanThe problem is the timing. When you assign the event.result to departments, the result is bound to the drop-down list, and the first item is selected by default. When new items are added to the drop-down list, flex does not change the selected item to the new item. Yes, it's just saying to your drop-down list box to select the element 0 and it will show Department.
departments.addItemAt(department,0);
add_departmentID.SelectedIndex = 0;You can also look at the use of the prompt property of the combo box. The prompt when comboBox.selectedIndex = - 1. Unless you need article of the Jet to be selectable, you can quickly define = 'Department' and then do:
private void departmentResultHandler(event:ResultEvent):void
{
departments = event.result as ArrayCollection collection;
add_departmentID.SelectedIndex = - 1;
}Vygo
Maybe you are looking for
-
Why can't I import my favorites?
I have Firefox on my snow leopard aMac &, yesterday set up a new user account, but am now impossible to import my bookmarks.html in the new user account
-
How to move the icon noscript at the bar of the add-on from left to right?
Using the 4.0 Beta 8 MF, just put update and noscript icon went down right down to the left and a small x now appears in the bar of the add-on. Don't know how to solve this problem, when I try to move to the right corner it just fail!, as well as tha
-
HP Pavilion g6t - 1 d 00: cannot find command of Kit Recovery Option
Hi, my laptop crashed and recovery partition is lost and need to order the recovery kit, but can't find the options to control the kit in the product page. I need advice with this The full name of the product is HP Pavilion g6t - 1 d 00 CTO Notebook
-
SQL Server Windows NT 64 stop working__
I have Windows Vista Ultimate 64 Reports of problems and said Solution my SQL Server Windows NT - 64 bits ceased to run see details below: Signature of the problem Problem event name: APPCRASH Application name: sqlservr
-
I see boxes with Red x in my e-mail instead of images.
How can I get rid of the red x in my email... instead of pictures, it turns red X original title: red x instead of photos