1. Introdução

1.1. O que é o Módulo de Scripting

O Módulo de Scripting é um módulo de programação totalmente integrado no gvSIG 2.

Este módulo foi integrado a partir das versões 2.x do gvSIG, e teve importantíssimas melhoras no gvSIG 2.3.

1.2. O que você precisa

Para seguir este guia somente é necessário ter instalado a versão do gvSIG 2.3. O Scripting Framework ou Módulo de Scripting veem instalados por padrão.

A última versão disponível de gvSIG 2 pode ser encontrado em: http://www.gvsig.com/es/productos/gvsig-desktop/descargas

Também será necessário ter instalado o pacote de Scripting Composer Tools. Este pacote é um conjunto de ferramentas desenvolvida para facilitar a tarefa do desenvolvedor. Inclui ferramentas de auto completar, código navegador, a ferramenta de interfaces visuais Abeille, entre outros. Pode ser instalado diretamente a partir do Administrador de Complementos.

Para a sua instalação ir até o menu:Ferramentas –> Administrador de Complementos e selecione Instalação padrão.

../../_images/inst_1.png

Em filtro rápido digite Composer Tools:

../../_images/inst_2.png

Quando a instalação finalizar vá em:Ferramentas –> Scripting –> Editor de Scripts, onde podemos comprovar se aparece a pasta ScriptingComposerTools e se foi instalada corretamente.

../../_images/inst_3.png

É necessário reiniciar gvSIG para seu uso. Se voltarmos a abrir o Editor de Scripts, veremos que aparecem uma série de botões extra na barra de Ferramentas:

../../_images/inst_4.png

1.3. O que é possível fazer

Este módulo de programação nos dará a oportunidade de programar nossas próprias ferramentas e extensões para o gvSIG.

Os scripts podem ser modificados, adaptados, trocados e desenvolvidos de uma maneira muito fácil, e o mais importante, rapidamente. Uma das vantagens é devido à facilidade da linguagem Python, não será necessário ter extensos conhecimentos de programação nem de como funciona a arquitetura do gvSIG para poder desenvolver a ferramenta que necessitamos.

As possibilidades são infinitas, nos permitirá: - Automatizar tarefas - Adicionar funcionalidades - Criar novos geoprocessos - Personalizar gvSIG - Criação de extensões (Plugins) - Uso da API de gvSIG: tratamento espaciais, conexões de dados, geração de mapas, etc.

1.4. Qual a linguagem que utilizamos

A linguagem principal que temos utilizado para o desenvolvimento é Jython http://www.jython.org/, embora também se pode executar scripts em Groovy, R..

Jython é uma implementação de Python realizada em Java.

Esta implementação nos permite trabalhar com a API do gvSIG (aplicação realizada em Java) usando scripts utilizando a sintaxe de Python, facilitando muito o desenvolvimento e execução destes, precisando apenas ter instalado o gvSIG para poder programar.

Isto nos dá algumas vantagens enormes, por um lado, Python é uma linguagem muito simples de aprender, por outro lado, não é necessária a compilação previa com um IDE externo, sendo que a compilação do código se realiza no momento da execução, cada vez que executamos nosso script. Isto nos permite realizar modificações em nossos script e ir testando enquanto o gvSIG estiver aberto.

Também, tem compatibilidade com muitas das bibliotecas de Python existentes, e todas (ou maioria) de Java.

1.5. Como acessar o Módulo de criação de Scripting

Uma vez instalado gvSIG 2 já podemos abri-lo. Para acessar este módulo de programação será através do menu:Ferramentas –> Scripting. Aqui nos encontraremos 3 opções:

1.5.1. Lançador de Scripts

../../_images/scripting_launcher.png

Se trata de um lançador de scripts, uma lista com acessos diretos aos nossos scripts. Conforme vamos criando e armazenando nossos scripts, a nossa lista vai sendo atualizada e accessível para executar um script que necessitemos em qualquer momento, com um duplo clique. É muito cômodo preparamos scripts para executá-los enquanto estamos trabalhando, uma forma rápida de tê-los em qualquer momento.

1.5.2. Editor de Scripts

