<div dir="ltr">Creo que no hice la pregunta correcta. Después de revisar la documentación me un par de dudas. Lo que quiero es cargar por código varias capas de una bd postgres.<div><br></div><div>Para ello hago algo de este estilo:</div><div><br></div><div><div>public DataStoreParameters getParams() throws DataException {</div><div> DataManager dataManager = DALLocator.getDataManager();</div><div><span style="white-space:pre"> </span>DataStoreParameters pgParameters = null;</div><div><span style="white-space:pre"> params</span> = dataManager.createStoreParameters(PostgreSQLStoreProvider.NAME);</div><div> params.setDynValue("host", SERVER);</div><div> params.setDynValue("port", PORT);</div><div><span style="white-space:pre"> </span>params.setDynValue("dbuser", USERNAME);</div><div><span style="white-space:pre"> </span>params.setDynValue("password", PASSWORD);</div><div><span class="" style="white-space:pre"> params.setDynValue("dbname", DBNAME);</span></div><div>}</div></div><div><br></div><div><div>public FLyrVect createLayer(String schema, String table) throws DataException, LoadLayerException {</div><div><span style="white-space:pre"> </span>MapContextManager mapContextManager = MapContextLocator.getMapContextManager();</div><div><span style="white-space:pre"> </span>DataStoreParameters params = (DataStoreParameters) getParams().getCopy();</div><div><span style="white-space:pre"> </span>FLayer layer = mapContextManager.createLayer(table, params);</div><div><span style="white-space:pre"> </span>return (FLyrVect) layer;</div><div>}</div></div><div><br></div><div>El MapContextManager.createLayer por debajo hace una llamada a:</div><div><br></div><div>DataStore dataStore=dataManager.createStore(storeParameters);<br></div><div><br></div><div>Entiendo que<b> si llamo dos veces al createStore / openStore del DataManage con los mismos datos básicos de la conexión a la bd (server, puerto, ...) no se crea una conexión nueva </b>si no que se reaprovecha la existente.</div><div><br></div><div>Y la segunda cuestión es que <b>entiendo que la conexión ( JDBCServerExplorerParameters ) no se añade al pool automáticamente al hacer un createStore si no que hay que añadir a mano</b> con algo tipo:<br></div><div><br></div><div><div>DataManager dataManager = DALLocator.getDataManager();</div><div>DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();</div><div>pool.add(name, explorer);</div></div><div><br><div>Y lo último al utilizar DynObjects donde las claves están definidas en DBParameters da la impresión de que <b>puedo usar un JDBCServerExplorerParameters directamente como substituto de un JDBCStoreParameters</b> la hacer el dataManager.createStore(storeParameters);. Pero no lo he probado para ver si funciona y no se si es una buena práctica.</div><div><br></div><div><br></div><div>Gracias y disculpas por la chapa.</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">El 18 de junio de 2016, 13:06, Joaquin Jose del Cerro Murciano <span dir="ltr"><<a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">El 17 de junio de 2016, 17:09, Francisco Puga <span dir="ltr"><<a href="mailto:fpuga@icarto.es" target="_blank">fpuga@icarto.es</a>></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">Hola,<br>
<br>
En la v1 las clases SingleDBConnectionManager o<br>
SingleVectorialDBConnectionManager permitían crear o registrar una<br>
conexión a una base de datos.<br>
<br>
¿Hay algún equivalente en la v2?<br>
<br>
Algún ejemplo de como crear y registrar una conexión a una bd postgres<br>
para luego cargar una capa por código sería genial :)<br></blockquote></div></div><div><br>Hola Francisco.<br><br>Me temo que no existe el equivalente en gvSIG 2.<br><br>Lo mas parecido podria ser el DataServerExplorerPool (que se puede obtener a traves del DataManager); pero no es exactamente lo que quieres, ya que es un pool de DataServerExplorer mientras lo que entiendo que quieres es un pool de DataStore.<br><br>Para la 2.3, tengo casi casi un pequeño script que le permitira al usuario mantener un "catalogo" de parametros de DataStore (el usuario simplemente lo ve como un catalogo de capas) que le permite añadir rapidamente una capa a la vista. Es posible que lo que precises sea eso, pero solo funcionara sobre la 2.3. Tiene un pequeño API a traves del ActionInfo que te permitira:<br>- añadir una capa del catalogo a la vista activa<br>- recuperar una capa del catalogo sin añadirla a la vista<br>- recuperar un DataStore del catalogo<br>- recuperar un DataStoreParameters del catalogo<br>- añadir una capa al catalogo<br>- añadir un DataStore al catalogo<br>- añadir un DataStoreParameters al catalogo<br><br>Pero me temo que no se podra empezar a probar hasta gvSIG 2.3 RC2.<br><br>Un saludo<br>Joaquin<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">
_______________________________________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" target="_blank">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="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><span class="HOEnZb"><font color="#888888"><br>
</font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><div data-smartmail="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>
</font></span></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="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Francisco Puga</div><div>iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.</div><div><a href="http://www.icarto.es/" target="_blank">http://www.icarto.es/</a></div><div><br></div><div>c/ Rafael Alberti nº 13 – 1º D</div><div>15008 A Coruña</div><div>Galicia (Spain)</div><div>+34 881927808</div><div><br></div><div>Este correo electrónico contiene información estrictamente confidencial y es de uso exclusivo del destinatario, quedando prohibida a cualquier otra persona su revelación, copia, distribución, o el ejercicio de cualquier acción relativa a su contenido. Si ha recibido este mensaje por error, por favor conteste a su remitente mediante correo electrónico y proceda a borrarlo de su sistema.</div><div><br></div><div>Sus datos personales serán tratados de forma confidencial y no serán cedidos a terceros ajenos a ICARTO. En cualquier caso, podrá ejercer los derecho de oposición, acceso, rectificación y cancelación de acuerdo con lo establecido en la Ley Orgánica 15/99, de 13 de diciembre, de Protección de Datos de Carácter Personal dirigiéndose a Innovación, Cooperación, Cartografía e Territorio, SL. (ICARTO) en la dirección postal a C/ Rafael Alberti, nº 13, 1ºD, 15.008 – (A Coruña).</div></div></div>
</div>