[Gvsig_desarrolladores] Problemas seleccionando después de borrado

Nacho Uve nachouve en gmail.com
Lun Mar 29 20:20:22 CEST 2010


Muchísimas gracias Fran!!!

Pueden ir los tiros sí... De todos modos, no consigo que funcione
introduciendo la primera línea.

En la clase SelectionSupport sigue existiendo en el
ArrayList<SelectionListener> listeners una VectorialLayerEdited
que parece que es la que da problemas. :(

Mañana sigo con la investigación y comento un poco más.

Gracias!



El 29 de marzo de 2010 19:29, Francisco José Peñarrubia
<fpenarru en gmail.com>escribió:

> Hola Nacho.
>
> Creo que el problema viene porque guardas los cambios, pones la capa en
> modo no edición, pero se te ha olvidado quitar como escucha de los
> eventos de selección al VectorialLayerEdited.
> Si te fijas en cuando se para la edición, hay una línea:
>
> layer.removeLayerListener(edMan);
>
> la variable edMan viene de
>
> EditionManager edMan =cadtoolAdapter.getEditionManager();
>
> Yo no lo he probado, pero creo que por ahí pueden ir los tiros.
>
> Saludos, viajero!! :-)
>
> Fran.
>
> Nacho Uve escribió:
> > Hola,
> >
> > Estamos estabilizando el código de NavTable para gvSIG-1.9. Tenemos
> > una función para eliminar un registro de una capa vectorial. El código
> > ha sido extraído de otras partes del código de gvSIG donde se
> > realizada esa acción.
> >
> > El código es el siguiente:
> >
> >                 VectorialLayerEdited vle =
> > CADExtension.getCADTool().getVLE();
> >                 VectorialEditableAdapter vea = vle.getVEA();
> >
> >                 vea.startComplexRow();
> >
> >                 vea.doRemoveRow((int)currentPosition,
> > EditionEvent.GRAPHIC);
> >
> >                 vea.endComplexRow("Removed_Record");
> >                 vle.clearSelection(VectorialLayerEdited.NOTSAVEPREVIOUS);
> >                 vea.getSelection().clear();
> >
> >                 te.stopEditing(layer, false);
> >
> > El código funciona correctamente borrando el registro situado en la
> > posición "currentPosition", pero si a continuación se selecciona
> > cualquier elemento de esa capa se produce el siguiente error:
> >
> > DEBUG [AWT-EventQueue-1] (NotificationManager.java:104) -
> > java.lang.NullPointerException
> > java.lang.NullPointerException
> >     at
> >
> com.iver.cit.gvsig.layers.VectorialLayerEdited.selectionChanged(VectorialLayerEdited.java:635)
> >     at
> >
> com.iver.cit.gvsig.fmap.layers.SelectionSupport.fireSelectionEvents(SelectionSupport.java:127)
> >     at
> >
> com.iver.cit.gvsig.fmap.layers.SelectionSupport.setSelection(SelectionSupport.java:66)
> >     at
> >
> com.iver.cit.gvsig.fmap.layers.SelectableDataSource.setSelection(SelectableDataSource.java:402)
> >     at
> >
> es.udc.cartolab.gvsig.navtable.AbstractNavTable.selectCurrentFeature(AbstractNavTable.java:608)
> >
> > Debugeando he visto que el código de VectiorialLayerEdited devuelve un
> > NULL pointer en:
> >                             getVEA().getSelection().isEmpty()
> >
> > ¿Cómo podemos solucionar este comportamiento?
> > Muchas gracias!!!
> >
> >
> >
> > --
> > Juan Ignacio Varela García (Nacho Uve)
> > Coordinador 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
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores en listserv.gva.es
> > http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
> >
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>



-- 
Juan Ignacio Varela García (Nacho Uve)
Coordinador 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20100329/ebda2d2f/attachment.htm 


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