../../_images/scripting_composer.png

Esta é a tela principal deste módulo. Aqui poderemos criar, organizar e armazenar todos os nossos scripts.

Os ícones principais: Novo, Abrir, Salvar, Salvar e Executar, Fechar.. Depois de criarmos um arquivo novo poderemos escrever nosso código.

A execução do script aparecerá refletida no terminal que se situa na parte inferior,

1.5.3. Terminal Jython

../../_images/scripting_console.png

É um terminal que nos permitirá executar o código diretamente, executando-o linha por linha. Nos permite consultar variáveis e ver como estão sendo modificadas.

Outra função interessante é que nos oferece também uma ajuda dos comandos que estão disponíveis segundo o código que estejamos escrevendo, ou de que tipo de métodos estão disponíveis nas diferentes classes do gvSIG.

1.6. Bibliotecas do gvSIG para Scripting

Foi criada uma biblioteca escrita em Jython denominada gvsig. Sua função é injetar métodos extras nas classes de Java já existentes na API do gvSIG e ampliar através de novas funções o potencial e a facilidade de uso deste módulo.

Seu objetivo é diminuir o número de linhas requeridos para realizar certas operações e fazer acessível a API do gvSIG de uma maneira mais simples a partir do Jython.

A bibliotecas Javas que compõem o gvSIG estão totalmente acessíveis a partir dos nossos scripts em Jython, sendo possível, sem nenhuma restrição, o acesso a elas e a criação de extensões, da mesma forma que se fizéssemos isso diretamente em Java.

1.7. Organização da biblioteca gvsig

O Módulo de Scripting vem con diversas bibliotecas:

  • gvsig: pertencem as funções principais do gvSIG, principalmente para o acesso e manipulação de dados. Contém funções úteis e os métodos injetados nas classes do gvSIG. Também contém os outros módulos que explicamos.

  • gvsig.commonsdialog: encarregada da geração de janelas, desde mensagens de alertas até o caminho para arquivos.

  • gvsig.geom: contém todas as funções relacionadas com as geometrias.

Além disso, incluímos outras classes importantes que nos ajudarão na geração dos scripts:

  • gvsig.libs.formpanel.FormPanel: Esta classe nos ajudará na geração de scripts com interfaces visuais

  • gvsig.libs.gvpy: Biblioteca para a execuçaõ de geoprocessos a partir de Scripting

  • gvsig.libs.toolbox.ToolboxProcess: Classe para a criação de geoprocessos que serão adicionados à Toolbox e poderão ser utilizados a partir do Modelador.

  • gvsig.libs.load_project.load_project(): Função para abrir um projeto no gvSIG a partir de um arquivo

  • etc

É recomendável importar apenas as bibliotecas necessárias para a execução do script.

Se o nosso script contém outras bibliotecas própiras que também programamos, ao realizar sua importação podemos forçar a recarga destas bibliotecas (se não as alterações não aparecerão) utilizando a função reload(). Essa é a forma correta de fazer isso:

import lib
reload(lib)

1.8. Criação de um script

Para criar um script novo, trabalharemos no Editor de Scripts. Pressione no ícone “Novo” new situado acima à esquerda, ou em Arquivo ‣ Novo e será aberta uma janela perguntando qual o tipo de script a criar.

../../_images/nuevo_script.png

Nesta janela devemos escrever o nome e a descrição do que iremos criar. Como tipo de arquivo podemos escolher qual tipo de script iremos criar. As opções sãoa:

  • Script: Programa com código em linha que poderemos executar.

  • Dialog: Programa com código e uma interface visual. (Não recomendado, para scripts com interface visual usaremos também o tipo script)

  • Project: Ainda não habilitado, para futuras versões.

  • Folder: Cria uma pasta em nossa lista de “Scripts de usuário”.

Podemos selecionar a linguagem de programação com a qual prefiramos trabalhar. As linguagens suportadas são: - ECMAScript - Python (na qual temos centralizado o desenvolvimento) - Groovy - R - Scala

../../_images/nuevo_script_lenguajes.png

