[Gvsig_desarrolladores] Error creando herramienta de edición

raysel rcastellanos en geosi.geocuba.cu
Mar Sep 6 16:52:06 CEST 2011


Hola desarrolladores

Estoy creando una herramienta que permita la creación de puntos a la vez que
sus coordenadas se van mostrando en pantalla.
Para esto creé una clase que hereda de PointCADTool y he redefinido el
método *addPoint(double x, double y,InputEvent event)* para mostrar en
pantalla las coordenadas de los puntos.
El caso es que cuando trabajo con una capa guardada en un fichero SHAPE, al
terminar la edición todo funciona normal, pero al trabajar con una capa 
cargada desde postgis me lanza una excepción.
A continuación pongo el código que utilizo y más abajo dicha excepción:

*//Clase que hereda de PointCADTools*
public class MyPointCADTool extends PointCADTool{
	
	public MyPointCADTool(MapControl mc)
	{
    		FLayer points = mc.getMapContext().getLayers().getLayer("Puntos");
 		points.setActive(true);
 		try {
			points.setEditing(true);
			StartEditing se = new StartEditing();  //Extension de extCAD
			se.execute("");
					
		} catch (StartEditionLayerException e) {
			e.printStackTrace();
		}
	}

	 public void addPoint(double x, double y,InputEvent event) {
	        PointCADToolState actualState = (PointCADToolState)
_fsm.getPreviousState();
	        String status = actualState.getName();

	        if (status.equals("Point.FirstPoint")) {
	            addGeometry(ShapeFactory.createPoint2D(x, y));
                     
                    //Aqui muestro las coordenadas
	            System.out.println(x+"  "+y);
	        }
	    }
}

*//Código de la extensión que activa la herramienta*
//============================================================================//
....
	if (actionCommand.compareTo("altura") == 0)
    {
		 View vista = AlgUtils.GetView(null);
		 MapControl mapCtrl = vista.getMapControl(); 
		 
		 MyPointCADTool point = new MyPointCADTool(mapCtrl); 
                 CADExtension.addCADTool("h_point", point); // listener para
dibujar puntos
	        
		 CADExtension.initFocus();
	         CADExtension.setCADTool("h_point",true);
	         CADExtension.getEditionManager().setMapControl(mapCtrl);
	         CADExtension.getCADToolAdapter().configureMenu();
    }
....

*//ESTA ES LA EXCEPCIÓN QUE LANZA EL PROGRAMA CUANDO SE TRABAJA CON LA
HERRAMIENTA SOBRE UNA CAPA CARGADA DESDE POSTGRESQL Y SE TERMINA LA EDICIÓN*
//============================================================================//
DEBUG [Thread-10] (NotificationManager.java:104) - 
java.lang.NullPointerException
	at
com.iver.cit.gvsig.fmap.edition.VectorialEditableDBAdapter.getRowIndexByFID(VectorialEditableDBAdapter.java:386)
	at com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:467)
	at com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:636)
	at
com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:360)
	at
com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)
	at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1097)
	at
com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)
	at
com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)
	at java.lang.Thread.run(Unknown Source)


ANTE TODO GRACIAS POR SU TIEMPO

Saludos, Raisel



--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Error-creando-herramienta-de-edicion-tp6764161p6764161.html
Sent from the gvSIG desarrolladores mailing list archive at Nabble.com.


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