[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