Page tree
Skip to end of metadata
Go to start of metadata

O Cronapp permite que novos blocos de programação (cliente ou servidor ) sejam criados e adicionados na lista de blocos do Editor de Blockly. Dessa forma, é possível criar funções para atender as necessidades de cada projeto.

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:

  1. Projeto que possua o lado servidor criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link ( Criar novo projeto );

Visão Geral

Nesse tutorial iremos criar uma função de bloco de programação do tipo servidor que obtém uma lista de números e retorna o menor valor.

Passos

Criar pacote 

Faz parte da boa prática de desenvolvimento criar diretórios ou arquivos referentes ao bloco de programação do tipo servidor no diretório Códigos Fonte Servidor. Dessa forma, criaremos o pacote menorValorLista que irá conter a classe Java referente ao componente. Clique com o botão de contexto na pasta Códigos Fonte Servidor e selecione Novo > Pacote e renomeie.


Figura 1 - Criação do pacote

Criar classe Java

O pacote criado deve receber um arquivo do tipo Java, dessa forma, clique com o botão de contexto no pacote criado e selecione Novo > Java (Figura 2.1)

Figura 2.1 - Criação da classe Java


Após solicitar a criação do arquivo Java, o Cronapp irá exibir a tela de escolha do modelo de arquivo. Selecione a opção Nova Função para Bloco de Programação (Figura 2.2). O botão Avançar confirma a seleção do modelo e exibe a tela de definição das informações.

Figura 2.2 - Escolha do modelo do arquivo


Para finalizar, preencha os campos informados na figura 2.3.

                                                                                                                              

Figura 2.3 - Definindo informações sobre o bloco

Campos:

  • Nome da classe: Define o nome da classe Java onde está inserida a função.
  • Nome da função: Atribui o nome da função que será exibido no Editor de Blockly.
  • Nome reduzido da função: Define o nome para a função Java.
  • Descrição da função: Descreve a finalidade da função para ser exibido na sua descrição.
  • Categoria: Define o nome da nova categoria.

As informações preenchidas acima são exibidas posteriormente ao selecionarmos a função criada no editor de blocos de programação servidor (Figura 6.1).

Alterar anotações do método

A geração do código base para o componente vem com algumas anotações padrão, como por exemplo: type, returnTypeString input. Esses valores não são fixos e podem ser alterados. Ver Figura 3.1.

Atributos dos parâmetros:

  • type - Tipo do parâmetro de entrada da função.
  • description - Descrição do parâmetro de entrada da função.
  • returnType - Tipo do parâmetro de saída da função String.
  • String input - Tipo da variável e seu nome "input" - O nome da variável pode ser alterado para qualquer outro.


Figura 3.1 - Classe Java recém-criada


Utilize CTRL + Espaço para exibir os ObjectTypes disponíveis (Figura 3.2):

Figura 3.2 - Alguns dos tipos de parâmetro que podem ser utilizados

Saiba mais

Mais detalhes sobre as anotações, acesse Utilizando anotações.

Adicionar código 

Primeiramente, devemos alterar os tipos de dados atuais para list, além disso, devemos acrescentar algumas informações sobre o parâmetro no código. Após a adequação dos parâmetros, o código referente a funcionalidade pode ser adicionado ao corpo da função. Nesse exemplo, o código retorna o menor valor contido em uma lista.


Código padrão
package menorValorLista;

import cronapi.CronapiMetaData;
import cronapi.ParamMetaData;


@CronapiMetaData(categoryName = "Obter Valor")
public class MenorValorLista {

	@CronapiMetaData(type = "function", name = "obterMenorValorLista", description = "Função que retorna o menor valor contido em uma lista")
	public static String obMenVaList(@ParamMetaData(description = "Parâmetro: Descrição do parâmetro") String input) throws Exception {
		return "Input " + input;
	}

}


Código modificado
package menorValorLista;

import java.util.Comparator;
import java.util.Optional;

import cronapi.CronapiMetaData;
import cronapi.ParamMetaData;
import cronapi.Var;
import cronapi.CronapiMetaData.ObjectType;


@CronapiMetaData(categoryName = "Obter Valor")
public class MenorValorLista {

	@CronapiMetaData(type = "function", name = "obterMenorValorLista", description = "Função que retorna o menor valor contido em uma lista")
	public static Var obMenVaList(@ParamMetaData(type =  ObjectType.LIST ,description = "Parâmetro: Descrição do parâmetro") Var list) throws Exception {

			Optional<Var> opt = list.getObjectAsList().stream().min(Comparator.comparingLong(Var::getObjectAsLong));
			return opt.get();

	}

}


Figura 4.1 - Alterações realizadas na função


Algumas alterações foram realizadas no código base, são elas, respectivamente:

  • Tipo de retorno da função: alterado de string para Var;
  • Tipo do parâmetro da função: foi acrescentado que o tipo do parâmetro é uma lista;
  • Descrição do parâmetro: Essa descrição é exibida posteriormente no editor de bloco de programação (Figura 6.1); 
  • Variável do parâmetro: o nome da variável do parâmetro foi definido como list e seu tipo é Var;
  • Corpo da função: o corpo adicionado para a função é responsável por retornar o menor valor da lista recebida como parâmetro.


Caso seja apontado algum erro em algum trecho do código, clique no termo e aperte "CRTL + . (ponto)" ou clique no ícone da lâmpada para exibir uma opção de correção. Ao digitar o código é possível usar o "CTRL + Espaço" para exibir os métodos de um objeto (Figura 4.2). Salve o arquivo Java em seguida.

Figura 4.2 - Alguns dos métodos contidos em uma instância de um objeto do tipo Var 

Acessar a função 

Após salvar o método da classe Java que criamos, clique com o botão de contexto sobre a raiz do projeto e selecione a opção Recarregar, atualizando o projeto (Figura 5.1)

O último passo após a inserção do código na classe no componente é a visualização desta função como disponível para utilização no bloco de programação. Primeiro devemos recarregar o projeto para que a nossa função seja carregada.


Figura 5.1 - Recarregar projeto


Abra um bloco de programação servidor e verifique na categoria Obter Valor, o bloco obterMenorValorLista (Figura 5.2).


Figura 5.2 - Função sendo exibida em sua respectiva categoria no bloco de programação servidor

 

Informações do bloco

É possível visualizar as informações definidas durante o desenvolvimento da função passando-se o ponteiro do mouse sobre o componente (Figura 6.1).

  

 Figura 6.1 - Exibição das informações da função

Testando a função

Agora vamos testar a função que desenvolvemos nesse tutorial. Para isso foi criado a variável "lista" que recebe uma lista com 3 valores inteiros, essa variável é passada por parâmetro para o bloco  criado (obterMenorValorLista), que retornará o menor valor da lista e exibirá em uma notificação na tela. Criamos um botão na tela para chamar a função de bloco mostrarMenorValor e exibir o resultado conforme as imagens abaixo (Figura 7.1 e 7.2)

 

Figura 7.1 - Bloco que exibe o menor valor da lista

 Figura 7.2 - Menor valor da lista exibido na tela


Nessa página


  • No labels