2010-02-16 15 views
9

Estoy luchando para obtener la estructura correcta de mi aplicación GWT. (¿Soy el único que descubre que el código GWT termina muy desordenado e ilegible fácilmente?)GWT - ¿Múltiples módulos?

Se supone que la aplicación es una interfaz para un par de áreas distintas , digamos área A y B En este momento estoy tratando de implementarlo como una interfaz con dos pestañas, una que lo lleva al área A y otra que lo lleva al área B. No veo cómo puedo tener una buena separación del código necesario para las dos áreas diferentes de esta manera - aplicando el patrón MVP (que en realidad no encuentro claro cómo hacerlo en el caso de una interfaz jerárquica como mis pestañas) termino teniendo el área A y el código de área B para instancia tanto client.view como client.presenter paquete:

 
src 
- main 
    - java 
     - client 
      + event 
      - presenter 
       + a_stuff 
       + b_stuff 
      - view 
       + a_stuff 
       + b_stuff 
: 

no he podido encontrar ningún buenos ejemplos de cómo y cuándo usar múltiples módulos y me pregunto si mi caso podría ser uno que múltiples módulos tendría sentido? ¿Cómo se estructuraría el código en ese caso?

Quizás es relevante mencionar que estoy usando la última GWT, Maven e IntelliJ IDEA.

sugerencias serán bienvenidos, gracias mucho de Stine :)

Respuesta

0

me sugieren algo como esto:

src 
- main 
    - java 
     + a_stuff 
      -client 
      - presenter 
      - view 
      - event 
     + b_stuff 
      -client 
      - presenter 
      - view 
      - event 
+0

Lo siento si soy un poco lento aquí! ¿Pero eso resulta en dos módulos? – Stine

+2

No, para eso necesita dos archivos de módulo: http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml - consulte la sección "Dividir el código en varios módulos" –

+0

Sí, sé que cada módulo toma un gwt.xml :) Lo que quise decir (supongo) fue si el código se puede poner en la estructura anterior y aún ser parte del mismo módulo. Si implica dos módulos, podría tener un pequeño problema para entender qué sucede con todos los html, css e imágenes que tengo en mi carpeta webapps. ¡Dios mío, me encantaría ver un ejemplo completo! > D bueno, supongo que debería empezar echando un vistazo a la sección que sugieres, ¡por alguna razón me he perdido! ;) Gracias .. – Stine

2

Considérese declarando múltiples elementos de origen en su archivo yourmodule.gwt.xml Si no se declaran elementos de origen, entonces por defecto gwt asume una declaración de "cliente". Ver más abajo:

<!--Default if not declared--> 
<source path="client"/> 

puede declarar múltiples ubicaciones de origen como esto:

<source path="a_stuff"/> 
<source path="b_stuff"/> 

Ahora todo por debajo de cada fuente se compilará. "Cliente" es solo el predeterminado, no la regla.

10

Aquí es un ejemplo más completo que me ayudó a conseguir dos módulos de trabajo: http://ashtoncthomas.blogspot.com/2011/02/multiple-modules-in-google-web-toolkit.html

Se utiliza la estructura:

src 
- main 
    - java 
     a_stuff.gwt.xml 
     b_stuff.gwt.xml 
     - client 
       - shared_stuff 
       - a_stuff 
        - presenter 
        - view 
       - b_stuff 
        - presenter 
        - view 

Si quieres dos páginas HTML - uno para cada módulo (como yo lo hicieron), entonces usted necesita para crear dos páginas:

war 
    page_a.html 
    page_b.html 

y definir sus puntos de entrada en los dos archivos .gwt.xml, por ejemplo (para a_stu ff.gwt.xml):

<module rename-to='module_a'> 

    ... your stuff here ... 

    <entry-point class="main.java.client.a_stuff.A_entry_point"></entry-point> 
</module> 

Dónde A_entry_point es una clase que implementa EntryPoint.

Luego, en sus páginas HTML, sólo se incluyen el módulo que desee (por ejemplo, en page_a.html):

<script type="text/javascript" language="javascript" 
     src="module_a/module_a.nocache.js"></script> 

También, si estás usando Eclipse, a continuación, al hacer clic en "GWT Compile Project ", le pedirá que" Agregue una clase de punto de entrada ", por lo que debe hacer clic en el botón" Agregar "en la sección" Módulos de punto de entrada "de la ventana GWT Compile y agregar los módulos de punto de entrada (a_stuff.gwt.xml y b_stuff.gwt.xml). Puede agregar/eliminar módulos de puntos de entrada de aquí según sea necesario, para elegir qué módulos compilar.

Lo anterior funcionó para mí. Lo usé para hacer dos versiones diferentes de mi sitio web, cada una en un módulo por separado.

+1

Hola, pero ¿qué pasa con el archivo WAR/WEB-INF/web.xml? Su es una "" ... ¿por qué debería elegir una página predeterminada? ¿Este web.xml necesita tener el servlet de la aplicación Admin y User? – nzaero

Cuestiones relacionadas