2009-02-16 33 views
8

Estoy aprendiendo GWT y he empezado a entenderlo. Estoy en el punto en el que mi código va a ser un desastre de spaghetti, así que voy a volver y tomar en cuenta fragmentos razonables como Composites. El primer problema que encontré fue que mi soporte de herramientas no le dio a la nueva clase compuesta un método initWidget(). Sí incluyó un constructor predeterminado.
Por el momento, simplemente he rellenado mi método initWidget() anulado con una llamada al super(initWidget(w)) Mi proyecto se compila y se ejecuta como se esperaba, aunque siento que me falta algo.GWT Mejores prácticas compuestas

¿Qué debo tener en cuenta al reemplazar a init? Y si hay algo que debo colocar en el constructor. ¿Hay algo más que necesite saber o simplemente se reduce a la antigua Java normal después de esto?

Aclaración: se me ha ocurrido que probablemente haya diferentes respuestas a esta pregunta dependiendo de si tiene la intención de liberar dichas clases Composite como parte de una biblioteca o simplemente como parte de su aplicación independiente. En particular, no tengo ninguna intención en este momento de desarrollar componentes externamente útiles (principalmente porque soy tan verde en esta tecnología particular).

¡Gracias!

Respuesta

7

No estoy seguro de si entiendo lo que está tratando de hacer. Pero para todos los Composites que he escrito, nunca he anulado el método initWidget. Debido a sí mismo compuesto no tiene que ser inicializado con un constructor, es decir, sin necesidad de llamar a super() mis constructores de widgets que se extienden compuesta ser algo como:

public mywidget() { 
    SomePanel p = new SomePanel(); 
    .... 
    initWidget(p); 
} 

Como práctica, la OMI, que se extiende solamente el widget Composite debería llamarlo 'propio' initWidget.

+0

Creo que esta es probablemente la respuesta a mi conjunto de problemas relacionados con widgets personalizados. También me encontraba en una situación en la que las herramientas de interfaz gráfica de usuario no representarían muchos de mis widgets personalizados, lo más probable es que ni mi constructor ni las llamadas de inicio fueran correctas. Lo verificaré cuando llegue a casa ... gracias –

2

"GWT Conference: Best Practices for Building Libraries" da un par de consejos. Usted también debe mirar a la fuente de GWT y en el origen de una de las bibliotecas de GWT (como gwt-ext)

[EDIT] acabo de ver otra opción: suco. De la descripción:

Una micro biblioteca que ayuda a mantener su código de cliente GWT limpio y modular.

+0

Sí, yo también, eliminado el viejo comentario ... –