Jython Completion Shell
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) Server VM (Sun Microsystems Inc.)] on java1.6.0_26
>>>
>>> from gvsig import *
>>> schema = currentLayer().getSchema()
>>> schema.getAttrNames()
[u'campo1', u'GEOMETRY']
>>> schema.append('ID','INTEGER')
org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureAttributeDescriptor@4f4458
>>>
#El campo que acabamos de añadir está en la definición de datos
>>> schema.getAttrNames()
[u'campo1', u'GEOMETRY', u'ID']
>>> #El campo que acabamos de añadir no está en la definición de datos de
>>> #la capa
>>> currentLayer().getSchema().getAttrNames()
[u'campo1', u'GEOMETRY']
>>> #Se produce un error porque la capa no está en edición
>>> currentLayer().updateSchema(schema)
Traceback (most recent call last)
File "<input>", line 1, in <module>
File "....
>>> currentLayer().edit()
>>> currentLayer().updateSchema(schema)
>>> currentLayer().getSchema().getAttrNames()
[u'campo1', u'GEOMETRY', u'ID']
>>> currentLayer().commit()
>>>
>>> currentLayer().isEditing()
False
>>> currentLayer().getSchema().getAttrNames()
[u'campo1', u'ID', u'GEOMETRY']
>>> #No se puede eliminar el campo porque el schema no está en edición
>>> schema = currentLayer().getSchema()
>>> schema.remove('campo1')
False
>>> schema.modify()
>>> #Elimina el campo porque el schema está en edición
>>> schema.remove('campo1')
org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureAttributeDescriptor@c863dd
>>> #La capa no refleja los cambios
>>> currentLayer().getSchema().getAttrNames()
[u'campo1', u'ID', u'GEOMETRY']
>>> currentLayer().edit()
>>> #Actualizamos la capa
>>> currentLayer().updateSchema(schema)
>>> currentLayer().getSchema().getAttrNames()
[u'ID', u'GEOMETRY']
>>> #Terminamos la edición de la capa
>>> currentLayer().commit()