Object key = context.getKey();
String type = event.getType();
ApprovalViewData viewData = getViewData(key);
if ("change".equals(type)) {
// Disable the select box.
SelectElement select = parent.getFirstChild().cast();
select.setDisabled(true);
// Add the pending icon if it isn't already visible.
if (viewData == null) {
Element tmpElem = Document.get().createDivElement();
tmpElem.setInnerHTML(pendingIconHtml.asString());
parent.appendChild(tmpElem.getFirstChildElement());
}
// Remember which value is now selected.
int index = select.getSelectedIndex();
String pendingValue = select.getOptions().getItem(index).getValue();
viewData = new ApprovalViewData(pendingValue);
setViewData(key, viewData);
finishEditing(parent, pendingValue, key, valueUpdater);
// Update the value updater.