gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / scripts / examples / layout / personalizar_mapa3.py @ 478
History | View | Annotate | Download (3.51 KB)
1 |
|
---|---|
2 |
use_plugin("org.gvsig.app.document.layout2.app.mainplugin")
|
3 |
|
4 |
from gvsig import * |
5 |
from org.gvsig.app.project.documents.layout import DefaultLayoutManager |
6 |
from commonsdialog import * |
7 |
|
8 |
from libs.formpanel import ProgressBarWithTaskStatus, FormPanel |
9 |
|
10 |
class CustomizeLayout(FormPanel): |
11 |
def __init__(self): |
12 |
FormPanel.__init__(self,script.getResource("personalizar_mapa3.xml")) |
13 |
# Llenamos el desplegable de mapas con los mapas que hay en el proyecto.
|
14 |
proyecto = currentProject()() |
15 |
docs = proyecto.getDocuments() |
16 |
for doc in docs : |
17 |
if doc.__class__.__name__ == "DefaultLayoutDocument": |
18 |
cboMapas.addItem(doc) |
19 |
pass
|
20 |
|
21 |
def actualizar_mapa(self, mapa, tagVista, tagTitulo, tagLogo, encuadre, titulo, logo): |
22 |
context = mapa.getLayoutContext() |
23 |
|
24 |
# Nos recorremos todos los elementos del mapa buscando los que hemos etiquetado
|
25 |
for elemento in context.getAllFFrames(): |
26 |
if elemento.getTag() == tagVista:
|
27 |
# Ajustamos el encuadre de la vista al del elemento seleccionado
|
28 |
mapContext = elemento.getMapContext() |
29 |
mapContext.getViewPort().setEnvelope(encuadre) |
30 |
mapContext.invalidate() |
31 |
|
32 |
elif elemento.getTag() == tagTitulo:
|
33 |
# Cambiamos el rotulo del texto que habiamos etiquetado en el mapa
|
34 |
elemento.clearText() |
35 |
elemento.addText(titulo) |
36 |
|
37 |
elif elemento.getTag() == tagLogo:
|
38 |
# Cambiamos la imagen del logotipo
|
39 |
elemento.setImage(logo) |
40 |
|
41 |
context.fullRefresh() |
42 |
|
43 |
def btnCerrar_click(*args): |
44 |
self.hide()
|
45 |
|
46 |
def cboMapas_click(*args): |
47 |
mapa = self.cboMapas.getSelectedItem()
|
48 |
|
49 |
cboTagVista = self.cboTagVista
|
50 |
cboTagTitulo = self.cboTagTitulo
|
51 |
cboTagLogotipo= self.cboTagLogotipo
|
52 |
|
53 |
for elemento in mapa.getLayoutContext().getAllFFrames(): |
54 |
#print elemento.__class__.__name__
|
55 |
if not elemento.getTag() in (None, ""): |
56 |
if elemento.__class__.__name__ == "FFrameText": |
57 |
self.cboTagTitulo.addItem(elemento.getTag())
|
58 |
|
59 |
elif elemento.__class__.__name__ == "FFrameView": |
60 |
self.cboTagVista.addItem(elemento.getTag())
|
61 |
|
62 |
elif elemento.__class__.__name__ == "FFramePicture": |
63 |
self.cboTagLogotipo.addItem(elemento.getTag())
|
64 |
|
65 |
|
66 |
def btnActualizarMapa_click(*args): |
67 |
# Obtenemos la capa activa de la vista activa
|
68 |
capa = currentLayer() |
69 |
if capa == None: |
70 |
msgbox("Debera tener seleccionada una capa.")
|
71 |
return
|
72 |
|
73 |
# Obtenemos el primer elemento seleccionado de la capa
|
74 |
seleccion = list()
|
75 |
seleccion.extend(capa.getSelection()) |
76 |
if len(seleccion) < 1: |
77 |
msgbox("Debera tener seleccionados elementos en la capa activa.")
|
78 |
return
|
79 |
entidad = seleccion[0]
|
80 |
|
81 |
mapa = self.cboMapas.getSelectedItem()
|
82 |
tagVista = self.cboTagVista.getSelectedItem()
|
83 |
tagTitulo = self.cboTagTitulo.getSelectedItem()
|
84 |
tagLogotipo = self.cboTagLogotipo.getSelectedItem()
|
85 |
if tagVista in ("",None) or tagTitulo in ("",None) : |
86 |
msgbox("Debera seleccionar el tag de la vista, titulo y logotipo")
|
87 |
return
|
88 |
|
89 |
encuadre = entidad.geometry().getEnvelope() |
90 |
try:
|
91 |
titulo = eval(self.txtTitulo.getText(), entidad) |
92 |
except:
|
93 |
titulo = self.txtTitulo.getText()
|
94 |
|
95 |
try:
|
96 |
logotipo_nombre = eval(self.txtLogotipo.getText(), entidad) |
97 |
logotipo = load_image(script.getResource(logotipo_nombre)) |
98 |
except:
|
99 |
logotipo = None
|
100 |
|
101 |
self.actualizar_mapa(mapa, tagVista, tagTitulo, tagLogotipo, encuadre, titulo, logotipo)
|
102 |
|
103 |
|
104 |
|
105 |
def main(*args): |
106 |
customizeLayout = CustomizeLayout() |
107 |
customizeLayout.showTool("Customize layout")
|
108 |
|
109 |
|