Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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 projeto );
  2. Habilitar o botão Modo Avançado.

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

Criando 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 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 renomeiedireito no diretório java 

Tooltip
onlyIcontrue
appendIconinfo-circle

Endereço: src/main/java

, em seguida, escolha Novo, selecione Pacote e insira o valor menorValorLista na janela de Confirmação.


Image Modified

Figura 1 - Criação do Criando  o pacote

Criar

Criando classe Java

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


Image Modified

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.


Image Modified

Figura 2.2 - Escolha do modelo do arquivo


Para finalizar, preencha os campos informados na figura Figura 2.3.

                                                                                                                              Image Modified

Figura 2.3 - Definindo informações sobre o bloco

Campos:

  • Nome da classe: Define o define o nome da classe Java onde está inserida a função.
  • Nome da função: Atribui o atribui o nome da função que será exibido no Editor de Blockly.
  • Nome reduzido da função: Define define o nome para a função Java.
  • Descrição da função: Descreve 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

Alterando 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):


Image Modified

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


Informações
titleSaiba mais

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


Adicionar Adicionando 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.


Bloco de código
languagejava
titleCó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;
	}

}


Bloco de código
languagejava
themeEclipse
firstline1
titleCódigo modificado
linenumberstrue
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çãocorreçã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.


Image Modified

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

Acessar

Acessando 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 Recompilar e Reabrir Projeto para que a nossa função seja carregada (Figura 5.1).


Image Added

Figura 5.1 - Recompilando e reabrindo o projeto


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 um bloco de programação . Primeiro devemos recarregar o projeto para que a nossa função seja carregada.

Image Removed

Figura 5.1 - Recarregar projeto

disponível. Abra um bloco de programação servidor do tipo Servidor e verifique na categoria categoria Obter Valor, o  o bloco obterMenorValorLista (Figura 5.2).


Image Modified

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 As informações definidas durante o desenvolvimento da função passando-se são exibidas ao passar o ponteiro do mouse sobre o componente bloco ainda na Categoria (Figura 65.13).

  

Image Modified

 Figura 65.1 3 - 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  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 (Figura 6.1) e exibir o resultado conforme as imagens abaixo será exibido no navegador (Figura 76.1 e 7.2)


Image Modified 

Figura 76.1 - Bloco que exibe o menor valor da lista

Image Modified

 Figura 76.2 - Menor valor da lista exibido na tela

Nessa Nesta página

Índice