Nesse artigo nós entenderemos o funcionamento das condicionais no Axure RP 6.5, especialmente as condicionais usadas para analisar valores de variáveis. O protótipo desenvolvimento para exemplificar tais funcionalidades demonstra que questões lógicas também são importantes para justificar o uso da técnica de prototipagem, e não somente interfaces, layouts e wireframe.

As condicionais e o Exemplo

Podemos definir as condicionais de um Widget no Axure através da janela Case Editor e clicando no link Add Condition.

Janela Case Editor com as Actions no painel do lado esquerdo e o link Add Condition ao centro em cima

Figura 1: Janela Case Editor com as Actions no painel do lado esquerdo e o link Add Condition ao centro em cima

Janela Condition Builder. É nela que criaremos nossas condições para que definiremos as condições (afirmações)

Figura 2: Janela Condition Builder. É nela que criaremos nossas condições para que definiremos as condições (afirmações)

Existem 12 tipos de condições. Para este artigo, focaremos naquelas que trabalham com valores numéricos de variáveis.

O nosso protótipo de exemplo será um sistema que, com as notas de um aluno, será capaz de dizer se ele está aprovado com louvor, aprovado e reprovado.

As regras

  • O aluno será aprovado com louvor se obtiver uma média de notas maior ou igual a 9;
  • O aluno será aprovado se obtiver uma média de notas maior ou igual a 6 menor que 9;
  • O aluno será reprovado se obtiver uma média de notas menor que 6.

As variáveis

Por hora, criaremos uma variável global: MediaFinal. A MediaFinal armazenará o resultado da divisão do somatório das quatro notas por quatro.

Para criá-la, iremos no menu Wireframes->Manage Variables.

Janela Manage Variables com as variáveis MediaFinal já criada

Figura 3: Janela Manage Variables com as variáveis MediaFinal já criada

Os widgets

Os widgets que utilizaremos são 4 do tipo text field e 2 buttons. Além de text panel’s para ilustrar o nosso exemplo.

Não devemos esquecer de nomear cada um desses widgets.

Formulario do protótipo

Figura 4: Formulario do protótipo

Abaixo do botão Ver resultado mostraremos um texto se o aluno foi ou não aprovado.

Para os text field das notas, utilizamos o padrão de label:

  • input_nota1, input_nota2, input_nota3 e input_nota4.

Text Panel com:

  • loading, resultado_media_final e resultado_frase_aluno

E para os botões:

  • botão_fazer_calculo e botao_ver_resultado.

Observação: Podemos adicionar um text panel abaixo do botão Ver Resultado para utilizarmos a Action Wait Time e dar a impressão de processamento. Isso fica a critério, mas estará no arquivo fonte com a label loading já citada acima.

A lógica

Essa parte é a mais importante do desenvolvimento do protótipo. Devemos escolher um ou mais widgets para centralizar as ações e assim gerar o resultado esperado. No nosso exemplo, utilizaremos os 2 botões: Fazer Cálculo e Ver Resultado. E ao clicarmos no Fazer Cálculo, a lógica se iniciará assim:

  • Mostra um widget do tipo text panel com o texto “aguarde”;
  • Aguarda 3 segundos;
  • Desabilita o Widget “Aguarde”;
  • Pega e soma os valores dos input das notas, divide-as por 4 e armazena na variável MediaFinal;
  • Habilita o botão Ver Resultado.

O botão Ver Resultado fará o controle:

  • Mostrará a MediaFinal no Widget resultado_media_final
  • Se a variável MediaFinal for maior ou igual a nove, mostra no Widget resultado_aluno a frase Aprovado Com Louvor.
  • Se a variável MediaFinal for entre 6 e 9, mostra no Widget resultado_aluno a frase Aprovado.
  • Se a variável MediaFinal for menor que 6, mostra no Widget resultado_aluno a frase Reprovado.
  • Caso nenhum dos casos acima sejam aceitos (uso de virgula e letras), mostraremos um popup de erro (está no código-fonte).

Configurando os Widgets

Com a lógica entendida, vamos fazer as interações do botão Fazer Cálculo.

Widget Properties do Botao Fazer Cálculo

Figura 5: Widget Properties do Botao Fazer Cálculo

Criamos um Case OnClick chamado Fazer Cálculo que será composto por 5 actions:

  • A primeira escreverá o texto “Aguarde...” no widget Loading;
  • Wait 3000ms para ilustrar um tempo;
  • A terceira apagará o texto “Aguarde...” do widget Loading;
  • A quarta e mais importante vai fazer o cálculo da média das 4 notas e armazenar na variável MediaFinal.

A Action é Set Variable/Widget Value(s) e abriremos o Open Set Value Editor

