2009-05-02 13 views
5

¿Es posible crear widgets/portlets en GWT que se pueden cargar dinámicamente y agregar a una aplicación web GWT, y donde los widgets GWT pueden residir en archivos de guerra separados?¿Es posible crear widgets/portlets GWT dinámicamente conectables en archivos war separados?

Para aclarar mi pregunta: Los portales compatibles con JSR168/JSR286 hacen posible crear portlets en proyectos separados (archivos de guerra) y cargarlos dinámicamente en una página de portal. Supongamos que quiere hacer algo similar en una aplicación GWT. Así que supongamos que creamos un portal usando solo GWT para la GUI (sin JSP o similar) y queremos agregar dinámicamente un "portlet" escrito en GWT puro. ¿Sería eso posible?

Me imagino que podría hacerse utilizando un IFrame, pero sería mejor si un widget/portlet GWT fuera parte de la aplicación de "portal" de host de GWT y compartiera sus hojas de estilo y otros recursos.

Respuesta

2

Me imagino que un "portlet de GWT" no es más que un widget que usted mismo escribe (y quizás implemente una interfaz común).

Lo difícil es permitir dinámicamente que una aplicación gwt precompilada incluya otro componente gwt (el portlet en este caso) sin compilar de nuevo con la fuente (que es lo que parece implicar la pregunta).

+0

Gracias. Esa última parte "incluir dinámicamente" es exactamente lo que quiero. Supongamos que tiene una aplicación web que se ajusta al 80% de las necesidades de sus usuarios, pero el 20% de los usuarios tiene necesidades especiales. Entonces sería bueno incluir componentes personalizados dinámicamente solo para ellos. – Roy

+1

que, por el momento, no se puede hacer (al menos, no que yo sepa, ¡me encantaría que me corrigieran!). GWT es una tarea de tiempo de compilación, donde tendrá que tener el código fuente para todo el módulo GWT y las dependencias para que la compilación funcione. Lo que quiere es, supongo, que permita a un usuario cargar un complemento/algo y hacer que se convierta en parte de la aplicación. No es imposible hacerlo, solo requiere mucho trabajo, y realmente no aprovecharás GWT (esencialmente, estarías escribiendo un contenedor "portlet"). – Chii

1

Yo también he estado investigando esto, especialmente después de ver la demostración de Wave. Por lo que puedo decir, el enfoque que ha tomado el equipo de ola es usar la API de Google api o una variación de la aplicación de gadget. Google también tiene un tutorial sobre cómo escribir un gadget en GWT. Imaginaría que usaría una API basada en eventos donde se pasan objetos JSO entre el gadget y la aplicación GWT. Tenga en cuenta que esto también puede presentar problemas con XSS si provienen de diferentes dominios. Pienso en esto como una aplicación similar de un swf dinámicamente en flash. El método de evento es similar a trabajar de manera segura con archivos swf cargados dinámicamente a través del sitio.

0

Todavía soy muy nuevo en GWT, pero basándome en lo que he leído, puedo decirte que debes seguir un MVP de arquitectura con un controlador de aplicación que "conecta" y "reproduce" dinámicamente lo que deseas enviar utilizando metadatos que deben provenir de la capa del modelo ... Algo así como una "meta-aplicación"

Cuestiones relacionadas