[Gvsig_desarrolladores] c髆o recorrer los elementos de un mapa automaticamente

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Dom Oct 25 10:29:41 CET 2015


El 23 de octubre de 2015, 12:29, Javier Gal谩n <javiergalans en gmail.com>
escribi贸:

> Gracias Ana:
>
> Al leer otra vez con mas detalle todo el hilo, me asaltan dudas.
>
>
Con lo que cuentas no tengo ni idea de lo que quieres hacer.

驴 Que version de gvSIG estas usando ?
驴 Que estas queriendo hacer ?
驴 Estas desarrollando un plugin en java o un script de python ?

Por lo que me parece entender 驴deberia cambiar el fichero de dependencias y
> compilar de nuevo?
>
> 驴Hay alguna otra forma de acceder al mapa sin tener que hacer eso?


Si estas desarrollando un plugin en java, y tu proyecto tiene dependencias
nuevas,
pues si tendras que modificar tu fichero pom y a帽adierselas.
Pero si lo que dices es si tienes que recompilar alguna parte de gvSIG para
a帽adirselas, no. No tienes que hacerlo.
Si estas haciendo un script, no tienes que tocar ningun pom. Ana esta
desarrollando en java, y la respuesta iba encaminada a ello.


> 驴Me he hecho un l铆o yo solo?
>
>
Despues de leer varias veces lo que escribes, es posible que lo que estes
haciendo sea un script, aunque no lo tengo claro, asi que me extiendo un
poco mas por esa parte.

El trocito de script que pase, es eso, un trocito, y le falta codigo, por
eso no funciona. Su finalidad era ilustrar como acceder a unas funciones
del layout desde codigo. Si vas a trabajar desde scripting y precisas el
script completo lo puedo adjuntar. Por defecto desde script puedes acceder
a funcionalidades que residen en:

- el propio plugin de scripting
- el plugin principal de gvSIG (org.gvsig.app.mainplugin)
- el plugin de manejo del documento tabla
(org.gvsig.app.document.table.app.mainplugin)

Si quieres acceder a otros plugins desde tu script, por defecto no hay
acceso.
Lo que no quiere decir que no se pueda tener acceso a ellos. De alguna
forma tendremos
que indicar que queremos usarlos antes de poder hacer "import" de sus
modulos/clases.

Se puede hacer tocando parte del plugin de sripting, cosa que no es muy
aconsojable, pero
se puede vamos. Podriamos tocar el fichero "config.xml" que hay en la
instalacion de gvSIG,
en la carpeta del plugin de scripting y a帽adir alli la dependencia con el
plugin que queremos
igual que esta la del documento tabla. Pero si hacemos esto, nuestro script
solo ira en esa instalacion,
si se lo pasamos a otro usuario no funcionara si no toca su instalacion.

La otro forma seria a帽adiendo algo de codigo a tu script antes de intentar
hacer un import
de modulos/clases de otros plugins. Como todo queda dentro de tu script si
lo pasas a
otros usuarios estos siguen pudiendo ejecutarlo.

Te pego aqui el codigo que habria que a帽adir al inicio de un scritp que use
el plugin del
layout.

#--------------><--------------------><--------------------------
# ==========================================================
#
# Declara como que el plugin de scripting puede importar modulos
# de otro plugin de gvSIG.
#
# Por ejemplo, tras ejecutar:
#
#   use_plugin("org.gvsig.app.document.layout2.app.mainplugin")
#
# Ya podriamos importar modulos del plugin de Mapas (documento mapa)
#

def use_plugin(pluginName):
  from org.gvsig.andami import PluginsLocator

  pluginsManager = PluginsLocator.getManager()
  other = pluginsManager.getPlugin(pluginName)
  scripting = pluginsManager.getPlugin("org.gvsig.scripting.app.extension")
  scripting.addDependencyWithPlugin(other)

#
# ==========================================================
#

use_plugin("org.gvsig.app.document.layout2.app.mainplugin")

#--------------><--------------------><--------------------------

Esto deberas incluirlo al inicio de cualquier script que precise acceder al
layout/mapa.
Y la llamada a la funcion "use_plugin" debera hacerse siempre antes que los
imports de modulos/clases del mapa.

Para la proxima version del plugin de scripting la funcion use_plugin ira
de base con
el, y solo tendremos que llamarla y no definirla cada vez.

Haber si era esto lo que preguntas....
y si no, pues describe mas lo que quieres hacer.

Un saludo
Joaquin



> Gracias de nuevo
>
> El 23 de octubre de 2015, 11:49, Ana Calle <nico200307 en gmail.com>
> escribi贸:
>
>> Vale, Luis Marques respondi贸 algo como esto, el dia 14:
>>
>> > El 14 de octubre de 2015, 9:03, Llu脙颅s Marqu脙漏s <lmarques en disid.com>
>> > escribi脙鲁:
>> >
>> >> Hola Ana,
>> >>
>> >> si no me equivoco, efectivamente te faltan las siguientes dependencias
>> en
>> >> el pom:
>> >>
>> >> <dependency>
>> >>     <groupId>org.gvsig</groupId>
>> >>
>> <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
>> >> </dependency>
>> >> <dependency>
>> >>      <groupId>org.gvsig</groupId>
>> >>
>> >> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>> >>  </dependency>
>> >>
>> >> Adem脙隆s de a脙卤adir esta dos dependencias, tendr脙隆s que a脙卤adir el
>> siguiente
>> >> manejo de dependencia en el pom de tu proyecto padre:
>> >>
>> >> <dependencyManagement>
>> >>     <dependencies>
>> >>         <dependency>
>> >>              <groupId>org.gvsig</groupId>
>> >>
>> >> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>> >>               <version>2.0.57</version>
>> >>         </dependency>
>> >>     </dependencies>
>> >> </dependencyManagement>
>> >>
>> >> Solo es necesario a脙卤adir el manejo de *layout2* porque en el *pom* de
>> >> *org.gvsig.desktop* ya tiene indicado el manejo para la dependencia del
>> >> documento tabla.
>> >>
>> >> Por otro lado, como las dependencias que estas a脙卤adiendo son a otros
>> >> plugins de gvSIG, es necesario indicar en el config.xml  que depende de
>> >> estos dos plugins por dos motivos: el primero para que en tiempo de
>> >> ejecuci脙鲁n sepa donde se encuentran las clases y para que gvSIG cargue
>> >> primero los plugins de los que dependes antes de tu plugin. Quedar脙颅a
>> algo
>> >> as脙颅:
>> >>
>> >> <plugin-config>
>> >>     <depends plugin-name="org.gvsig.app.mainplugin" />
>> >>     <depends plugin-name="org.gvsig.app.document.table.app.mainplugin"
>> />
>> >>     <depends
>> plugin-name="org.gvsig.app.document.layout2.app.mainplugin"
>> >> />
>> >>
>>
>>
>> Y luego Joaqu铆n complet贸:
>>
>>
>> Hola Ana,
>> un correccion a lo que comenta Luis, y algunas recomendaciones.
>>
>> Primero la correccion.
>>
>> La versiom del layout no creo que sea esa la que te interese, esa es
>> la version del layout del build 2.3.0-2403, y supongo que tu querras
>> la de la 2.2.0 final o la de la 2.1.0 final.
>>
>> - Para gvSIG 2.2.0-2313 es la 2.0.52 del layout.
>> - Para gvSIG 2.1.0-2269 es la 2.0.42 del layout.
>>
>> Como aun no hay version final de la 2.3.0 no te aconsejo que trabajes
>> con versiones del layout superiores a la 2.0.52.
>>
>> Para saber que version tienes que usar del layout, tienes que determinar
>> contra que version de gvSIG vas a trabajar y mirar en la instalacion de
>> esa version en:
>>
>>
>> gvSIG/extensiones/org.gvsig.app.document.layout2.app.mainplugin/org.gvsig.app.document.layout2.app.mainplugin-*.jar
>>
>> La version de ese jar te da la version del layout para ese gvSIG.
>>
>> Y ahora las recomendaciones.
>>
>> Son dos...
>>
>> - Relacionadas con la inclusion de las dependencias
>>   en el dependencyManagement
>> - Relacionadas con el scope de las dependencias.
>>
>> Es correcto usar la definicion de dependencias en el dependencyManagenet
>> que te ha indicado Lluis, pero la recomendacion es que para a脙卤adir una
>> dependencia al
>> dependencyManagenet le pongas algo como:
>>
>> ...
>>   <properties>
>> ...
>>
>> <org.gvsig.app.document.layout2.app.version>2.0.55</org.gvsig.app.document.layout2.app.version>
>> ...
>>   </properties>
>>
>> ...
>>
>>   <dependency>
>>       <groupId>org.gvsig</groupId>
>>       <artifactId>org.gvsig.app.document.layout2.app</artifactId>
>>       <version>${org.gvsig.app.document.layout2.app.version}</version>
>>       <type>pom</type>
>>       <scope>import</scope>
>>   </dependency>
>> ...
>>
>> Que significa eso:
>> - En lugar de incluir una dependencia con un subproyecto del proyecto
>>   org.gvsig.app.document.layout2.app, le diremos que importe las
>>   dependencias que hay declaradas en el proyecto raiz del layout.
>>   Eso lo hacemos con los tags type y scope.
>>   Esto minimiza los errores al especificar la version cuando tenemos
>>   que declarar mas de una dependencia de un mismo proyecto.
>>   Salvo error, todos los proyectos de gvSIG indican en el
>> dependencyManagement
>>   del proyecto raiz las versiones de los artifactos que generan sus
>>   subproyectos y las de las librerias que pueden ser necesarias para
>>   linkar con ellos.
>>   Es aconsojable que en tus proyectos relacionados con gvSIG sigas esta
>>   practica para facilitar el uso desde otros proyectos.
>>
>> - Desde gvSIG aconsejamos que para indicar una version de un proyecto
>>   de gvSIG declaremos el numero de version en una propiedad en el pom.
>>   Esto facilita actualizar las versiones a la ultima usando
>>     mvn update-properties
>>
>>
>> En cuanto a la declaracion del scope...
>>
>> En el pom del plugin, que es donde deben ir las dependencias con los
>> otros plugins, es recomendable especificar el scope de esa dependencia.
>> Si no se especifica maven asume que es una dependencia de compilacion.
>> Esto parece no tener muchas repercusiones salvo que en algun momento
>> quieras obtener un informe de dependencias de tu proyecto o esteis
>> trabajando mas de un desarrollador en el y de repente necesites saber
>> si el proyecto precisa de una libreria en concreto. Te encontraras que no
>> sabras nunca si es una dependencia de runtime y alguien se olvido
>> de poner el scope, o es de compilacion. Asi que como cuesta
>> muy poquito poner que tipo de depenencia es, aconsejo que cuando se
>> a脙卤ada al pom se tenga la costumbre de indicarlo.
>>
>> Los scopes mas comunes son:
>>     <scope>compile</scope>
>>     <scope>runtime</scope>
>>
>>
>> Asi la declaracion con las dependencias con el plugin de tablas y layout
>> serian:
>>
>> <dependency>
>>     <groupId>org.gvsig</groupId>
>>     <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
>>     <scope>compile</scope>
>> </dependency>
>> <dependency>
>>      <groupId>org.gvsig</groupId>
>>      <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>     <scope>compile</scope>
>>  </dependency>
>>
>> Bueno, pues solo era matizar algunas cosillas.
>>
>> Espero que te sirba.
>>
>>
>>
>>
>> El 23 de octubre de 2015, 11:43, Javier Gal谩n <javiergalans en gmail.com>
>> escribi贸:
>>
>>> Hola Ana:
>>>
>>> Ese es exactamente el hilo que esto mirando. Y gracias al cual me he
>>> animado a probar.
>>> Y al probar el script de Joaqu铆n, me da el mismo error que a ti.
>>> Por lo que al ver que faltaban dependencias quer铆a configurarlo, pero no
>>> he encontrado donde he de escribirlas.
>>> He buscado  tanto "*.pom" como "pom.xml", "pom.*". Salen muchos, pero
>>> ninguno en la carpeta de gvSIG (igual estoy buscando donde no toca.
>>> Perdonadme, pero en esto del scrip soy un poco nuevo y a veces me pierdo
>>> un poco.
>>>
>>> Much铆simas gracias por la ayuda
>>> Javier
>>>
>>> El 23 de octubre de 2015, 11:16, Ana Calle <nico200307 en gmail.com>
>>> escribi贸:
>>>
>>>> Hola Javier,
>>>> consulta el hilo
>>>> c贸mo recorrer los elementos de un mapa automaticamente
>>>> de este mismo mes, seguro que te ayuda
>>>>
>>>> Saludos
>>>>
>>>> El 23 de octubre de 2015, 10:56, Javier Gal谩n <javiergalans en gmail.com>
>>>> escribi贸:
>>>>
>>>>> Hola
>>>>>
>>>>> Quiero intentar algunas automatizaciones con las salidas de los mapas,
>>>>> y estoy buscando el pom para poder modificarlo, pero no se donde lo
>>>>> almacena.
>>>>> 驴Alguien podr铆a decirme donde lo encuentro?
>>>>>
>>>>> Gracias
>>>>> Javier
>>>>>
>>>>>
>>>>> El 15 de octubre de 2015, 7:52, Ana Calle <nico200307 en gmail.com>
>>>>> escribi贸:
>>>>>
>>>>>> Muchas gracias Joaqu铆n, claro que me servir谩, a mi y a mucha m谩s
>>>>>> gente.
>>>>>> Esos peque帽os scripts de c贸digo que casi siempre se aportan como
>>>>>> ejemplos (unido a esas buenas explicaciones a las que nos tienes
>>>>>> acostumbrados), ayudan mucho para continuar el trabajo.
>>>>>>
>>>>>> Saludos
>>>>>> ana
>>>>>>
>>>>>> El 14 de octubre de 2015, 21:20, Joaquin Jose del Cerro Murciano <
>>>>>> jjdelcerro en gvsig.org> escribi贸:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> El 14 de octubre de 2015, 9:03, Llu铆s Marqu茅s <lmarques en disid.com>
>>>>>>> escribi贸:
>>>>>>>
>>>>>>>> Hola Ana,
>>>>>>>>
>>>>>>>> si no me equivoco, efectivamente te faltan las siguientes
>>>>>>>> dependencias en el pom:
>>>>>>>>
>>>>>>>> <dependency>
>>>>>>>>     <groupId>org.gvsig</groupId>
>>>>>>>>
>>>>>>>> <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
>>>>>>>> </dependency>
>>>>>>>> <dependency>
>>>>>>>>      <groupId>org.gvsig</groupId>
>>>>>>>>
>>>>>>>> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>>>>>>>  </dependency>
>>>>>>>>
>>>>>>>> Adem谩s de a帽adir esta dos dependencias, tendr谩s que a帽adir el
>>>>>>>> siguiente manejo de dependencia en el pom de tu proyecto padre:
>>>>>>>>
>>>>>>>> <dependencyManagement>
>>>>>>>>     <dependencies>
>>>>>>>>         <dependency>
>>>>>>>>              <groupId>org.gvsig</groupId>
>>>>>>>>
>>>>>>>> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>>>>>>>               <version>2.0.57</version>
>>>>>>>>         </dependency>
>>>>>>>>     </dependencies>
>>>>>>>> </dependencyManagement>
>>>>>>>>
>>>>>>>> Solo es necesario a帽adir el manejo de *layout2* porque en el *pom*
>>>>>>>> de *org.gvsig.desktop* ya tiene indicado el manejo para la
>>>>>>>> dependencia del documento tabla.
>>>>>>>>
>>>>>>>> Por otro lado, como las dependencias que estas a帽adiendo son a
>>>>>>>> otros plugins de gvSIG, es necesario indicar en el config.xml  que depende
>>>>>>>> de estos dos plugins por dos motivos: el primero para que en tiempo de
>>>>>>>> ejecuci贸n sepa donde se encuentran las clases y para que gvSIG cargue
>>>>>>>> primero los plugins de los que dependes antes de tu plugin. Quedar铆a algo
>>>>>>>> as铆:
>>>>>>>>
>>>>>>>> <plugin-config>
>>>>>>>>     <depends plugin-name="org.gvsig.app.mainplugin" />
>>>>>>>>     <depends
>>>>>>>> plugin-name="org.gvsig.app.document.table.app.mainplugin" />
>>>>>>>>     <depends
>>>>>>>> plugin-name="org.gvsig.app.document.layout2.app.mainplugin" />
>>>>>>>>
>>>>>>>> [...]
>>>>>>>>
>>>>>>>> Si alguien ven algo incorrecto que me corriga. Un saludo, Llu铆s.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> Hola Ana,
>>>>>>> un correccion a lo que comenta Luis, y algunas recomendaciones.
>>>>>>>
>>>>>>> Primero la correccion.
>>>>>>>
>>>>>>> La versiom del layout no creo que sea esa la que te interese, esa es
>>>>>>> la version del layout del build 2.3.0-2403, y supongo que tu querras
>>>>>>> la de la 2.2.0 final o la de la 2.1.0 final.
>>>>>>>
>>>>>>> - Para gvSIG 2.2.0-2313 es la 2.0.52 del layout.
>>>>>>> - Para gvSIG 2.1.0-2269 es la 2.0.42 del layout.
>>>>>>>
>>>>>>> Como aun no hay version final de la 2.3.0 no te aconsejo que trabajes
>>>>>>> con versiones del layout superiores a la 2.0.52.
>>>>>>>
>>>>>>> Para saber que version tienes que usar del layout, tienes que
>>>>>>> determinar
>>>>>>> contra que version de gvSIG vas a trabajar y mirar en la instalacion
>>>>>>> de
>>>>>>> esa version en:
>>>>>>>
>>>>>>>
>>>>>>> gvSIG/extensiones/org.gvsig.app.document.layout2.app.mainplugin/org.gvsig.app.document.layout2.app.mainplugin-*.jar
>>>>>>>
>>>>>>> La version de ese jar te da la version del layout para ese gvSIG.
>>>>>>>
>>>>>>> Y ahora las recomendaciones.
>>>>>>>
>>>>>>> Son dos...
>>>>>>>
>>>>>>> - Relacionadas con la inclusion de las dependencias
>>>>>>>   en el dependencyManagement
>>>>>>> - Relacionadas con el scope de las dependencias.
>>>>>>>
>>>>>>> Es correcto usar la definicion de dependencias en el
>>>>>>> dependencyManagenet que te ha indicado Lluis, pero la recomendacion es que
>>>>>>> para a帽adir una dependencia al
>>>>>>> dependencyManagenet le pongas algo como:
>>>>>>>
>>>>>>> ...
>>>>>>>   <properties>
>>>>>>> ...
>>>>>>>
>>>>>>> <org.gvsig.app.document.layout2.app.version>2.0.55</org.gvsig.app.document.layout2.app.version>
>>>>>>> ...
>>>>>>>   </properties>
>>>>>>>
>>>>>>> ...
>>>>>>>
>>>>>>>   <dependency>
>>>>>>>       <groupId>org.gvsig</groupId>
>>>>>>>       <artifactId>org.gvsig.app.document.layout2.app</artifactId>
>>>>>>>
>>>>>>> <version>${org.gvsig.app.document.layout2.app.version}</version>
>>>>>>>       <type>pom</type>
>>>>>>>       <scope>import</scope>
>>>>>>>   </dependency>
>>>>>>> ...
>>>>>>>
>>>>>>> Que significa eso:
>>>>>>> - En lugar de incluir una dependencia con un subproyecto del proyecto
>>>>>>>   org.gvsig.app.document.layout2.app, le diremos que importe las
>>>>>>>   dependencias que hay declaradas en el proyecto raiz del layout.
>>>>>>>   Eso lo hacemos con los tags type y scope.
>>>>>>>   Esto minimiza los errores al especificar la version cuando tenemos
>>>>>>>   que declarar mas de una dependencia de un mismo proyecto.
>>>>>>>   Salvo error, todos los proyectos de gvSIG indican en el
>>>>>>> dependencyManagement
>>>>>>>   del proyecto raiz las versiones de los artifactos que generan sus
>>>>>>>   subproyectos y las de las librerias que pueden ser necesarias para
>>>>>>>   linkar con ellos.
>>>>>>>   Es aconsojable que en tus proyectos relacionados con gvSIG sigas
>>>>>>> esta
>>>>>>>   practica para facilitar el uso desde otros proyectos.
>>>>>>>
>>>>>>> - Desde gvSIG aconsejamos que para indicar una version de un proyecto
>>>>>>>   de gvSIG declaremos el numero de version en una propiedad en el
>>>>>>> pom.
>>>>>>>   Esto facilita actualizar las versiones a la ultima usando
>>>>>>>     mvn update-properties
>>>>>>>
>>>>>>>
>>>>>>> En cuanto a la declaracion del scope...
>>>>>>>
>>>>>>> En el pom del plugin, que es donde deben ir las dependencias con los
>>>>>>> otros plugins, es recomendable especificar el scope de esa
>>>>>>> dependencia.
>>>>>>> Si no se especifica maven asume que es una dependencia de
>>>>>>> compilacion.
>>>>>>> Esto parece no tener muchas repercusiones salvo que en algun momento
>>>>>>> quieras obtener un informe de dependencias de tu proyecto o esteis
>>>>>>> trabajando mas de un desarrollador en el y de repente necesites saber
>>>>>>> si el proyecto precisa de una libreria en concreto. Te encontraras
>>>>>>> que no
>>>>>>> sabras nunca si es una dependencia de runtime y alguien se olvido
>>>>>>> de poner el scope, o es de compilacion. Asi que como cuesta
>>>>>>> muy poquito poner que tipo de depenencia es, aconsejo que cuando se
>>>>>>> a帽ada al pom se tenga la costumbre de indicarlo.
>>>>>>>
>>>>>>> Los scopes mas comunes son:
>>>>>>>     <scope>compile</scope>
>>>>>>>     <scope>runtime</scope>
>>>>>>>
>>>>>>>
>>>>>>> Asi la declaracion con las dependencias con el plugin de tablas y
>>>>>>> layout
>>>>>>> serian:
>>>>>>>
>>>>>>> <dependency>
>>>>>>>     <groupId>org.gvsig</groupId>
>>>>>>>
>>>>>>> <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
>>>>>>>     <scope>compile</scope>
>>>>>>> </dependency>
>>>>>>> <dependency>
>>>>>>>      <groupId>org.gvsig</groupId>
>>>>>>>
>>>>>>> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>>>>>>     <scope>compile</scope>
>>>>>>>  </dependency>
>>>>>>>
>>>>>>> Bueno, pues solo era matizar algunas cosillas.
>>>>>>>
>>>>>>> Espero que te sirba.
>>>>>>>
>>>>>>> Un saludo
>>>>>>> Joaquin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> El 14/10/15 a las 08:10, Ana Calle escribi贸:
>>>>>>>>
>>>>>>>> Hola Joaquin,
>>>>>>>> he estado intentando hacer funcionar el c贸digo que me pasaste, a mi
>>>>>>>> extensi贸n en java, pero (perdona mi ignorancia) no he sido capaz.
>>>>>>>>
>>>>>>>> Me da error directamente al intentar hacer los import
>>>>>>>> correspondientes.
>>>>>>>>
>>>>>>>> S铆 que me deja hacer:
>>>>>>>> import org.gvsig.app.project.documents.view.ViewManager;
>>>>>>>>
>>>>>>>> Pero me da error de que no puede resolver:
>>>>>>>> import org.gvsig.app.project.documents.layout.LayoutManager;
>>>>>>>> import org.gvsig.app.project.documents.table.TableManager;
>>>>>>>> Supongo que me falta alguna referencia en el pom.xml o algo as铆,
>>>>>>>> pero no consigo verlo
>>>>>>>> A ver si me puedes echar una mano...
>>>>>>>> Como siempre muchas gracias por tu tiempo.
>>>>>>>>
>>>>>>>> Saludos
>>>>>>>>
>>>>>>>> El 13 de octubre de 2015, 14:22, Joaquin Jose del Cerro Murciano <
>>>>>>>> <jjdelcerro en gvsig.org>jjdelcerro en gvsig.org> escribi贸:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> El 13 de octubre de 2015, 12:26, Ana Calle <
>>>>>>>>> <nico200307 en gmail.com>nico200307 en gmail.com> escribi贸:
>>>>>>>>>
>>>>>>>>>> Buenos d铆as,
>>>>>>>>>> en el proceso de migraci贸n del c贸digo de una extensi贸n realizada
>>>>>>>>>> en gvSig 1.10, tenemos implementados una serie de planos con sus
>>>>>>>>>> respectivos cajetines.
>>>>>>>>>> De manera autom谩tica, el plano se rellenaba seg煤n las
>>>>>>>>>> caracter铆sticas de consulta correspondientes, es decir, en el cajet铆n se
>>>>>>>>>> van sustituyendo los textos gen茅ricos por los espec铆ficos de la consulta.
>>>>>>>>>> Ten铆amos implementado el c贸digo en el que obten铆a el layout de la
>>>>>>>>>> ventana del plano, y ah铆 se recorr铆an los elementos:
>>>>>>>>>>
>>>>>>>>>> --recorriendo los documentos lleg谩bamos a la ventana del plano
>>>>>>>>>> (vEntana):
>>>>>>>>>>
>>>>>>>>>> Layout l =(Layout)vEntana;
>>>>>>>>>> IFFrame[] fframes = l.getFFrames();
>>>>>>>>>> for (int i = 0; i < fframes.length; i++) {
>>>>>>>>>> if (fframes[i] instanceof FFrameView) {
>>>>>>>>>> ......
>>>>>>>>>> }else if (fframes[i] instanceof FFrameText){
>>>>>>>>>> ......
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>> 驴como podr铆a obtener ese layout y los IFFrame[] con la nueva
>>>>>>>>>> version gvSig 2.2?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> Puedes o recorrer todos los documentos, puedes o no filtrar por
>>>>>>>>> tipo, o recuperar un documento layout en concreto por nombre. Una vez
>>>>>>>>> tengas el documento layout, accedes LayoutContext y a el ya le puedes
>>>>>>>>> peridr "getFFrames".
>>>>>>>>>
>>>>>>>>> Dejo pedacito de script (falta la iniciaciacion del acceso al
>>>>>>>>> layout desde scripting pero para usarlo de inspiracion en java es
>>>>>>>>> suficiente).
>>>>>>>>>
>>>>>>>>> Ojo, que el LayoutDocument, lo que devuelbe el getDocuments, no es
>>>>>>>>> la ventana del plano, si no el documento. No recuerdo cuando se separo, por
>>>>>>>>> un lado el interface grafico y por otro la logica del documento.
>>>>>>>>>
>>>>>>>>> Un saludo
>>>>>>>>> Joaquin
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> from org.gvsig.app import ApplicationLocator
>>>>>>>>> from org.gvsig.app.project.documents.layout import LayoutManager
>>>>>>>>>
>>>>>>>>> def main(*args):
>>>>>>>>>   # Recuperamos el proyecto
>>>>>>>>>   project = ApplicationLocator.getManager().getCurrentProject()
>>>>>>>>>
>>>>>>>>>   # Opcion 1
>>>>>>>>>   # Recorremos los layouts que hay en el proyecto
>>>>>>>>>   layouts = project.getDocuments(LayoutManager.TYPENAME)
>>>>>>>>>   for layout in layouts:
>>>>>>>>>     print layout.__class__.__name__, layout.getName()
>>>>>>>>>     contextLayout = layout.getLayoutContext()
>>>>>>>>>     for elemento in  contextLayout.getAllFFrames():
>>>>>>>>>       print elemento.getName()
>>>>>>>>>
>>>>>>>>>   print "----------------------------"
>>>>>>>>>
>>>>>>>>>   # Opcion 2
>>>>>>>>>   # Recuperamos un layout por nombre
>>>>>>>>>   layout = project.getDocument("Plantilla", LayoutManager.TYPENAME)
>>>>>>>>>   print layout.__class__.__name__, layout.getName()
>>>>>>>>>   contextLayout = layout.getLayoutContext()
>>>>>>>>>   for elemento in  contextLayout.getAllFFrames():
>>>>>>>>>     print elemento.getName()
>>>>>>>>>
>>>>>>>>>   print "----------------------------"
>>>>>>>>>
>>>>>>>>>   # Como obtener la venta del layout
>>>>>>>>>   layoutManager =
>>>>>>>>> ApplicationLocator.getProjectManager().getDocumentManager(LayoutManager.TYPENAME)
>>>>>>>>>
>>>>>>>>>   layout = project.getDocument("Plantilla", LayoutManager.TYPENAME)
>>>>>>>>>   layoutPanel = layoutManager.getMainWindow(layout)
>>>>>>>>>   print layoutPanel.__class__.__name__,
>>>>>>>>> layoutPanel.getDocument().getName()
>>>>>>>>>
>>>>>>>>> Esto con el proyecto que tengo cargado saca:
>>>>>>>>>
>>>>>>>>> Running script test_layout2.
>>>>>>>>> DefaultLayoutDocument Plantilla
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameText
>>>>>>>>> FFrameText
>>>>>>>>> FFrameText
>>>>>>>>> FFrameView
>>>>>>>>> FFrameScaleBar
>>>>>>>>> FFrameLegend
>>>>>>>>> FFrameText
>>>>>>>>> FFrameOverView
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameNorth
>>>>>>>>> FFramePicture
>>>>>>>>> ----------------------------
>>>>>>>>> DefaultLayoutDocument Plantilla
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameText
>>>>>>>>> FFrameText
>>>>>>>>> FFrameText
>>>>>>>>> FFrameView
>>>>>>>>> FFrameScaleBar
>>>>>>>>> FFrameLegend
>>>>>>>>> FFrameText
>>>>>>>>> FFrameOverView
>>>>>>>>> FFrameGraphics
>>>>>>>>> FFrameNorth
>>>>>>>>> FFramePicture
>>>>>>>>> ----------------------------
>>>>>>>>> LayoutPanelImpl Plantilla
>>>>>>>>> Script test_layout2 terminated.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Muchas gracias de antemano,
>>>>>>>>>> un saludo
>>>>>>>>>> Ana
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> 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:
>>>>>>>>>> <http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores>
>>>>>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> --------------------------------------
>>>>>>>>> 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
>>>>>>>>> www.gvsig.org
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> 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:
>>>>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> gvSIG_desarrolladores mailing listgvSIG_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: http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Llu铆s Marqu茅s Castell贸 / Ingeniero software
>>>>>>>>
>>>>>>>> [image: DISID] <lmarques en disid.com> [image: DISID]
>>>>>>>> <http://twitter.com/llumarca>
>>>>>>>> [image: DISID] <http://www.disid.com>
>>>>>>>>
>>>>>>>> DISID Corporation S.L. Tfno: 34 963 516 309 / Fax: 96 119 81 10
>>>>>>>> C/ San Vicente 84, 5 A 46002 Valencia - Espa帽a
>>>>>>>> http://www.disid.com
>>>>>>>>
>>>>>>>> [image: Facebook] <http://www.facebook.com/DISIDCorp> [image:
>>>>>>>> Twitter] <http://twitter.com/disid_corp> [image: Linkedin]
>>>>>>>> <http://www.linkedin.com/company/disid> [image: Github]
>>>>>>>> <http://github.com/disid/>
>>>>>>>> *Proveedor de soluciones software*
>>>>>>>>
>>>>>>>> Confidencialidad: Esta comunicaci贸n contiene informaci贸n que puede
>>>>>>>> ser confidencial y privilegiada. Es para uso exclusivo del destinatario
>>>>>>>> indicado. Si no es Vd. el destinatario, por favor tome nota de que
>>>>>>>> cualquier distribuci贸n, copia o uso de esta comunicaci贸n o informaci贸n est谩
>>>>>>>> estrictamente prohibido. Si ha recibido este mensaje por error, por favor
>>>>>>>> av铆senos por e-mail a info en disid.com y despu茅s destruya el mensaje
>>>>>>>> y cualquier copia de 茅l. Las opiniones expresadas en el mensaje pueden ser
>>>>>>>> personales y no necesariamente opiniones de DISID Corporation, S.L.
>>>>>>>>
>>>>>>>> Virus y Seguridad: Aunque hemos tomado las medidas para
>>>>>>>> asegurarnos que este correo electr贸nico y sus ficheros adjuntos est谩n
>>>>>>>> libres de virus, le recomendamos que a efectos de mantener buenas pr谩cticas
>>>>>>>> de seguridad, el receptor debe asegurarse que este correo y sus ficheros
>>>>>>>> adjuntos est谩n libres de virus.
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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:
>>>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> --------------------------------------
>>>>>>> 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
>>>>>>> www.gvsig.org
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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:
>>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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:
>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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:
>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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:
>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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:
>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>
>>>
>>
>> _______________________________________________
>> 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:
>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>
>>
>
> _______________________________________________
> 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:
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
--------------------------------------
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
www.gvsig.org
------------ pr髕ima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment.htm 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : ecbggaai.png
Tipo       : image/png
Tama帽o     : 871 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : hahcfbda.png
Tipo       : image/png
Tama帽o     : 737 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment-0001.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : jdadeejc.png
Tipo       : image/png
Tama帽o     : 243 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment-0002.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : bdeciebd.png
Tipo       : image/png
Tama帽o     : 603 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment-0003.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : jbbagihd.png
Tipo       : image/png
Tama帽o     : 3310 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment-0004.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : ajhjhdag.png
Tipo       : image/png
Tama帽o     : 909 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment-0005.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : befdbihe.png
Tipo       : image/png
Tama帽o     : 177 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151025/84f10e98/attachment-0006.png 


M醩 informaci髇 sobre la lista de distribuci髇 gvSIG_desarrolladores