Olá pessoal,
Estou desenvolvendo um projeto no GWT e surgiu uma dúvida quanto a arquitetura que gostaria de validar com vocês e se possível também receber algum conselho.
na parte da interface a arquitetura está assim:
[URL=http://imageshack.us]
[/URL]
[URL=http://g.imageshack.us/img266/schema1al6.jpg/1/]
[/URL]
Explicando: GeneralComponents estende de um Panel da class do gwt, nele é incluída algumas configurações genéricas, que devem ser utilizadas em todas as classes que estendem dele.
então, na classe filha de GeneralComponents que também é um Panel, todos os “Widgets” tipo textFields etc são encapsulados, semelhante ao que o Visual Editor no eclipse faz, um Get e um Set para todos os Widgets internos, labels, textfields etc… e enquanto monta-se os panels internos faz-se a chamada do widget pelo get dele, exemplo:
public TextField getTxtName(){
if (this.txtName == null){
this.txtName = new TextField("Nome");
this.txtName.setWidth(350);
}
return this.txtName;
}
Depois que esses panels são instanciados eles são usados por uma class principal como o MainPanel que teria um tabPanel responsável por carregar esses Panels, como o “CustomersGUI” por exemplo… e essas classes são singletos (CustomersGUI etc…)
O que vocês acham? dessa forma eu tenho centralizado em um único método todas as propriedades iniciais configuradas para aquele widget específico… sem espalhar o mesmo pelo código, isso está correto?
Outra dúvida é quanto aos eventos… eu criei um singleton para cada evento e coloquei eles em um pacote separado, os singletons dos eventos simplesmente tem os Getters que retorna o evento específico, da classe de interface (gui) então eu adiciono esse evento aos widgets no momento da criação, mais ou menos assim:
segue uma imagem:
[URL=http://imageshack.us]
[/URL]
Então, eu procurei na net e não encontrei nenhum lugar que falasse sobre arquitetura no GWT, estou desenvolvendo essa com base na minha experiência em swing, mas gostaria de saber de vocês, qual seria a melhor arquitetura? para separar os eventos, os services, construir a parte gráfica etc…
Vlw pessoal,
um forte abraço.