Controles

Top  Previous  Next

Controles são responsáveis pela interação com o usuário e geração de front-end para interface de serviço.

Para implementar controles, é necessário implementar IControl ou alguma interface que a estende. Controles podem armazenar um valor (IDataControl), e também podem estar vinculados a um campo de um source (IDataBoundControl). Há controles cuja função é especificamente validar dados entrados pelo usuário (IValidatorControl).

Ao invés de implementar diretamente alguma dessas interfaces citadas, pode-se estender uma de suas implementações, o que facilita a criação de um controle. Por exemplo, classes como Control, DataControl, DataBoundControl e ValidatorControl podem ser estendidas. Dessa forma, toda a lógica genérica do controle já estará implementada e o desenvolvedor pode focar apenas nos aspectos específicos do controle.

Portanto, os controles podem ser divididos em:

  Control: Controles de layout apenas;

  Data Control: Controles de layout, mas também são responsáveis pela persistência de dados trocados entre o cliente (browser) e o servidor;

Data Bound Control: Controles que acessam um ou mais sources e disparam processes actions. Os controles de formulário fazem parte desta classificação, pois manipulam dados.

As etapas principais no ciclo de vida de um controle são:

Execução do método init;
Execução do método buildSubControls;
Execução do método loadFromRequest caso o IDataControl esteja implementado,
Execução do método serverValidate caso o IValidatorControl seja implementado e a requisição for um process action;
Execução do método setRenderData se for uma requisição de renderização;
Execução do método setProcessActionHandlerParameters se for uma requisição de process action.

Além disso, na implementação em DataBoundControl, o controle se registra como um observador de seu source. Sempre quando os dados do source são carregados, essa implementação executa o método setValueFromSource, que atribui ao controle o valor que está no campo a que ele está associado. Um override nesse método permite a customização de como o valor de um controle é lido do source.

Quando o método setRenderData de um controle é executado, o controle deve acrescentar em seu XML os dados que deseja disponibilizar para o XSL, que é responsável por gerar o código HTML que será renderizado no navegador.

Outros XSLs podem ser criados, para que o controle possa ser renderizado com diferentes designs, enquanto que a implementação da funcionalidade do controle continua a mesma, implementada na classe Java.


Lumis Portal 8.2.2.160411
Copyright © 2006â??2016 Lumis EIP Tecnologia da Informação LTDA. Todos os direitos reservados.