[Gvsig_desarrolladores] cargar capas en la apertura de GVSIG

jaume domínguez faus jaume.dominguez en iver.es
Lun Dic 31 09:20:25 CET 2007


Jose Manuel Diaz Bossini wrote:
> Hola a todos de nuevo !
>
> Por fin conseguí cargar la capa WMS en local , como bien decía Jose 
> Manuel Vivo tenía un problema en la instalación de gvsig , ahora todo 
> eso funciona pero quiero ir un paso mas allá , necesito que nada mas 
> cargar el gvsig , mi plugin cargue las capas que yo quiero sin que el 
> usuario toque nada , por tanto necesito deshabilitar la ventana de 
> Gestor de Proyecto y abrirle directamente las capas que le quiera 
> mostrar , como dije en un mail anterior , la idea es hacer una especie 
> de gestion de perfiles y en funcion de los derechos de cada usuario 
> mostrarle unas capas u otras.
>
> ¿Alguien tiene alguna idea de por donde puedo empezar ?
>
> He intentado en el método initialize del plugin hacer :
>
> PluginServices.getMDIManager().closeAllWindows();
>
>
> y después crear una vista que contenga las capas que yo quiero y 
> mostrarlas , pero he encontrado los siguientes problemas :
>
> 1) La ventana del gestor de proyectos no se cierra.
Posiblemente se esté ejecutando el initialize de tu extensión antes del 
initialize de ProjectExtension con lo cual, efectivamente estarás 
cerrando todas las ventanas y después el initialize de ProjectExtension 
esté abriendo la ventana de proyecto. Sobrecarga el método 
postInitialize de tu extensión y desplaza allí la llamada a 
closeAllWindows a ver si así se soluciona tu primer inconveniente.
>
> 2) La llamada WMS y la creación de la capa se hace perfectamente , 
> incluso se puede añadir a la vista , pero no se muestra nada , no hay 
> error ni nada , simplemente y pese al hacer :
>   FLyrWMS capaWMS = new FLyrWMS(args);
>   mapCtrl.getMapContext().getLayers().addLayer(capaWMS);
>
> No se muestra nada , creo que tiene que ver con que el mapControl de 
> la vista que he creado , que no es válido.
Este es el código que se usa para añadir una capa de manera normal
lyr.setVisible(true);
mapControl.getMapContext().beginAtomicEvent();
checkProjection(lyr, mapControl.getViewPort());
try {
      mapControl.getMapContext().getLayers().addLayer(lyr);
} catch (CancelationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
mapControl.getMapContext().endAtomicEvent()

Comprueba que tu código causa que la vista se refresque con algún tipo 
de evento. P.e. haciendo la capa visible, o lanzando un AtomicEvent como 
observas, o incluso a lo "manual" con  mapCtrl.revalidate();

>
>
> Muchas gracias.
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
salut!

-- 
Jaume Dominguez Faus


Àrea de Software Lliure
Equip gvSIG
Iver TI
C. Salamanca, 52
46005 València
Telf: 902 25 25 40 Fax: 96 316 27 16
(Spain)
 


Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.




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