Criar plugin utilizando IDEs padrões de mercado
Apesar da plataforma Cronapp ter todos os recursos necessários para criação de plugins, nada impede que se utilize uma IDE convencional para criar novos plugins / bibliotecas para importar em seu projeto Cronapp. Neste tutorial criaremos uma biblioteca com funções de bloco de programação servidor em uma IDE externa e importaremos esse conteúdo para a plataforma Cronapp.
Pré-requisitos
Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.
Requisitos:
Uma IDE convencional instalada na máquina local, para este tutorial utilizaremos a IDE Apache NetBeans na versão 16. mas fique a vontade para escolher qualquer outra.
Recomendado o JDK 11.
Projeto Maven
Crie um projeto Maven (para jar - "<packaging>jar</packaging>") na IDE de preferência. Em seguida, inclua no seu pom.xml a dependência para a biblioteca io.cronapp:cronapi-java, dentro do elemento <dependencies>, ela contém tudo que você precisa para criar suas funções, inclusive a chamada para todos os blocos de programação servidor.
Figura 1 - Inclusão de dependência para a biblioteca
A versão da biblioteca cronapi-java está em constante atualização, acesse o repositório do cronapi-java na Central Mavel para obter a última versão.
Definindo as anotações do blockly
Agora faremos uma classe Java que representará a sua nova Categoria dentro do Editor de bloco de programação, com duas novas funções.
Figura 2 - Criação da classe que representará uma nova Categoria do blockly
A primeira função, operacaoSoma, realiza a soma entre dois números passados por parâmetro pelo usuário.
A segunda função, Expoente, utiliza o bloco de programação Elevar à potência para realizar a operação de exponenciação, tendo como base o primeiro valor passado pelo usuário,
num1, e como expoente o segundo valor,num2.
A classe apresentada na figura 2 pode ser baixada no arquivo a seguir:
Arquivo 1 - Classe operacoes.java
Observações
As anotações
@CronapiMetaDatae@ParamMetaDatasão as anotações principais que você utilizará para definir como e com que nome sua função aparecerá na lista de funções para bloco. Veja mais detalhes no tópico "Anotações" da documentação Criando blocos servidor customizados.A biblioteca
cronapitem todas as principais funções já existentes para blocos, e você pode reutiliza-las em sua função se desejar.Não há limites para o que pode ser feito, o que seu conhecimento na linguagem Java permitir, você pode utilizar.
Uma vez concluído, você deve publicar sua biblioteca. Recomendamos usar o MarketPlace da plataforma Cronapp, mas, como fizemos nesse exemplo, também é possível realizar uma publicação no repositório central maven.
Inclusão da biblioteca no projeto Cronapp
Agora vamos utilizar a biblioteca que subimos no repositório Central Maven em um projeto na plataforma Cronapp. Para ativar a biblioteca que acabamos de criar, vamos inclui-la manualmente no arquivo pom.xml do nosso projeto. Com o modo avançado ativado (destaque 1 da figura 3), acesse o arquivo pom.xml (ou "Definições Maven", destaque 2 da figura 3) e inclua a dependência da biblioteca criada dentro do elemento <dependencies> (destaque 3 da figura 3).
Figura 3 - Edição do arquivo Definições Maven (pom.xml)
Recomendamos ao final dessa etapa realizar a limpeza de cache do projeto. Para isso, acesse no menu do sistema Projeto > Limpar Todos os Caches. (Figura 3.1)
Figura 3.1 - Limpando o cache do projeto
Limpar o cache nem sempre é o suficiente para exibir o bloco de programação criado, caso este procedimento não funcione, siga os passos a seguir: acesse o menu de contexto do arquivo pom.xml, selecione a opção Maven > Processar Alvos... e uma janela de Confirmação irá abrir já com um comando Maven dependency: resolve-U. Clique em OK.
Recompile e reabra o projeto, para exibir as funções criadas.
Figura 3.2 - Novos blocos criados
Utilizando as funções
Após realizar as configurações apresentadas acima, podemos testar nossas funções, confira as figuras 4 e 4.1.
Figura 4 - Exemplo de uso da função operacaoSoma
Figura 4.1 - Exemplo de uso da função Expoente