<div dir="ltr"><div>Hola Joaquin,</div><div>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.</div><div><br></div><div>Me da error directamente al intentar hacer los import correspondientes.  </div><div><br></div><div>Sí que me deja hacer:</div><div>import org.gvsig.app.project.documents.view.ViewManager;</div><div><br></div><div>Pero me da error de que no puede resolver:</div><div>import org.gvsig.app.project.documents.layout.LayoutManager;</div><div>import org.gvsig.app.project.documents.table.TableManager;</div><div><span class="" style="white-space:pre">        </span></div><div>Supongo que me falta alguna referencia en el pom.xml o algo así, pero no consigo verlo</div><div>A ver si me puedes echar una mano...</div><div>Como siempre muchas gracias por tu tiempo.</div><div><br></div><div>Saludos</div></div><div class="gmail_extra"><br><div class="gmail_quote">El 13 de octubre de 2015, 14:22, Joaquin Jose del Cerro Murciano <span dir="ltr">&lt;<a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a>&gt;</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"><span class="">El 13 de octubre de 2015, 12:26, Ana Calle <span dir="ltr">&lt;<a href="mailto:nico200307@gmail.com" target="_blank">nico200307@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>Buenos días, </div><div>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. </div><div>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. </div><div>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:</div><div><br></div><div>--recorriendo los documentos llegábamos a la ventana del plano (vEntana):</div><div><br></div><div>Layout l =(Layout)vEntana;</div><div>IFFrame[] fframes = l.getFFrames();</div><div><span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap">        </span>for (int i = 0; i &lt; fframes.length; i++) {</div><div><span style="white-space:pre-wrap">                </span>if (fframes[i] instanceof FFrameView) {</div><div><span style="white-space:pre-wrap">                        </span>......</div><div><span style="white-space:pre-wrap">                </span>}else if (fframes[i] instanceof FFrameText){</div><div><span style="white-space:pre-wrap">                        </span>......</div><div><span style="white-space:pre-wrap">                </span>}</div><div><span style="white-space:pre-wrap">        </span>}</div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">        </span></div><div>¿como podría obtener ese layout y los IFFrame[] con la nueva version gvSig 2.2? </div><div><br></div></div></blockquote><div><br></div></span><div>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 &quot;getFFrames&quot;.<br><br></div>Dejo pedacito de script (falta la iniciaciacion del acceso al layout desde scripting pero para usarlo de inspiracion en java es suficiente).<br><div><br></div><div><div>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. <br></div><div><br></div>Un saludo<br></div><div>Joaquin<br><br></div><div><br><br>from org.gvsig.app import ApplicationLocator<br>from org.gvsig.app.project.documents.layout import LayoutManager<br><br>def main(*args):<br>  # Recuperamos el proyecto<br>  project = ApplicationLocator.getManager().getCurrentProject()<br>  <br>  # Opcion 1<br>  # Recorremos los layouts que hay en el proyecto<br>  layouts = project.getDocuments(LayoutManager.TYPENAME)<br>  for layout in layouts:<br>    print layout.__class__.__name__, layout.getName()<br>    contextLayout = layout.getLayoutContext()<br>    for elemento in  contextLayout.getAllFFrames():<br>      print elemento.getName()<br><br>  print &quot;----------------------------&quot;<br>  <br>  # Opcion 2<br>  # Recuperamos un layout por nombre<br>  layout = project.getDocument(&quot;Plantilla&quot;, LayoutManager.TYPENAME)<br>  print layout.__class__.__name__, layout.getName()<br>  contextLayout = layout.getLayoutContext()<br>  for elemento in  contextLayout.getAllFFrames():<br>    print elemento.getName()<br>  <br>  print &quot;----------------------------&quot;<br>  <br>  # Como obtener la venta del layout<br>  layoutManager = ApplicationLocator.getProjectManager().getDocumentManager(LayoutManager.TYPENAME)<br><br>  layout = project.getDocument(&quot;Plantilla&quot;, LayoutManager.TYPENAME)<br>  layoutPanel = layoutManager.getMainWindow(layout)<br>  print layoutPanel.__class__.__name__, layoutPanel.getDocument().getName()<br>  <br></div><div>Esto con el proyecto que tengo cargado saca:<br><br>Running script test_layout2.<br>DefaultLayoutDocument Plantilla<br>FFrameGraphics<br>FFrameGraphics<br>FFrameGraphics<br>FFrameGraphics<br>FFrameText<br>FFrameText<br>FFrameText<br>FFrameView<br>FFrameScaleBar<br>FFrameLegend<br>FFrameText<br>FFrameOverView<br>FFrameGraphics<br>FFrameNorth<br>FFramePicture<br>----------------------------<br>DefaultLayoutDocument Plantilla<br>FFrameGraphics<br>FFrameGraphics<br>FFrameGraphics<br>FFrameGraphics<br>FFrameText<br>FFrameText<br>FFrameText<br>FFrameView<br>FFrameScaleBar<br>FFrameLegend<br>FFrameText<br>FFrameOverView<br>FFrameGraphics<br>FFrameNorth<br>FFramePicture<br>----------------------------<br>LayoutPanelImpl Plantilla<br>Script test_layout2 terminated.<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><div dir="ltr"><div></div><div>Muchas gracias de antemano,</div><div>un saludo</div><span><font color="#888888"><div>Ana</div><div><br></div><div><br></div></font></span></div>
<br></span>_______________________________________________<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="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><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><div>--------------------------------------<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="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></div>