Building an Address Book > Creating the Application Functions > The doUpdateContact() Function |
The doUpdateContact() Function
The doUpdateContact() function shares much in common with the
doAddContact() function. It saves some contact data, returns the
address book to "browse" mode, and refreshes the on-screen contact information.
Like doAddContact(), doUpdateContact() is a callback
for the "Done" button's click handler.
The doUpdateContact() function performs the following tasks:
Disables the "contact details" pane and enables the "address book" pane. |
|
Updates an existing contact in the local SharedObject. |
|
Refills the |
|
Selects the updated contact in |
|
Places the updated contact information in the "contact details" pane. |
The complete listing for doUpdateContact() is shown below. The
comments explain the minor differences from code in doAddContact().
/*
* Function: doUpdateContact()
* Desc: Revises an existing contact in the local shared object and
* returns the app to regular "browse" mode.
* Parameters: None.
*/
function doUpdateContact ()
{
// Return to the normal address book mode. Same as doAddContact().
exitEditMode();
// Because we're updating, not adding, we need the ID of
// the contact to change. We get the ID from the data value
// of the selected ListBox item.
var selectedID = contactListBox_lb.getValue();
// When the update is complete, we want to re-select the
// original selection in contactListBox_lb (the selection
// will be lost when we populate the ListBox). Hence we must
// make note of the ListBox's selected item before repopulating.
var oldSelectedIndex = contactListBox_lb.getSelectedIndex();
// Now we use updateContact() to revise the the contact data.
// Just as with addContact(), we grab the information from the
// text fields and ComboBox in the "contact details" pane.
contactMgr.updateContact(selectedID,
firstNameField.text,
lastNameField.text,
emailField.text,
phoneField.text,
phoneComboBox_cb.getSelectedIndex(),
companyField.text,
commentsField.text);
// Now we refill the entries in the address book. Our custom
// populateListBox() function takes the desired new selected
// index as a parameter.
populateListBox(oldSelectedIndex);
}