0

我打算构建一个 Web 应用程序,用户可以每周输入他们的时间,并且一直在努力理解 GWT 中单个页面的概念,该页面根据用户操作用数据重新绘制。在这个网站和谷歌上进行了大量研究之后,我找到了一个我想效仿但不知道如何在 GWT 中进行的链接。尽管他们的源代码可用,但我认为它并不完整。我从这个链接中得到了一些想法——Google Web Toolkit (GWT) 中的多页教程,但又不知道如何将它实现到工作版本中。一个小的工作样本会很好地帮助我理解和开始。

谁能指导我如何通过下面的链接实现屏幕的外观和感觉以及如何使用来自服务器的数据重新绘制内容?我是否需要将所有逻辑放在一个 EntryPoint 类中?我想在左侧导航面板中有超链接并在右侧面板中显示内容。经过几个小时的研究,我似乎完全迷失了方向。

http://gwt.google.com/samples/Showcase/Showcase.html#!CwHyperlink

非常感谢你的帮助。

问候,索努。

4

2 回答 2

0

单页应用布局其实很容易实现。

您要做的第一件事是使用 GWT布局面板定义一般布局。对于您的布局,我建议使用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));

在这里,导航面板的宽度将被固定,而内容将占据剩余空间。您必须传递对内容区域进行切换的按钮(或其他一些小部件)的引用,将按钮添加到导航区域等等。

把它放到一个类中,例如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;
    }
}

现在,在你的EntryPoint课堂上,调用工厂:

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

这个例子应该让你有个想法。其他选择是使用像 Guice 或命令模式这样的 DI 框架。

于 2011-06-10T15:08:14.233 回答
0

您的问题混淆了几个概念。如果您希望用户单击看起来像链接的东西,并且作为响应,应用程序会向服务器发送请求并显示一个看起来与他们所在的页面不同的页面,并且该页面具有刚刚来自的新数据服务器,那么您需要一个完全正常的锚点或表单提交按钮。您不需要 GWT 提供任何特殊或奇怪的东西。

您引用的展示示例允许用户单击看起来像链接的东西,并且看起来它加载了一个新页面,甚至可以让后退按钮按预期工作,但实际上并没有点击服务器来获取新页面或新数据。

于 2011-06-10T15:13:35.867 回答