[Gvsig_desarrolladores] Listener de modificación de datos

Javier Estévez jestevez en cartolab.es
Lun Mayo 2 13:23:34 CEST 2011


Hola,

este mensaje en realidad no es nuevo, es una traducción de otro que
envié hace unos días a la lista internacional de desarrolladores. Pido
disculpas por adelantado si lo recibís por duplicado.

He estado trabajando para que NavTable escuche cambios en datos
alfanuméricos que se hayan realizado fuera de él. Es decir, quiero que
se refresque cuando el usuario edite los datos desde la tabla de
gvSIG.

Para lograrlo, usé IEditionListener, concretamente el método
afterRowEdit. Esta solución funciona perfectamente con FLyrVect, pero
no cuando se trata de información que no esté en una capa vectorial.
Si edito una fila desde un documento tabla, no se lanza el evento de
la modificación de fila.

Después de hacer un poco de investigación, encontré el siguiente
código en el método doModifyRow, de la clase EditableAdapter (línea
740):

               isFullExtentDirty = true;
               //fireAfterModifyRow(index, sourceType);
               return pos;

¿Por qué fireAfterModifyRow está comentado? ¿Es seguro descomentarlo?
El mensaje de commit de esta línea de código es "Quito llamadas al
listener al modificar", que no me parece suficientemente claro. Por
cierto, el commit se hizo hace cuatro años.

Yo descomentaría la línea si es seguro hacerlo y puede ser realmente
necesario para mucha gente (desarrolladores de extensiones). Yo probé
a hacerlo y me funciona perfectamente, pero tampoco sé si estoy
rompiendo algo en algún otro lado...

Al no recibir respuesta en el hilo de la lista internacional, he
creado un ticket en el bug tracker, en el que incluyo un parche [1]

Un saludo,
Javi.

[1] http://forge.osor.eu/tracker/?func=detail&aid=15287&group_id=89&atid=732

-- 
Javier Estévez Valiñas
Grupo de Desarrollo
Cartolab - Laboratorio de Ingeniería Cartográfica
http://www.cartolab.es

ETS Ingeniería de Caminos, Canales y Puertos
Universidade da Coruña
Campus de Elviña - 15071 A Coruña (España)
(34)981167000 ext. 5493


Más información sobre la lista de distribución gvSIG_desarrolladores