[Gvsig_desarrolladores] Agregar boton al toolbar desde un script

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


El 9 de abril de 2017, 10:53, Joaquin Jose del Cerro Murciano <
jjdelcerro en gvsig.org> escribió:

>
>
> 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.
>>
>>
Por cierto...
manipular la interface grafica de gvSIG desde un script metiendolo mano a
los componentes swing de esta no te lo recomiendo. Bastante trabajo nos
cuesta precurar no cambiar el API entre versiones como para tener que
pensar si le cambiamos el nombre a un componente o lo quitamos y ponemos
otro en su lugar. Es facil que si le metes mano a cualquier parte de gvSIG
sin pasar por el API que haya para usarla te deje de ir el script en
siguientes versiones de gvSIG.

Cuando tenga un rato con un gvSIG delante le echo un vistazo a lo de
posicionar las ventanas.

Un saludo
Joaquin



>
> 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
>



-- 
--------------------------------------
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/80e765e9/attachment.html>


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