final String item = update.getString(PROPERTY.ITEM_TEXT);
uiObject.insertItem(item, index);
} else if (update.containsKey(PROPERTY.ITEM_ADD)) {
final String items = update.getString(PROPERTY.ITEM_TEXT);
final String groupName = update.getString(PROPERTY.ITEM_GROUP);
final SelectElement select = uiObject.getElement().cast();
// final NodeList<Element> elementsByTagName = select.getElementsByTagName("optgroup");
// OptGroupElement groupElement = Document.get().createOptGroupElement();
// for (int i = 0; i < elementsByTagName.getLength(); i++) {
// final OptGroupElement group = OptGroupElement.as(elementsByTagName.getItem(i));
// if (group.getLabel().equals(groupName)) {
// groupElement = group;
// break;
// }
// }
// if (groupElement == null) {
// final OptGroupElement groupElement = Document.get().createOptGroupElement();
// }
final OptGroupElement groupElement = Document.get().createOptGroupElement();
groupElement.setLabel(groupName);
final String[] tokens = items.split(";");
for (final String token : tokens) {
final OptionElement optElement = Document.get().createOptionElement();
optElement.setInnerText(token);
groupElement.appendChild(optElement);
}
select.appendChild(groupElement);
} else if (update.containsKey(PROPERTY.ITEM_UPDATED)) {
final int index = update.getInt(PROPERTY.INDEX);
final String item = update.getString(PROPERTY.ITEM_TEXT);
uiObject.setItemText(index, item);
} else if (update.containsKey(PROPERTY.ITEM_REMOVED)) {