DOUI
Esta seção tem como objetivo explicar os conceitos envolvidos no desenvolvimento de serviços do tipo DOUI , auxiliando o desenvolvedor a customizar e estender serviços utilizando as facilidades do DOUI Framework .
O DOUI é um framework para construção de interfaces com controles especializados que manipulam dados. Os controles são associados a um source e seus valores são obtidos através dos fields . Sempre que é disparada uma ação, os controles injetam seus valores como parâmetros para seu processamento.
Serviços implementados sobre o DOUI devem usar ou estender a classe DouiService
, referenciada pelo tipo lum_doui através de mapeamento.
Portanto, um serviço pode ser definido como um serviço DOUI colocando no nó service
o atributo type com valor lum_doui
.
Exemplo:
DouiServiceInterface
Interfaces implementadas sobre o DOUI framework devem usar ou estender a classe DouiServiceInterface
, também referenciada pelo tipo lum_doui através de mapeamento.
Portanto, uma interface pode ser definida como uma interface DOUI colocando no nó interface o atributo type com valor lum_doui.
Para cada interface DOUI pode haver no arquivo servidefinition.xml um bloco que define essa interface. Caso o bloco não esteja presente, uma estrutura default é utilizada.
O DouiServiceInterface
efetua as chamadas necessárias ao doui framework, para que a interface possa ser definida usando as facilidades que o framework oferece.
Além do tipo lum_doui
, há outros tipos de interfaces DOUI que possuem maiores especializações. Todas elas estendem a classe DouiServiceInterface
. A estrutura default da interface (aquela usada se a interface não é definida no douidefinition.xm) também varia conforme o tipo. Abaixo seguem as descrições de cada tipo:
- lum_douiList:Esta interface é utilizada para apresentar uma lista de dados. A classe default utilizada para esse tipo é
DouiListServiceInterface
; - lum_douiQuickList: Esta interface é utilizada para apresentar uma lista rápida, na qual são exibidos apenas alguns dados um link para visualizar todos os dados. Esse link vai para a página com a interface Lista. A classe default utilizada para esse tipo é
DouiQuickListServiceInterface
; - lum_douiDetails: Esta é uma interface de detalhes e é utilizada para apresentar os detalhes sobre um dado específico. Geralmente interface Lista possue link que leva para a página com essa interface, possibilitando visualização em maiores detalhes sobre um dado. A classe default utilizada para esse tipo é
DouiDetailsServiceInterface
; - lum_douiAdministrationList: Esta é uma interface de administração. Nesta interface os dados são listados e o usuário pode adicionar dados, editá-los ou excluí-los. Sendo que a adição e edição de dados são feitas por outras interfaces chamadas por esta. A classe default utilizada para esse tipo é
DouiAdministrationListServiceInterface
; - lum_douiAdministrationAddPropertyPage: Esta interface é utilizada para adicionar um dado e é chamada a partir da interface de Administração, ao clicar em “Adicionar”. A classe default utilizada para esse tipo é
DouiAdministrationAddPropertyPageServiceInterface
; - lum_douiAdministrationEditPropertyPage: Esta interface é utilizada para editar um dado e é chamada a partir da interface que Administração, ao clicar em “Editar”. A classe default utilizada para esse tipo é
DouiAdministrationEditPropertyPageServiceInterface
; - lum_douiAdministrationPropertyPage: Esta interface é utilizada para propriedade genérica. As interfaces de adicionar e editar citadas acima são extensões desta interface. A classe default utilizada para esse tipo é
DouiAdministrationPropertyPageServiceInterface
; - lum_douiAdministrationEmbeddedAddPropertyPage: Esta interface é utilizada para adicionar um dado, mas diferentemente de
lum_douiAdministrationAddPropertyPage
, ela deve ser instanciada em uma página ao invés de ser utilizada para um pop-up. Ela não possui o botão de cancelar, e após o usuário clicar OK, essa interface renderiza uma mensagem indicando que o dado foi adicionado. A classe default utilizada para esse tipo éDouiAdministrationEmbeddedAddPropertyPageServiceInterface
.