Objetivo
Esse documento tem como objetivo mostrar o que precisa ser feito para a criação de um novo evento de tecla que acionará uma macro-operação.
Conceitos
Máquina de Estados
A máquina de estados é um modelo de comportamento composto de um número finito de Estados. É utilizada para definir a forma como o componente deve se comportar, tendo como base o estado atual do mesmo.
Macro-operação
As macro-operações são as funcionalidades que serão executadas pela Máquina de Estados. Esse processo é disparado a partir de um evento de uma tecla, ou seja um acionamento de uma tecla.
Mais abaixo vamos mostrar, através de exemplo prático, o que precisa para criar uma nova tecla e como deve ser feito para o evento dessa tecla dar início a execução de um fluxo.
Criando uma nova tecla
Definindo a teclaO primeiro passo é definir qual tecla será utilizada para acionar uma nova funcionalidade. Por exemplo, vamos criar uma tecla para iniciar a macro-operação de empréstimo pessoal, a partir do estado DISPONIVEL. Para isso vamos abrir o arquivo MapeamentoTeclado.xml do componente e acrescentar uma nova tecla, conforme exemplo ao lado. Precisamos observar o seguinte. O parameter "Codigo" não pode conter um código que já esteja sendo utilizado por outra tecla, dentro desse arquivo. A mesma regra serve para o parameter "CodigoNumerico". | Mapeamento Teclado <ParameterSet name="Tecla"> <Parameter name="Codigo">111</Parameter> <Parameter name="RotuloNumerico">Emprestimo Pessoal</Parameter> <Parameter name="RotuloAlfaNumerico">Emprestimo Pessoal</Parameter> <Parameter name="FinalizadorNumerico">true</Parameter> <Parameter name="CodigoAlfaNumerico">k</Parameter> <Parameter name="FinalizadorAlfaNumerico">false</Parameter> <Parameter name="CodigoNumerico">TECLA_EMPRESTIMO_PESSOAL</Parameter> </ParameterSet> |
Constante ComponentesApós a definição da tecla no arquivo XML, precisamos incluir a nova tecla ao array de teclas cadastradas no sistema. Para isso vamos abrir a classe com.csi.info.constantes.ConstantesComponentes. Conforme imagem ao lado. | |
Definindo a ConstanteDentro da classe ConstantesComponentes, vamos definir a constante que representará a tecla no sistema. O valor da constante deve ser o mesmo do parameter CodigoNumerico, definido no arquivo XML conforme exemplo mais acima. No nosso caso foi: <Parameter name="CodigoNumerico">TECLA_EMPRESTIMO_PESSOAL</Parameter> | Definindo constante package com.csi.info.constantes; /** * Interface utilitária com diversas constantes a serem * usadas pelos componentes e demais classes ligadas a essa. * * @author Ricardo Mendonça (<a href="mailto:[email protected]">[email protected]</a>) */ public abstract class ConstantesComponentes { /** * Constante que representa o codigo da tecla de Emprestimo Pessoal */ public static final String TECLA_EMPRESTIMO_PESSOAL = "TECLA_EMPRESTIMO_PESSOAL"; } |
Incluindo tecla no arrayApós a definição da constante, precisamos incluir a nova tecla no Array de Teclas válidas para o sistema. O código ao lado, mostra um exemplo. Dentro da classe ConstanteComponentes existe um array de String chamado TODAS_TECLAS. É neste array onde devemos incluir nossa nova tecla. Observe no exemplo ao lado, que a constante TECLA_EMPRESTIMO_PESSOAL foi acrescentada à última posição do array de Strings. | Array de teclas package com.csi.info.constantes; /** * Interface utilitária com diversas constantes a serem * usadas pelos componentes e demais classes ligadas a essa. * * @author Ricardo Mendonça (<a href="mailto:[email protected]">[email protected]</a>) */ public abstract class ConstantesComponentes { /** * Constante que representa o codigo da tecla de Emprestimo Pessoal */ public static final String TECLA_EMPRESTIMO_PESSOAL = "TECLA_EMPRESTIMO_PESSOAL"; /** * CONSTANTE QUE DEFINE TODAS AS TECLAS */ public static String[] TODAS_TECLAS = {TECLA_ADIANTAMENTO, TECLA_TOTAL, TECLA_VOLTA, TECLA_LIMPA, ..., // demais teclas TECLA_EMPRESTIMO_PESSOAL }; } |
Alterando o diagramaNo diagrama ao lado, temos o fluxo que será acionado com o evento da tecla TECLA_EMPRESTIMO_PESSOAL a partir do estado DISPONIVEL. A imagem ao lado mostra como ficou o digrama após colocarmos o Event Link (seta na cor verde), com a tecla TECLA_EMPRESTIMO_PESSOAL. Isso indica para a máquina de estados que, quando o componente estiver parado no estado DISPONIVEL e a tecla for acionada, o fluxo EMPRESTIMO_E_SAQUE será executado. |