wiki:WF/criarinterface

Criar Interface de Visualização

1 Descrição

Uma interface de visualização é uma representação de tela Html a ser utilizada pela aplicação para apresentar ou solicitar dados ao usuário. As interfaces estão vinculadas a ações do sistema aplicativo, e são geradas pela camada de visualização, sob demanda da camada de controle. Assim, no ciclo previsto no MVC, a camada de visualização receberá um objeto de dados e promoverá a mesclagem destes dados com a interface definida para a ação. O resultado será um código Html a ser retornado para o cliente. Cabe ao navegador tratar o pacote de dados recebidos, e avaliando as propriedades do componente lançador da ação, decidir onde os dados serão apresentados. Uma interface não necessariamente será uma página inteira a ser apresentada, mas pode ser uma região da página a ser substituída.

O framework disponibiliza uma ferramenta gráfica para desenho de interfaces, onde o desenvolvedor tem acesso a componentes, e os agrupa na interface para produzir o layout desejado. Conforme trabalha, já pode ver o resultado final, acionando uma funcionalidade de preview, que apresenta a interface como ficará para o usuário. Estão previstos componentes básicos para:

  • botão de ação
  • input box
  • combo box
  • list box
  • text area
  • div
  • grid
  • table
  • form
  • recordset
  • label
  • imagem
  • messages

Existem ainda componentes especiais para recursos do ambiente Expresso:

  • seleção de usuários
  • seleção de cidades
  • seleção de estados

Cada componente possui um conjunto de propriedades, sendo algumas comuns a todos os componentes, e outras pertinentes ao seu tipo. Um componente poderá estar associado a uma ação da camada de negócio. Quando esta vinculação ocorrer, a requisição deverá ser do tipo Ajax, e deverá estar indicada uma função javascript que tratará os dados de retorno e um componente que será populado com os dados de retorno. Também está prevista a existência de eventos Javascript para os componentes, sendo que a ferramenta possibilitará o registro do código Javascript a ser executado. Existirá uma biblioteca Js padrão, carregada nativamente pela interface, cuja principal finalidade e tratar o dado XMl retornado pelas chamadas Ajax. A interface utilizará obrigatoriamente o template css definido para o ambiente. Todo componente em que seja possível tradução, terá uma propriedade indicando se a tradução deve ser feita. Caso o desenvolvedor da aplicação inclua javascript na interface, deverá utilizar uma marcação apropriada para indicar as frases a serem traduzidas. No momento da renderização da interface, uma função de tradução será chamada para cada componente/javascript que deva ser traduzido. A interface, portanto, será enviada já traduzida para o cliente.

2 Atores

Administradores da aplicação

3 Pré-condições

Desenvolvedor deve possuir acesso administrativo à aplicação

4 Eventos

  1. Administrador acessa ferramenta do sistema que possibita o desenho da interface.
  2. Administrador desenha a interface, utilizando os componentes disponíveis, e definindo as propriedades para cada componente. {A1}
  3. Administrador informa um nome para a sua interface.
  4. Sistema converte a interface para Xml.
  5. Sistema salva a interface na pasta view/templates da aplicação. {E1}

5 Eventos Alternativos

{A1} Administrador edita uma interface já existente.

6 Tratamento de Erros

{E1} Caso não consiga grava a interface na pasta apropriada, envia mensagem {M1}, se o usuário opta por Cancelar encerra o fluxo, caso opte por Ignorar executa a próxima instrução, se optar por Tentar novamente o sistema deve executar a linha que provocou o erro.

7 Mensagem

{M1} Não foi possivel salvar a interface {Nome da Interface} Ignorar | Tentar Novamente | Cancelar

8 Pós-condições

Arquivo de definição da interface salvo em disco.

9 Regras de Negócio

Propriedades comuns a todos os componentes:

  1. Código da aplicação
  2. Código da ação
  3. Função para tratamento personalizado de dados
  4. Identificador do componente para popular os dados
  5. Função para modificar o componente antes da renderização

10 Telas Envolvidas

Não relevante.

11 Notas

O código da aplicação é relevante, como propriedade de um componente, para ser possível a chamada de ações de outros sistemas.