Em Save on poderemos escolher em qual pasta salvaremos nosso novo script. As duas últimas caixas de texto servem para inserir informações sobre o Autor e a Versão.

Clicamos em “Aceitar”. Isso irá criar o nosso novo script em branco, que aparecerá aberto para edição. Veremos que aparece novo em nossa listagem de scripts de usuário e abre-se uma aba com o nome do scritp. Nesta aba um asterisco aparecerá indicando se o script contém alterações que não foram salvas. Abaixo aparece o nosso código, que por padrão traz uma tela com a estrutura básica, e por baixo de tudo encontramos a saída pelo terminal.

Os scripts criados são armazenados na seguinte pasta do gvSIG (Windows) C:\Users\*\gvSIG\plugins\org.gvsig.scripting.app.extension. De forma similar na pasta /home/ do Linux. Agora podemos escrever nosso primeiro script. O exemplo que aparece por padrão é totalmente válido:

 1# encoding: utf-8
 2
 3import gvsig
 4
 5def main(*args):
 6
 7    #Remove this lines and add here your code
 8
 9    print "Olá mundo"
10    pass

Primeiramente, realiza uma importação da biblioteca que iremos utilizar, a biblioteca de scripting gvsig, e em seguida define dentro da função principal main(), o comando print que fará sair nosso valo no terminal.

../../_images/scripting_composer_2.png

Dentro do Scripting no gvSIG, a função que será executado por padrão será sempre a função main(), sendo assim, deveremos sempre introduzir todo o nosso código nessa função.

Nota

Todos nossos scripts devem conter a função main() para sua correta execução. Não será obrigatório se serão usados como bibliotecas.

Para executar um script salvamos save e executamos execute ou clicamos diretamente no ícone saveandexecute e veremos sua execução no terminal.

Podemos comprovar que a salida no terminal é “Olá mundo”, sendo este o objetivo que buscávamos. Com isso, executamos o nosso primeiro scrip com sucesso.

Esta estrutura é a estrutura básica de un script no gvSIG 2.3.

Se abrirmos agora o Lançador de Sripts, no menu de Scripting, veremos que já aparece nosso script na nova listagem.

Se queremos comprovar nossos scripts no HD estarão na pasta:

  • Em uma versão instalável no Windows: C:\Users\NomeUsuario\gvSIG\plugins\org.gvsig.scripting.app.extension\scripts

  • Em uma versão portátil no Windows: \gvSIG_pasta_instalacao\home\gvSIG\plugins\org.gvsig.scripting.app.extension\scripts

Ao abrirmos esta pasta podemos copiar e colar os scripts, atentando em copiar ambos arquivos .py e .inf.

Nota

O recomendável é gerar os scripts dentro da sua própria pasta. Isto nos permitirá usá-los como módulos, dando-nos várias opções: usar arquivos autorun.py (autoexecutáveis ao iniciarmos o gvSIG), arquivo __init__.py (nos permitirá trabalhar como se fosse um módulo, permitindo-nos importar bibliotecas que estejam na mesma pasta) e a criação de pacotes de Scripts.

1.9. Gerando pacotes de scripts

Uma vez tenhamos criado um script em sua própia pasta com todo o necessário, podemos gerar un pacote do gvSIG .gvspkg para enviá-lo ou subí-lo. Com este pacote podemos realizar a instalação do script a partir do Gerenciador de Complementos. Seu uso é muito intuitivo.

A ferramenta se encontra no Editor de Script, no menu Ferramentas ‣ Pacote de script.

Selecionamos a pasta que contém nossa extensão:

../../_images/empaquetador_1.png

Definimos as propiedades do pacote:

../../_images/empaquetador_2.png

As opções de saída:

O caminho será semelhante a este: gvSIG-desktop-2.3.0-2441-RC2-win-x86_64\install\gvSIG-desktop-2.3.0-ExportadorCapas-1.0.0-0-testing-all-all-j1_7.gvspkg.

../../_images/empaquetador_3.png

Ao finalizar, já aparecerá nossa extensão no formato .gvspkg, que pode ser instalada a partir do Gerenciador de Complementos

../../_images/empaquetador_4.png