GWT - 如何将网站的层次结构映射到活动/地点/小部件?

时间:2011-03-03 07:51:46

标签: gwt architecture

我是新来的,在GWT,我的英语不太好,所以请原谅。 我需要使用GWT创建一个网站。该网站具有层次结构:主要全局标题,以及几个按钮。每个按钮打开应用程序的新部分,该部分有自己的子选项卡。每个子标签都假设是可导航的。例如:

主要表格

- >申请问题

--->喜好 --->创造一些东西 --->编辑内容

- >施用

--->用户管理 - >政策

现在,我想了解使用GWT的最佳选择。 我想到了两个选择: 1.将在入口点主要活动。在它的启动函数中,我们将为每个子菜单创建ActivityManager(= sub tab = child)。每个子菜单将为其每个子菜单创建活动管理器,依此类推。 我们将为每个活动经理和火灾变更地点事件设置一个显示。

问题是我需要管理这些地方(所有地方应该去主要活动,应该采用它的参数并委托给子地点等) 否则,当用户复制并粘贴网址时,只会启动子活动,并且父活动不会被初始化。

  1. 我可以创建WOP的OOP层次结构,因此 - 层次结构树中的每个叶子都会有一个活动。还将有匹配的widges层次结构。每个叶子窗口小部件都包含它自己的组件及其所有父组件(例如 - 表单的主要标题) 在此选项中,只有一个活动活动。
  2. 什么是最佳选择?你将如何实现层次结构?

    感谢....

1 个答案:

答案 0 :(得分:0)

菜单层次结构的最佳选择是使用嵌套的TabPanel小部件。这些可以根据您的需要尽可能深入,是构建菜单的绝佳选择。

我看到你也想管理两件事:

  1. 当用户输入网址时,您希望他登陆正确的标签。
  2. 当用户在选项卡之间导航时,您希望URL根据他的去向而改变。
  3. 将用户置于正确的选项卡上

    对于#1,您需要使用方法onModuleLoad管理到达您应用的用户。请参阅此段代码以选择正确的选项卡。

    public void onModuleLoad() {
        tabPanel = new TabPanel();
    
        tabPanel.add(new HTML("<h1>Page 0 Content: Llamas</h1>"), " Page 0 ");
        tabPanel.add(new HTML("<h1>Page 1 Content: Alpacas</h1>"), " Page 1 ");
        tabPanel.add(new HTML("<h1>Page 2 Content: Camels</h1>"), " Page 2 ");
    
        String hash = Window.Location.getHash();
        if (hash != null && hash.startsWith("#page")) {
            int tabIndex = Integer.parseInt(hash.substring(5));
            tabPanel.selectTab(tabIndex);
        } else {
            tabPanel.selectTab(0);
        }
        RootPanel.get().add(tabPanel);
    }
    

    此代码

    管理导航历史记录

    this page in GWT documentation。上面的代码来自此页面,但在我的示例中,我删除了历史记录管理。

    在这两种情况下,关键概念是根据网址哈希找到正确的窗口小部件并选择它。