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

Ana Calle nico200307 en gmail.com
Mie Oct 14 08:10:08 CEST 2015


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> escribi贸:

>
>
> El 13 de octubre de 2015, 12:26, Ana Calle <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
>>
>>
>
>
> --
> --------------------------------------
> 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
>
>
------------ pr髕ima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151014/0bb70365/attachment.htm 


M醩 informaci髇 sobre la lista de distribuci髇 gvSIG_desarrolladores