// No hacemos comp.setUIEnabled(false); porque si el cambio
// de selecci�n via markup no es v�lido el selection model
// corregir�, o bien el cambio de un option puede suponer cambios en otros option.
// No hay problema de cambios c�clicos porque se evita lanzar un mutation event
// si el nuevo valor del atributo es el mismo ya presente.
HTMLOptionElement option = (HTMLOptionElement)mutEvent.getTarget();
int index = option.getIndex();
int changeType = mutEvent.getAttrChange();
switch(changeType)
{
case MutationEvent.ADDITION:
case MutationEvent.MODIFICATION: // Caso raro
selectItem(index,true);
break;
case MutationEvent.REMOVAL:
selectItem(index,false);
break;
}
}
else if (type.equals("DOMNodeInserted") || type.equals("DOMNodeRemoved"))
{
// No he testeado el caso de insertar/remover datos via ListModel directamente (no a trav�s de markup)
// yo creo que no funcionar�a bien porque no podemos detectar este caso, el resultado
// es que al a�adir/remover el DOM por el funcionamiento normal
// provocar�a un mutation event que pasar�a por aqu� a�adiendo/removiendo
// de nuevo en el ListModel. No es preocupante, un componente en modo markup driven
// debe modificarse desde el markup o por acci�n del usuario (selecci�n).
//Element parent = (Element)mutEvent.getRelatedNode();
Node node = (Node)mutEvent.getTarget();
if (node instanceof HTMLOptionElement)
{
ListModel dataModel = comp.getListModel();
HTMLOptionElement option = (HTMLOptionElement)node;
int index = option.getIndex();
boolean uiEnabled = comp.isUIEnabled();
comp.setUIEnabled(false);
try
{
if (type.equals("DOMNodeInserted"))