Pregunta

Tengo la intención de crear una aplicación web donde los usuarios puedan ingresar su tiempo cada semana y he estado luchando por entender el concepto de una sola página en GWT que se repintan con los datos dependiendo de las acciones del usuario. Después de investigar mucho en este sitio y Google, encontré un enlace que me gustaría emular pero no sé cómo hacerlo en GWT. Aunque su código fuente está disponible, no creo que esté completo y completo. Tengo alguna idea de este enlace - Tutorial de múltiples páginas en Google Web Toolkit (GWT) Pero nuevamente, no sé cómo implementarlo en una versión de trabajo. Una pequeña muestra de trabajo sería genial para ayudarme a comprender y comenzar.

¿Alguien podría guiarme sobre cómo lograr la apariencia de la pantalla con el siguiente enlace y cómo el contenido puede repintarse con los datos del servidor? ¿Tendría que poner toda la lógica en una clase de Entrypoint? Me gustaría tener los hipervínculos en el panel de navegación izquierdo y mostrar el contenido en el panel derecho. Parece que estoy completamente perdido después de unas horas de investigación.

http://gwt.google.com/samples/showcase/showcase.html#!cwhyperlink

Muchas gracias por tu ayuda.

Saludos, sonu.

¿Fue útil?

Solución

Un diseño de aplicación de una sola página es en realidad bastante fácil de lograr.

Lo primero que haces es definir el diseño general, usando GWTS paneles de diseño. Para su diseño, sugeriría usar un DockLayoutPanel.

Content content = new Content();
Button switchContent = new Button(content);
Navigation navigation = new Navigation();
navigation.add(switchContent);

DockLayoutPanel pageLayout = new DockLayoutPanel(Unit.EM);
p.addWest(new HTML(navigation), 7.5);
p.add(new HTML(content));

Aquí, el ancho del panel de navegación se solucionará, mientras que el contenido tomará el espacio restante. Debe pasar una referencia del botón (o algún otro widget) que hace el interruptor del área de contenido, agregue el botón al área de navegación, y así sucesivamente.

Pon esto en una clase, por ejemplo, llamado MasterPageFactory:

public class MasterPageFactory {
    private MasterPageFactory() {}

    public static MasterPage newInstance() {

       Content content = new Content();
       Button switchContent = new Button(content);
       Navigation navigation = new Navigation();
       navigation.add(switchContent);

       DockLayoutPanel masterPage = new DockLayoutPanel(Unit.EM);
       masterPage.addWest(new HTML(navigation), 7.5);
       masterPage.add(new HTML(content));

       return masterPage;
    }
}

Ahora, en tu EntryPoint clase, llame a la fábrica:

RootLayoutPanel.get().add(MasterPageFactory.newInstance());

Este ejemplo debería darle una idea. Otras opciones serían usar un marco DI como Guice o el patrón de comando.

Otros consejos

Su pregunta es mezclar un par de conceptos. Si desea que el usuario haga clic en algo que parece un enlace, y en Reponse la aplicación envía una solicitud al servidor y muestra una página que se ve diferente a la página en la que se encuentran, y esa página tiene datos nuevos de los que acaba de provocar el servidor, luego desea un botón de envío o de envío perfectamente normal. No necesitas nada especial o extraño de GWT.

El ejemplo de exhibición que hizo referencia le permite al usuario hacer clic en algo que parece un enlace, y parece que carga una nueva página, incluso hasta el punto de dejar que el botón de retroceso funcione como se esperaba, pero en realidad no presiona el servidor para obtener una nueva página o nuevos datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top