Com ele aberto seguiremos as opções da figura abaixo (Value of Variable, MediaFinal, value);

Janela Set Variable and Widget Value

Figura 6: Janela Set Variable and Widget Value

No campo em branco, vamos ao Fx montar a função;

Ao clicar em Fx, se abrirá a janela chamada Edit Text, nela possamos inserir as variáveis já existentes, bem como utilizar funções, montar equações e criar variáveis locais.

Janela Edit Text

Figura 7: Janela Edit Text

No espaço Local Variables criamos 4 variáveis locais (funcionam somente dentro da própria Action) e cada uma armazena o valor de cada nota do aluno. No campo de cima, escrevemos a função [[(LVAR1+LVAR2+LVAR3+LVAR4) / 4]] que somará as 4 variáveis e dividirá por 4. Todos os colchetes e parênteses devem estar presentes. Esta Action está finalizada.

  • A última Action do Case Fazer Cálculo habilitará o botão Ver Resultado, que por padrão vem bloqueado.

Já o Widget botão Ver Resultado terá suas interações conforme a figura abaixo.

Bloco Widgets Properties do botão Ver Resultado

Figura 8: Bloco Widgets Properties do botão Ver Resultado

No código-fonte do exemplo existe uma última condição, para quando as notas vierem com virgula ou letra, pois com elas a conta dará erro. Focaremos nos 3 principais: Aprovado com Louvor, Aprovado com Ressalvas e Reprovado.

Vamos primeiro editar as condições. Depois suas Actions, ok?

No primeiro, abriremos a Janela Condition Builder e a editaremos as suas opções de acordo com a regra do Case Aprovado com Louvor, ou seja, MediaFinal Maior ou Igual a 9. Logo, as opções serão Value of Variable – MediaFinal - is greater or equals - value e no campo em branco digitamos 9.

Condition Builder para o Case Aprovado com Louvor

Figura 9: Condition Builder para o Case Aprovado com Louvor

Notamos que existe a opção Satisfy. Ela, na verdade, mostra que o resultado só será verdadeiro se todas as condições forem (all, conjunção, e, and) ou o resultado para ser verdadeiro basta que uma seja (any, disjunção, ou, or).

Já para o segundo (Aprovado) é um pouco diferente, pois são duas condições:

  • Menor que 9 e
  • Maior ou igual que 6.
Condition Builder para o Case Aprovado com Ressalvas

Figura 10: Condition Builder para o Case Aprovado com Ressalvas

Neste caso, o Satisfy não poderá ser Any pois as duas condições têm que ser verdadeiras. Caso o aluno tenha uma média de 5, por exemplo, ele é aceito na primeira condição mas não na segunda. Logo, não basta uma, devem ser as duas aceitas – Satisfy All.

Para ele ser reprovado, deve respeitar a condição abaixo:

Condition Builder para o Case Reprovado

Figura 11: Condition Builder para o Case Reprovado

Pronto, agora que já criamos os cases e suas condições, vamos para as Actions. A função delas para este widget (botão Ver Resultado) será bastante simples: mostrar a variável MediaFinal e o texto referente aos 3 Cases.

As Actions são praticamente idênticas. Exemplifico abaixo as Actions referentes ao Case Aprovado com Louvor.

São duas Actions Set Variable/Widget Value(s). A primeira alterará o widgets resultado_media_final e a segunda o resultado_frase_aluno.

Actions para o aluno Aprovado com Louvor

Figura 12: Actions para o aluno Aprovado com Louvor

Entendemos até este ponto que a variável MediaFinal do aluno foi maior ou igual a 9, preenchendo assim a condição para entrar no Case Aprovado com Louvor e os dois widgets acima (resultado_media_final e resultado_frase_aluno) terão seus textos diferenciados no seu respectivo botão Edit Text.

Janela Enter Text do Widget resultado_media_final

Figura 13: Janela Enter Text do Widget resultado_media_final

Note que existem configurações de fonte e estilos e a variável está dentro de duplos colchetes. A fonte está amarela pois na página o fundo é preto.

Janela Enter Text do Widget resultado_frase_aluno

Figura 14: Janela Enter Text do Widget resultado_frase_aluno

Para os outros Cases, alteraremos somente o texto desta última janela.

Conclusão

Então pessoal, chegamos ao fim de mais um artigo. Nele podemos perceber que a prototipagem não abrange somente questões de interface ou layout, mas a parte lógica também tem sua importância. Utilizamos variáveis globais e locais, bem como entendemos um ponto importante diante de várias condições - Satisfy all ou any. É isso. Até a próxima.

Leia mais sobre o Axure RP 6.5