Open the menu

    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:

    1. generic: este process action handler apenas executa os responses que estão em sua definição. Ele é implementado por GenericProcessActionHandler.
    2. 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:

    3. 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: