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:
- Projeto que possua o lado servidor criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link ( Criar projeto );
- 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
CriarCriando 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 | ||||
---|---|---|---|---|
| ||||
|
, 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
CriarCriando 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).
AlterarAlterando 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 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 | ||
---|---|---|
| ||
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 | ||||
---|---|---|---|---|
| ||||
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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
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
AcessarAcessando 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 |
---|