/**
  * Busca un elemento en la table y devuelve el indice en el modelo Devuelve -1 si no se encuetra.
  *
  * @param table
  * @param item
  * @return
  */
 protected int getModelIndexForItem(Cliente item) {
   if (listModel != null) {
     List<Cliente> lista = listModel.getDataList();
     for (int i = 0; i < lista.size(); i++)
       if (lista.get(i).getId().equals(item.getId())) return i;
   }
   return -1;
 }
 @Override
 public TerceroListTableModel<Cliente> getListTableModel() {
   Assert.notNull(dataService);
   if (listModel == null) {
     ClienteListProvider dataProvider = new ClienteListProvider(dataService);
     listModel = new TerceroListTableModel<Cliente>(dataProvider, this);
     listModel.refreshData();
   }
   return this.listModel;
 }
 /* (non-Javadoc)
  * @see com.veisite.vegecom.service.DataChangeListener#itemRemoved(java.lang.Object)
  */
 @Override
 public void itemRemoved(Cliente item) {
   int index = getModelIndexForItem(item);
   if (index >= 0) listModel.delItemAt(index);
 }
 /** Un tercero ha sido modificado, notificar la tabla */
 @Override
 public void itemChanged(Cliente item) {
   int index = getModelIndexForItem(item);
   if (index >= 0) listModel.setItemAt(index, item);
 }
 /** Un nuevo tercero ha sido aƱadido Incluir en la lista */
 @Override
 public void itemAdded(Cliente item) {
   if (listModel != null) listModel.addItem(item);
 }