[Gvsig_desarrolladores] Sobre el boton de informacion

Francisco José Peñarrubia fpenarru en gmail.com
Mar Jul 14 17:53:09 CEST 2009


Hola Pedro.

El código es un poco complejo y es posible que cambie en la 2.0.
Puedes mirar las siguientes clases: (Usa CTRL + MAYUS + T para 
encontrarlas rápido. Están en appGvSIG)

InfoListener (el listener que se ejecuta al hacer click. Está asociado a 
una tool)
XMLItem
VectorialXMLItem (el método parse es el que se ejecuta para iterar por 
la selección y crear los atributos de SAX).
AttributesImpl (esta clase es de SAX)
FInfoDialog (el cuadro de diálogo. Cuando se llama a setLayers es cuando 
se visualiza todo)




Más o menos lo que hace es pedirle a cada capa que cree objetos XMLItem, 
los mete en un array y se los pasa al cuadro de diálogo para que lo 
parsee y muestre los resultados. Este es el método de FLayers que pide a 
cada capa su información:

public XMLItem[] getInfo(Point p, double tolerance, Cancellable cancel) 
throws ReadDriverException, VisitorException, LoadLayerException {
int i;
Vector items = new Vector();
FLayer layer;
XMLItem[] aux;
for (i = 0; i < this.layers.size(); i++){
layer = (FLayer)layers.get(i);
if (layer instanceof InfoByPoint){
InfoByPoint queryable_layer = (InfoByPoint) layer;
aux = queryable_layer.getInfo(p, tolerance, null);
if (!(queryable_layer instanceof FLayers)){
for(int j = 0; j < aux.length; j++){
items.add(aux[j]);
}
}
}
}
return (XMLItem[])items.toArray(new XMLItem[0]);

Este es el método getIndo de FLyrVect:
public XMLItem[] getInfo(Point p, double tolerance, Cancellable cancel) 
throws ReadDriverException, VisitorException {
Point2D pReal = this.getMapContext().getViewPort().toMapPoint(p);
FBitSet bs = queryByPoint(pReal, tolerance);
VectorialXMLItem[] item = new VectorialXMLItem[1];
item[0] = new VectorialXMLItem(bs, this);

return item;
}


Si lo que quieres es hacer tu propio cuadro de diálogo personalizado, 
hay formas más sencillas. Puedes mirar el manual de introducción al 
desarrollo con gvSIG

http://www.gvsig.org/web/docdev/manual-para-desarrolladores-gvsig/

, y probar el ejemplo de consulta espacial:

https://gvsig.org/web/docdev/manual-para-desarrolladores-gvsig/librerias-internas/ejemplos-de-uso-de-fmap/consulta-espacial
https://gvsig.org/web/docdev/manual-para-desarrolladores-gvsig/ejemplos/informacion-personalizada-de-una-capa

Para bajar el código, desde aquí:

https://gvsig.org/web/docdev/manual-para-desarrolladores-gvsig/ejemplos/introduccion

O bien, todo en un pdf con los ejemplos:
http://www.scolab.es/dokuwiki/doku.php?id=zona_gvsig

Saludos, y espero que te sirva.

Fran Peñarrubia
www.scolab.es




Pedro escribió:
>
> Hola
>
> Quería preguntar cuando yo utilizo el botón de información y pincho 
> sobre una área, me sale un cuadro de información, querría saber que 
> código se ejecuta cuando pincho para poder modificar ese cuadro y 
> poder realizar otra función.
>
> Muchas gracias
>
> *Pedro Pelayo Valero.*
>
> Departamento Informática**
>
> */i.v./* Ingenieros Consultores, S.A.
>
> Avda. de Primado Reig nº 129 - ent. D
>
> 46020 – Valencia (ESPAÑA)
>
> Telf. + 34 96 339 18 70
>
> Fax. + 34 96 362 91 61
>
> E-mail: pedropelayo en ivicsa.es <mailto:pedropelayo en ivicsa.es>
>
> ************ ADVERTENCIA LEGAL *******************
> Este mensaje y, en su caso, los ficheros anexos son confidenciales, 
> especialmente en lo que respecta a los datos personales, y se dirigen 
> exclusivamente al destinatario referenciado. Si usted no lo es y lo ha 
> recibido por error o tiene conocimiento del mismo por cualquier 
> motivo, le rogamos que nos lo comunique por este medio a iv INGENIEROS 
> CONSULTORES S.A. (+34 96 339 18 70) y proceda a destruirlo o borrarlo, 
> y que en todo caso se abstenga de utilizar, reproducir, alterar, 
> archivar o comunicar a terceros el presente mensaje y ficheros anexos, 
> todo ello bajo pena de incurrir en responsabilidades legales. El 
> emisor no garantiza la integridad, rapidez o seguridad del presente 
> correo, ni se responsabiliza de posibles perjuicios derivados de la 
> captura, incorporaciones de virus o cualesquiera otras manipulaciones 
> efectuadas por terceros.
>
> ******************* DISCLAIMER ********************
> This message and any attached files transmitted with it, is 
> confidential, especially as regards personal data. It is intended 
> solely forthe use of the individual or entity to whom it is addressed. 
> If you are not the intended recipient and have received this 
> information in error or have accessed it for any reason, please notify 
> us of this fact by email reply to iv INGENIEROS CONSULTORES S.A. (+34 
> 96 339 1870) and then destroy or delete the message, refraining from 
> any reproduction, use, alteration, filing or communication to third 
> parties of this message and attached files on penalty of incurring 
> legal responsibilities. The sender does not guarantee the integrity, 
> the accuracy, the swift delivery or the security of this email 
> transmission, and assumes no responsibility for any possible damage 
> incurred through data capture, virus incorporation or any manipulation 
> carried out by third parties.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>   



More information about the gvSIG_desarrolladores mailing list