[Gvsig_desarrolladores] Duda sobre método nuevo al reemplazar el Deprecated

Iago Alonso Alonso ialonso en enxenio.es
Lun Ene 9 09:57:56 CET 2017


Hola, sí que era eso, ya funciona. 

¡Muchísimas gracias! 

El 05-01-2017 08:42 PM, Joaquin Jose del Cerro Murciano escribió:

> El 5 de enero de 2017, 17:27, Iago Alonso Alonso <ialonso en enxenio.es> escribió:
> 
>> Hola, revisando código he visto en una clase un método donde se usa una función marcada como Deprecated. En concreto es: 
>> 
>> PUBLIC DYNOBJECTSET GETINFO(JAVA.AWT.POINT P, DOUBLE TOLERANCE, CANCELLABLE CANCEL) THROWS LOADLAYEREXCEPTION, DATAEXCEPTION; 
>> 
>> De la interfaz InfoByPoint. En el javadoc pone que se uitilice ésta en su lugar: 
>> 
>> PUBLIC DYNOBJECTSET GETINFO(POINT P, DOUBLE TOLERANCE) THROWS LOADLAYEREXCEPTION, DATAEXCEPTION; 
>> 
>> En este caso se usa org.gvsig.fmap.geom.primitive.Point 
>> 
>> El problema surge cuando en el método que utiliza la función _getInfo_ Deprecated la cambio por la nueva. La funcionalidad del plugin ya no funciona, no se abre la ventana con la información del elemento pulsado. 
>> 
>> El código original se usa primero: 
>> 
>> (java.awt.Point) POINT IMAGEPOINT = NEW POINT((INT) EVENT.GETPOINT().GETX(), (INT) EVENT.GETPOINT().GETY()); 
>> 
>> y después más adelante: 
>> 
>> DYNOBJECTSET BIT = ((VECTORLAYER) LACAPA).GETINFO(IMAGEPOINT,
>> MAPCTRL.GETMAPCONTEXT().GETVIEWPORT().TOMAPDISTANCE(3), NEW CANCELLABLE() {
>> PUBLIC BOOLEAN ISCANCELED() {
>> RETURN FALSE;
>> } 
>> 
>> PUBLIC VOID SETCANCELED(BOOLEAN CANCELED) {
>> }
>> }); 
>> 
>> Donde CANCELLABLE es _org.gvsig.tools.task.Cancellable_ (Deprecated también). Si ahora intento cambiarlo por el método nuevo recomendado: 
>> 
>> GEOMETRYMANAGER GEOMETRYMANAGER = GEOMETRYLOCATOR.GETGEOMETRYMANAGER();
>> (org.gvsig.fmap.geom.primitive.Point) POINT IMAGEPOINT = GEOMETRYMANAGER.CREATEPOINT((INT) EVENT.GETPOINT().GETX(), (INT) EVENT.GETPOINT().GETY(), SUBTYPES.GEOM2D); 
>> 
>> y después más adelante: 
>> 
>> DOUBLE TOLERANCE = MAPCTRL.GETMAPCONTEXT().GETVIEWPORT().TOMAPDISTANCE(3);
>> DYNOBJECTSET BIT = ((VECTORLAYER)LACAPA).GETINFO(IMAGEPOINT, TOLERANCE); 
>> 
>> Para DYNOBJECTSET utilizo ORG.GVSIG.TOOLS.DYNOBJECT.DYNOBJECTSET. 
>> 
>> Si ahora ejecuto gvSIG con las extensiones, cuando pincho en un elemento de la capa para obtener su información ya no se abre una ventana con los datos del elemento pero con el código antiguo marcado como Deprecated sí. 
>> 
>> ¿Por qué al realizar el cambio no funciona, tiene que ver algo con usar org.gvsig.fmap.geom.primitive.Point en lugar de java.awt.Point? ¿Estoy creando, gerenando, usando o importando algo que no es correcto?
> 
> Hola, 
> a ver de forma muy rapida...
> no puedes convertir alegremente un java.awt.Point a una geometria 
> de tipo Point. Depende de donde hayas sacado ese java.awt.Point puede
> irte o no. Si el punto de java lo has obtenido de una interaccion 
> con el interface de usuario probablemente estara en coordenadas
> de pantalla. Es decir hablara de una X e Y que definen el pixel 
> de la pantalla sobre el que has pinchado, mientras que la geometria
> de tipo Point habla de un punto con su X e Y en el mundo real, estaran
> por ejemplo en metros o lat/long segun el sistema de referencia usado
> en la vista.
> 
> Tirando de imaginacion...
> Si lo que tienes desarrollado es un tool de gvSIG con su listener y
> su behavior, probablemente ese event que tienes por ahi, sea un 
> PointEvent de gvSIG, y ademas del metodo getPoint, que estas usando,
> tendra un getMapPoint que en lugar de devolver un punto de java
> devuelbe ya una geometria contruida a partir del punto en pixels
> de la pantalla en el que se hizo click pero ya con las transformaciones
> adecuadas para representar un punto en el mundo real.
> 
> Si no es un PointEvent de gvSIG lo que tienes, pero lo que si tienes
> son unas coordenadas en pixels sobre la vista y quieres saber el punto
> en unidades geograficas a las que se refiere puedes usar algo como:
> 
> mapControl.getViewPort().convertToMapPoint(javaPointInPixels)
> 
> A ver si te sirve.
> 
> Un saludo
> Joaquin
> 
>> Un saludo y gracias. 
>> 
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores [1]
> 
> -- 
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelcerro en gvsig.com
> jjdelcerro en gvsig.org
> gvSIG Association
> www.gvsig.com [2]
> www.gvsig.org [3] 
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
 

Links:
------
[1]
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
[2] http://www.gvsig.com
[3] http://www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170109/dc2dad54/attachment.html>


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