Process Actions
Quando o usuário interage com uma interface e solicita uma ação (por exemplo, ao clicar em um botão Ok, ao terminar de editar um conteúdo), é disparado um processo de ação (process action ).
No contexto de interfaces DOUI, cada process action é executado através de um ou mais objetos, chamados handlers, que irão de fato processar a ação solicitada pelo usuário. Cada interface define seus process actions e respectivos handlers.
Um process action é disparado a partir do controle que recebeu a interação (por exemplo, no caso do botão OK, é utilizado o controle lum_button). Os controles da interface enviam seus valores como parâmetros para o process action e, então, cada handler configurado é executado na seqüência definida. Os controles podem desencadear a execução de um ou mais process actions como resposta a uma ação do usuário.
Cada process action handler consiste em uma classe que implementa a interface Java IProcessActionHandler
, normalmente estendendo-se a classe genérica ProcessActionHandler.
Cada handler pode gerar uma resposta, contendo parâmetros a serem utilizados na renderização da interface, chamados de parâmetros de renderização (render parameters). Um exemplo de resposta seria o “doui_closeWindow”, utilizado por interfaces que executam numa janela pop-up (por exemplo, ao adicionar um conteúdo). Após salvar os dados, esta resposta contém um parâmetro de renderização que instrui a interface a renderizar apenas o código Javascript para fechar a janela, no lugar do HTML normal da interface.
A execução dos process actions é realizada pelo ProcessActionContainer que é responsável por instanciar as classes que implementam a interface IProcessActionHandler e terão o seguinte ciclo de vida:
- Execução do método init;
- Execução do método setParameter passando todos os parâmetros definidos;
- Execução do método processAction.
Para facilitar a implementação de um IProcessActionHandler
, pode-se estender a classe ProcessActionHandler
e implementar apenas o método processAction
.
ProcessActionHandler
É uma classe que implementa a interface IProcessActionHandler e executa operações tais como: adicionar, editar e excluir registros. Portanto, são quatro tipos de process action handler:
- generic: este process action handler apenas executa os responses que estão em sua definição. Ele é implementado por
GenericProcessActionHandler
. - tableAddData, tableUpdateData e tableDeleteData: estes process actions handlers são utilizados para adicionar, atualizar e remover um dado da persistência respectivamente. As suas implementações são apropriadas para quando é utilizado o TableSource com sua forma padrão de mapeamento de dados (o source com type=“table”).
As classes que implementam cada um desses process actions handlers são, respectivamente:
- tableAddMultiRow e tableUpdateMultiRow: estes process action handlers são utilizados para adicionar e atualizar. Também é utilizado o TableSource como a forma padrão de mapeamento de dados (o source com type=“table ”).
As classes que implementam cada um desses process actions handlers são, respectivamente: