Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 46 Próxima »

O Cronapp permite que novos blocos de programação ( cliente ou servidor ) sejam criados e adicionados na lista de blocos no Editor de Blockly. Dessa forma, é possível criar novas 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 

Criar um novo pacote (Em nosso exemplo o nome do pacote será menorValorLista) que irá conter a classe java referente ao componente. 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.

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

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, returnType e String input. Esses valores não são fixos e podem ser alterados. Ver Figura 4.

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 -  Variável do tipo de nome input - (O nome da variável pode ser alterado para qualquer outro) 


Figura 4.1 - Classe Java recém criada


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

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

Adicionar código 

Primeiramente, devemos alterar os tipos de dados atuais para list e 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 5 - 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: foi adicionada a descrição para o parâmetro, pois essa descrição é exibida posteriormente no editor de bloco de programação ( Figura 7); 
  • Variável do parâmetro: a variável do parâmetro foi definida 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.3):

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

Acessar a função 

O último passo após a inserção do código 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 6 - Recarregar projeto


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

 

Exibição de informações 

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

  

 Figura 7 - 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 um bloco ( do tipo servidor) que cria uma lista com 3 valores inteiros e pega o menor valor dessa lista e exibe na tela, após isso foi criado um botão que chama esse bloco e exibe o resultado na tela conforme as imagens abaixo ( Figura 8 e 8.1)


 Figura 8 - Bloco que exibe o menor valor da lista

 Figura 8.1 - Menor valor da lista exibido na tela


Nessa página


  • Sem rótulos