[Gvsig_desarrolladores] Agregar boton al toolbar desde un script

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Dom Abr 9 10:53:07 CEST 2017


El 7 de abril de 2017, 19:43, Alex Irmel Oviedo Solis <
alleinerwolf en gmail.com> escribió:

> Hola a todos, aunque se como manipular la interfaz de gvSIG desde un
> script quisiera saber la forma correcta de agregar un boton a la barra de
> herramientas principal de gvSIG y asi mismo como cambiaria la posicion de
> una ventana, porque en todos los ejemplos de scripts todas las ventanas se
> abren en el lado superior derecha.
>
>
Hola Alex,
la forma de hacerlo consistiria basicamente en crear un ActionInfo y
asociarlo a una entrada de menu o un boton de una toolbar de gvSIG.
Para hacer esto podemos ver basicamente dos formas de hacerlo:


1. Tal como esta el ejemplo "addMenuAndButton" que biene con la extension
de
   scripting (los ejemplos estan disponibles a traves de la pestaña sistema
   en el editor de scripts).
   El ejemplo crea una accion asociandole como extension
"ScriptingExtension" y
   un nombre o ruta de script. Mejor usar ruta comenzando desde la carpeta
de
   scripts de usuarios para evitar conflictos con otros scripts. El ejemplo
   es muy simplon ya que no controla la visibilidad del boton/menu, y
contiene
   un error. Deberia usarse "ScriptLaunchExtension" en lugar de
"ScriptingExtension".
   Si el script que asocias a la accion ademas del main tiene una funcion
   isVisible o isEnabled las invocara para determinar la visibilidad de la
   accion.

2. Crear tu propia clase "extension" y asociarla a la accion.
   A mi me gusta mas este metodo, ya que tengo mas control de lo que estoy
   haciendo.

   Puedes ver un ejemplo de esto en el script "Catalog" que hay en el
catalogo
   de scripts de gvSIG.


http://downloads.gvsig.org/download/web/scriptcatalog/build/html/index.html

   En el modulo "catalog.py" a partir de la linea 325 esta lo que te puede
   interesar


http://downloads.gvsig.org/download/web/scriptcatalog/build/html/packages/Catalog/code_browser.html?Catalog/Catalog/catalog.py

   Ahi tienes la clase "DatasourceCatalogExtension" que implementa los
   metodos:
    - canQueryByAction (que devuelba siempre true)
    - isEnabled
    - isVisible
    - execute

   El metodo execute se invoca cuando se ejecuta una accion (ActionInfo) y
   recive como parametro el nombre de la accion (pueden haber varias
acciones
   asociadas a una "extension"). Los metodos isEnabled e isVisible se
invocan
   para saber si la accion debe estar visible/habilitada.

   En la funcion "selfRegister" tienes como se crearn las acciones (en el
ejemplo
   dos), asociandose a la extension y como se añaden al menu "herramientas".


Ten cuidado con el metodo registerAction. Recibe una accion, la accion a
registrar,
y devuelbe la accion registrada. Podria darse el caso que tu le pases una
accion
y no sea esa la que duvuelve. Quedate siempre la que devuelve, no la que le
pasas.
Como minimo esto pasa cuando intentas crear una accion con un nombre que ya
existe.

Tambien es interesante que repases los nombres y parametros (sobre todo
posicion)
de las acciones ya registradas. Puedes hacerlo a traves de la opcion de
menu:

  Herramientas --> Desarrollo --> oooii, no recuerdo el nombre

Pero bueno, seguro que la encuentra ahi.

Si necesitas consultar los metodos del ApplicationManager puedes ver los
javadocs
de el en:


http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/app/ApplicationManager.html

Espero que te sirvan de ejemplo.
Si tienes dudas, ya sabes, pregunta.

Un saludo
Joaquin




> Gracias de antemano por la ayuda.
>
> Saludos
>
> _______________________________________________
> 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:
> https://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óxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170409/97807c4c/attachment.html>


Más información sobre la lista de distribución gvSIG_desarrolladores