public void initialSyncUIWithDataModel() {
    // Esto es necesario por ejemplo porque al inicializarse el UI se eliminan todos
    // los nodos, volverán a crearse al sincronizarse con el data model,
    // pero ahora sin el atributo selected que había originalmente en los nodos
    // seleccionados

    ItsNatHTMLSelectMultImpl comp = getItsNatHTMLSelectMult();
    ListSelectionModel selModel = comp.getListSelectionModel();

    int len = comp.getListModel().getSize();
    ItsNatListMultSelUIInternal compUI = comp.getItsNatListMultSelUIInternal();
    for (int i = 0; i <= len; i++) {
      boolean selected = selModel.isSelectedIndex(i);
      compUI.setSelectedIndex(i, selected);
    }

    HTMLSelectElement elem = getItsNatHTMLSelectMult().getHTMLSelectElement();
    ((ItsNatNodeInternal) elem)
        .addEventListenerInternal(
            "DOMCharacterDataModified",
            this,
            false); // Para cuando cambie el contenido de una opción
    ((ItsNatNodeInternal) elem)
        .addEventListenerInternal("DOMAttrModified", this, false); // Para el atributo selected

    super.initialSyncUIWithDataModel();
  }
  public void dispose() {
    super.dispose();

    HTMLSelectElement elem = getItsNatHTMLSelect().getHTMLSelectElement();
    ((ItsNatNodeInternal) elem)
        .removeEventListenerInternal("DOMCharacterDataModified", this, false);
    ((ItsNatNodeInternal) elem).removeEventListenerInternal("DOMAttrModified", this, false);
  }
  private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
    in.defaultReadObject();

    // Hay que tener en cuenta que los event listeners internos no se serializan
    if (!comp.isDisposed()) {
      HTMLSelectElement elem = getItsNatHTMLSelectMult().getHTMLSelectElement();
      ((ItsNatNodeInternal) elem)
          .addEventListenerInternal(
              "DOMCharacterDataModified",
              this,
              false); // Para cuando cambie el contenido de una opción
      ((ItsNatNodeInternal) elem)
          .addEventListenerInternal("DOMAttrModified", this, false); // Para el atributo selected
    }
  }