<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 9 de noviembre de 2015, 9:20, Tomás Cabezudo <span dir="ltr">&lt;<a href="mailto:tcabezudo@gmail.com" target="_blank">tcabezudo@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-size:12.8px">buenos días, </div><div style="font-size:12.8px">necesito poder cambiar de manera automática la fuente de datos de las capas de un proyecto. Hacer una especie de &#39;setDataSource&#39; de las capas, para que apunten a shapefiles ubicados en otras carpetas.</div><div style="font-size:12.8px">No se si alguien ha necesitado esto y me puede echar una mano.</div><div style="font-size:12.8px"><br></div></div></blockquote><div><br><br>Hola Tomás,<br>Uff, hace tiempo que consideramos que podia ser peligroso hacerlo ya que si, por ejemplo,  la fuente de datos pasa de ser un shape de puntos a uno de lineas la capa podia quedar inconsistente. Un FLyrVect tiene un metodo setDataStore que te permitiria hacerlo ahora mismo, pero esta deprecated, y no seria de estrañar que en alguna version futura desapareciese. De todos modos, echando un vistazo al metodo, no creo que te sirva, ya que se carga la leyenda y el etiquetado al asignarle una nueva fuente de datos.<br><br>Dos cosas...<br>Uno, podias contar algo mas de tu problema a ver si realmente precisas hacer eso o hay alguna otra forma de hacerlo en gvSIG, o se puede preparar alguna otra forma de hacer algo que ti sirva.<br><br>Dos, forzando un poco las cosas y sin saber si funcionaria y teniendo en cuenta que podria dejar de ir mas adelante, podrias aprovechar alguna rendijita del API actual para hacerlo. A ver te cuento...<br><br> FLyrVect layer ...;<br><br> FilesystemStoreParameters params = (FilesystemStoreParameters) layer.getFeatureStore().getParameters()<br> params.setFile(...)<br> layer.reload()<br><br>No se si realmente algo asi puede llegar a funcionar pero puedes probarlo.<br>Tendrias que comprobar que los parametros son de tipo FilesystemStoreParameters antes de asignarlos a una variable de ese tipo.<br>Aunque vaya si es algo que tu aplicacion va a usar de forma &quot;cotidiana&quot; te aconsejo que busques otra solucion que no sea cambiar la fuente de datos al vuelo, seguramente la halla, danos mas pistas y igual te podemos echar una mano. Si solo es una cosa temporal para no tenere que recrear un montos de proyectos en los que han cambiado las rutas, aun podrias hacerlo, aunque seguramente, como te digo hayan otras soluciones.<br><br>...<br>Pensando un poco en esto... <br>si lo que pasa es que algunos ficheros han cambiado de ruta, igual podria servirte el metodo &quot;setOpenErrorHandler&quot; del DataManager. Aqui puedes establecer un &quot;hook&quot; que sera invocado en la apertura de una fuente de datos cuando esta no se pueda abrir. Si es una fuente de datos de fichero y este por ejemplo no existe, en lugar de fallar sin mas, se invocaria al metodo canRetryOpen del OpenErrorHandler. Tendrias de tener cuidado al usarlo, y de momento (me acabo de dar cuenta que no hay un getOpenErrorHandler, tomo nota para añadirlo ya mismo), instanciar un BaseOpenErrorHandler y delegar en el cuando no sea tu caso.<br><br>Ya cuentas algo mas y segun por donde vayan los tiros vemos como podemos echarte una mano.<br><br>Un saludo<br>Joaquin<br><br><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-size:12.8px"></div><div style="font-size:12.8px">Gracias de antemano y saludos</div></div>
<br>_______________________________________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@listserv.gva.es</a><br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br><a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br><a href="http://www.gvsig.org" target="_blank">www.gvsig.org</a></div>
</div></div>