[Gvsig_desarrolladores] ayuda para añadir registro en tabla postgis, gvsig 1.9

Francisco José Peñarrubia fpenarru en gmail.com
Mie Jul 14 15:51:11 CEST 2010


Creo que el problema viene justo antes del código que has puesto, cuando 
creas la fila. En la 2.0 se usan objetos de Java puros (Integer, Long, 
Double, etc). En la 1.9, se usan objetos de GBMS,  que heredan todos de 
Value.

De lo del VectorialAdapter, cuando estás en edición, el objeto que te 
devuelve es un VectorialEditableAdapter, (que implementa el interfaz 
ReadableVectorial). Puedes (y debes) hacer un cast:

                    VectorialEditableAdapter vea = 
(VectorialEditableAdapter) myLayer.getSource();

Todo lo de edición está en extCad, por si quieres ver ejemplos.

Saludos.

Fran.

agirrearri escribió:
> Hola llevo unos dias con dos cosas que no puedo solucionar. 
>
> Uno es añadir un registro a una tabla que tengo cargada en gvsig1.9 desde
> postgis.
> Tengo el objeto ProjectTable y lo edito y se hacen los cambios, pero no
> puedo guardarlos. En la documentación solo habla de que necesita el
> IEditableSource pero no explica nada mas y no lo consigo.
> Pongo el código si alguien me puede hechar una mano. 
>
>                 IRow row = new DefaultRow(fila);
> 	
> 		IEditableSource ies=pt.getModelo();
> 		
> 		IWriteable w = (IWriteable) ies;
> 		IWriter writer = w.getWriter();
> 		ITableDefinition tableDef = ies.getTableDefinition();
> 		writer.initialize(tableDef);
> 	
> 	        ies.startEdition(EditionEvent.ROW_EDITION);
> 		ies.addRow(row,"anadir seguimiento", EditionEvent.ROW_EDITION);
> 			
> 		ies.stopEdition(writer, EditionEvent.ALPHANUMERIC);// AQUI ME FALLA
>
> Da este error:
> DEBUG [AWT-EventQueue-1] (NotificationManager.java:104) -
> java.lang.ClassCastException: com.hardcode.gdbms.engine.values.IntValue
> java.lang.ClassCastException: com.hardcode.gdbms.engine.values.IntValue
> 	at com.iver.cit.gvsig.fmap.drivers.XTypes.updateValue(XTypes.java:205)
> 	at
> com.iver.cit.gvsig.fmap.edition.writers.JdbcWriter.process(JdbcWriter.java:70)
> 	at
> com.iver.cit.gvsig.fmap.edition.EditableAdapter.saveEdits(EditableAdapter.java:365)
> 	at
> com.iver.cit.gvsig.fmap.edition.EditableAdapter.stopEdition(EditableAdapter.java:272)
> 	at
> org.gvsig.sampleextension.Sincronizador1.registrarSeguimiento(Sincronizador1.java:214)
> 	at
> org.gvsig.sampleextension.Sincronizador1.lanakEgin(Sincronizador1.java:109)
> 	at
> org.gvsig.sampleextension.FormularioActualizacion.okjButtonActionPerformed(FormularioActualizacion.java:230)
> 	at
> org.gvsig.sampleextension.FormularioActualizacion$1.actionPerformed(FormularioActualizacion.java:46)
> 	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
> 	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
> 	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
> 	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
> 	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
> 	at java.awt.Component.processMouseEvent(Unknown Source)
> 	at javax.swing.JComponent.processMouseEvent(Unknown Source)
> 	at java.awt.Component.processEvent(Unknown Source)
> 	at java.awt.Container.processEvent(Unknown Source)
> 	at java.awt.Component.dispatchEventImpl(Unknown Source)
> 	at java.awt.Container.dispatchEventImpl(Unknown Source)
> 	at java.awt.Component.dispatchEvent(Unknown Source)
> 	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
> 	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
> 	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
> 	at java.awt.Container.dispatchEventImpl(Unknown Source)
> 	at java.awt.Window.dispatchEventImpl(Unknown Source)
> 	at java.awt.Component.dispatchEvent(Unknown Source)
> 	at java.awt.EventQueue.dispatchEvent(Unknown Source)
> 	at
> com.iver.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:58)
> 	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
> 	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
> 	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> 	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> 	at java.awt.EventDispatchThread.run(Unknown Source)
>  WARN [AWT-EventQueue-1] (PluginServices.java:136) - Plugin com.iver.core --
> No se encontró la traducción para Consola de información
>  WARN [AWT-EventQueue-1] (PluginServices.java:136) - Plugin com.iver.core --
> No se encontró la traducción para Activa la ventana
> DEBUG [AWT-EventQueue-1] (NewSkin.java:411) - Activando Consola de
> información
> DEBUG [AWT-EventQueue-1] (MDIFrame.java:1057) - Memoria usada 53020 KB
>
>
> No se si es por el tipo de dato (algun fallo del driver), pero no estoy
> seguro. Agradecería cualquier ayuda.
>
> Luego tambien ando sin poder editar FLayer tengo el FLyrVect pero no puedo
> conseguir el VectorialEditableAdapter, en la doc pone que
> flyVect.getSource() devuelbe VectorialAdapter pero no es verdad, ya que
> devuelbe readablevectorial, y con esto no consigo hacer nada. Creo que con
> el vectorialadapter aría algo. No se.
>
> Si me pueden hechar una mano....
>
> Gracias, atentamente eñaut.
>   



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