[Gvsig_desarrolladores] ¿Cómo añadir una nueva geometría en una layer en edición por código?

Jorge Bellido Diez jbellido en ikt.es
Jue Feb 21 14:58:59 CET 2008


Hola buenas tardes, estaba intentando añadir una nueva geometría en una layer que tengo en edición.. todo esto por código.. tengo lo siguiente pero me falla en el método addRow. Si alguien se le ocurre algo... Gracias. jorge
 
 	public void addGeometry(IGeometry geometry) {
		VectorialLayerEdited vle = (VectorialLayerEdited)CADExtension.getEditionManager().getActiveLayerEdited();
		VectorialEditableAdapter vea = vle.getVEA();
		int numAttr;
		try {
			numAttr = vea.getRecordset().getFieldCount();
			Value[] values = new Value[numAttr];
			for (int i = 0; i < numAttr; i++) {
				values[i] = ValueFactory.createNullValue();
			}			
			
			String newFID = vea.getNewFID();
			DefaultFeature df = new DefaultFeature(geometry, values, newFID);
			
			
			try {
// me falla aquí----->>>
				vea.addRow(df, vle.getLayer().getName(), EditionEvent.CHANGE_TYPE_ADD );

				vea.getRecordset().clearSelection();
			} catch (DriverIOException e) {
				// TODO Auto-generated catch block
				NotificationManager.addError(e.getMessage(),e);
				return;
			} catch (IOException e) {
				// TODO Auto-generated catch block
				NotificationManager.addError(e.getMessage(),e);
				return;
			}
			
		} catch (DriverLoadException e) {
			// TODO Auto-generated catch block
			NotificationManager.addError(e.getMessage(),e);
			return;
		} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
			// TODO Auto-generated catch block
			NotificationManager.addError(e.getMessage(),e);
			return;
		}
	}
 
 
 



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