[Gvsig_desarrolladores] Problemas seleccionando después de borrado
Francisco José Peñarrubia
fpenarru en gmail.com
Lun Mar 29 19:29:51 CEST 2010
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
>
Más información sobre la lista de distribución gvSIG_desarrolladores