public function collectionEventHandler(event:CollectionEvent):void
{
switch(event.kind)
{
case CollectionEventKind.ADD:
addLog("Item "+ event.location + " added");
break;
case CollectionEventKind.REMOVE:
addLog("Item "+ event.location + " removed");
break;
case CollectionEventKind.REPLACE:
addLog("Item "+ event.location + " Replaced");
break;
case CollectionEventKind.UPDATE:
addLog("Item updated");
break;
}
}
// Helper function for adding information to the log.
public function addLog(str:String):void
{
log.text += str + "\n";
}
// Add a person to the ArrayCollection.
public function addPerson():void
{
ac.addItem({first:firstInput.text, last:lastInput.text,
email:emailInput.text});
clearInputs();
}
// Remove a person from the ArrayCollection.
public function removePerson():void
{
// Make sure an item is selected.
if (dg.selectedIndex >= 0)
{
ac.removeItemAt(dg.selectedIndex);
}
}
// Update an existing person in the ArrayCollection.
public function updatePerson():void
{
// Make sure an item is selected.
if (dg.selectedItem !== null)
{
ac.setItemAt({first:firstInput.text, last:lastInput.text,
email:emailInput.text}, dg.selectedIndex);
}
}
// The change event listener for the DataGrid.
// Clears the text input controls and updates them with the contents
// of the selected item.
public function dgChangeHandler():void
{
clearInputs();
firstInput.text = dg.selectedItem.first;
lastInput.text = dg.selectedItem.last;
emailInput.text = dg.selectedItem.email;
}
// Clear the text from the input controls.
public function clearInputs():void
{
firstInput.text = "";
lastInput.text = "";
emailInput.text = "";
}
]]>
<!-- The ArrayCollection used by the DataGrid and ComboBox. -->
<arraycollection id="ac"><p> collectionChange="collectionEventHandler(event)"> <br><source><br><object first="Matt" last="Matthews" email="<a href=" mailto:matt>matt@myco.com"/></object></source></p> <p> <object first="Sue" last="Sanderson" email="<a href=" mailto:sue>sue@myco.com"/> <br><object first="Harry" last="Harrison" email="<a href=" mailto:harry>harry@myco.com"/></object></object></p> <p> <br></p></arraycollection>
<panel title="Master-Detail View" width="100%"><br><datagrid width="100%" id="dg" dataprovider="{ac}"><p> change="dgChangeHandler()"> <br><columns><br><datagridcolumn datafield="first" headertext="First Name"></datagridcolumn></columns></p> <p> <datagridcolumn datafield="last" headertext="Last Name"></datagridcolumn><br><datagridcolumn datafield="email" headertext="Email"></datagridcolumn><br></p> <p> </p></datagrid><br><!-- Form for data to add or change in the ArrayCollection. --><br><form label="test" width="100%"></form></panel>
<formitem label="First Name" width="100%"><br><textinput id="firstInput" width="100%"></textinput></formitem>
<formitem label="Last Name" width="100%"><br><textinput id="lastInput" width="100%"></textinput></formitem>
<formitem label="Email" width="100%"><br><textinput id="emailInput" width="100%"></textinput></formitem>
<controlbar horizontalalign="center"><br><!-- Buttons to initiate operations on the collection. --></controlbar>
<!-- Clear the text input fields. -->
<!-- The application displays event information here -->
<panel title="Change log" width="100%" height="125"><br><textarea id="log" width="100%" height="100%"></textarea></panel>