[Gvsig_desarrolladores] editar capas con registros sin geometría

Santiago Lorenzo santiago.lorenzo en alborgis.com
Vie Abr 18 10:57:42 CEST 2008


Hola,

He desarrollado una extensión para editar los atributos de una capa 
postGIS mediante un formulario. Mimetizando el funcionamiento de la 
edición de tablas en gvSIG tengo:

            VectorialEditableDBAdapter vea = 
(VectorialEditableDBAdapter) capa.getSource();
            FBitSet fbs = vea.getSelection();
            int ix = fbs.nextSetBit(0);
            IRowEdited row = vea.getRow(ix);
            Value[] values = row.getAttributes();
             //manipulo los valores...
            IRow newRow = null;
            if (row.getLinkedRow() instanceof IFeature) {
                IGeometry geometry = ((DefaultFeature) row.getLinkedRow())
                        .getGeometry();
                newRow = new DefaultFeature(geometry, values, row.getID());
            } else {
                newRow = new DefaultRow(values, row.getID());
            }
            vea.modifyRow(ix, newRow, "Editar valor", 13);

Ahora me gustaría poder añadir un registro nuevo, pero sin geometría. En 
postGIS tengo una tabla con registros que pueden o no tener geometría. 
gvSIG me muestra en la vista solo los que tienen geometría, y en la 
tabla asociada todos. Sin embargo, al intentar editar un registro sin 
geometría en la tabla, salta un null pointer exception, así que sospecho 
que con los objetos de gvSIG no es posible. Si alguien pudiera indicarme 
cómo hacerlo, le estaría muy agradecido.

Saludos


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