gvSIG bugs #2954
Edición lenta usando calculadora de campos
Status: | Closed | % Done: | 0% | |
---|---|---|---|---|
Priority: | Urgent | Spent time: | - | |
Assignee: | - | |||
Category: | Document table | |||
Target version: | 2.1.0-2255-testing | |||
Severity: | Critical | Add-on version: | ||
gvSIG version: | 2.1.0 | Add-on build: | ||
gvSIG build: | 2254 | Add-on resolve version: | ||
Operative System: | Add-on resolve build: | |||
Keywords: | Proyecto: | |||
Has patch: | Hito: | |||
Add-on name: | Unknown |
Description
Cuando editamos la tabla de atributos de un shape, utilizando la Selección de atributos para seleccionar algunos registros y la calculadora para cambiar los valores de algún campo, la edición es muy lenta respecto a anteriores versiones.
Habría que revisar si es posible acelerar estos procesos.
Associated revisions
refs #2954. Reemplazada la implementacion de getSelectedRowCount en el FeatureTable por una mas optima usando la seleccion del store.
refs #2954. Modificada la implementacion del "update" para que acumule las notificaciones de modificacion sobre el store de forma que solo las atienda despues de un segundo de no recibir ninguna notificacion. Tal como estaba antes cuando se editaba en modo bactch la tabla, por ejemplo con la calculadora de campos, se disparaba una notificacion por cada edicion de una linea, y esta provocaba que se refrescase la tabla por cada modificacion.
refs #2954. Añadido mensaje al registro de errores.
History
#1
Updated by Álvaro Anguix almost 10 years ago
- Priority changed from Normal to Urgent
Tras realizar pruebas varias parece que no tiene que ver con el uso de la calculadora de campo. Cualquier edición que hagamos con elementos seleccionados tiene este comportamiento.
#2
Updated by Joaquín del Cerro Murciano almost 10 years ago
- Target version changed from 2.1.0-2259-rc3 to 2.1.0-2255-testing
#3
Updated by Joaquín del Cerro Murciano almost 10 years ago
Bueno, pues no era un solo error o problema el que se estaba presentando.
He detectado dos:
- Por un lado cuando se usaba la calculadora de campos, cada vez que se editaba un registro se reconstruia la tabla de nuevo. Eso hacia que tardase mucho en ejecutarse el proceso.
- Por otro lado, cada vez que se cambiaba de ventana en gvSIG, por ejemplo de la tabla a la vista o al reves, habia al menos una extension, TableEditCutExtension, que consultaba al componente grafico de la tabla el numero de lineas seleccioadas para determinar si se activaba o no. esto provocaba que se recorriese todos los elementos de la tabla para determinar cuantos habia seleccionados.
He aplicado correcciones para estos dos problemas. Para el primero he retrasado la accion de reconstruir la tabla de forma que solo se haga una vez al final del proceso. Para el segundo he cambiado la implementacion de la consulta del numero de linas seleccionadas para que no precise recorrerse todas las lineas.
A pesar de estos cambios, hay que tener en cuenta que la edicion se realiza en memoria, y no se guardan los datos hasta terminar edicion. Si usamos la calculadora de campos sobre una tabla muy (muy muy) grande, esto provocara que se cargue toda la tabla en memoria, y ademas de poder tener problemas de "ocupacion en memoria", algunas operaciones pueden ir mas lentas.
#4
Updated by Álvaro Anguix almost 10 years ago
Gracias. No sé si se ha hecho alguna prueba con PostGIS, pero en cualquier caso si está solucionado lo que comentas ya se podría sacar el siguiente build.
#5
Updated by Joaquín del Cerro Murciano almost 10 years ago
- Status changed from New to Fixed
#6
Updated by Álvaro Anguix almost 10 years ago
- Status changed from Fixed to Closed