2

我是 GWT 的新手,我想知道如何使用 Activity、Place、EventBus 和 UIbinder。我的应用程序的布局是这样的:

小部件 1:

<g:DockLayoutPanel ui:field="myPanel" unit='PX'>
    <g:north size='60'>
        <m:HeaderPanelImpl styleName='{res.style.panelBorder}' ui:field='headerPanel' />
    </g:north>
    <g:south size='60'>
        <g:HTMLPanel styleName='{res.style.panelBorder}' ui:field='footerPanel' />
    </g:south>
    <g:center>
        <g:SimpleLayoutPanel styleName='{res.style.panelBorder}' ui:field='centerPanel' />
    </g:center>
</g:DockLayoutPanel>

在“widget1.headerPanel”中有一个导航,它控制要在“widget1.centerPanel”中显示的小部件。必须在“widget1.centerPanel”中显示的小部件是“widget2.0”和“widget2.1”。

小部件2.0

<g:DockLayoutPanel unit='PX'>
    <g:north size='100'>
        <g:HTMLPanel styleName='{res.style.panelBorder}'>
            <g:Label>TopPanel</g:Label>
        </g:HTMLPanel>
    </g:north>
    <g:west size='200'>
        <g:HTMLPanel styleName='{res.style.panelBorder}'>
            <g:Label>LeftPanel</g:Label>
        </g:HTMLPanel>
    </g:west>
    <g:east size='200'>
        <g:HTMLPanel styleName='{res.style.panelBorder}'>
            <g:Label>RightPanel</g:Label>
        </g:HTMLPanel>
    </g:east>
    <g:center>
        <g:SimpleLayoutPanel styleName='{res.style.panelBorder}' ui:field='centerPanel' />
    </g:center>
</g:DockLayoutPanel>

小部件2.1

<g:HTMLPanel>
    <g:Label>Settings</g:Label>
</g:HTMLPanel>

在“widget2.0.topPanel”中,我有导航控制哪个小部件将显示在“widget2.0.centerPanel”中必须显示在“widget2.centerPanel”中的小部件是“widget3.0”和“widget3.1” ”。

小部件3.0

<g:HTMLPanel>
    <g:Label>Content 1</g:Label>
</g:HTMLPanel>

小部件3.1

<g:HTMLPanel>
    <g:Label>Content 2</g:Label>
</g:HTMLPanel>

我的问题是如何处理“onPlaceChangeEvent”?

例如,如果 url 是 mydomain.com/myapp.html#home:content1
应用程序必须显示小部件 1、小部件 2.0 和小部件 3.0

如果 url 是 mydomain.com/myapp.html#home:content2
应用程序必须显示 widget1、widget 2.0 和 widget 3.1

如果 url 是 mydomain.com/myapp.html#settings
应用程序必须显示 widget1 和 widget 2.1

我想知道两种变体之间:

  1. 创建 2 个 ActivityManager。一个用于widget1.navigation 的活动,一个用于widget2.navigation 的活动。但是如果 widget2 是在 widget 1 之前创建的,会发生什么?
  2. 创建一个创建几个视图的活动。

代码:示例

public class MonthlyViewActivity extends AbstractActivity implements MonthlyView.Presenter {

    private Widget2_0 widget2_0;
    private Widget3_0 widget3_0;

    ......
    public void start(AcceptsOneWidget panel, EventBus eventBus) {
        widget2_0 = new Widget2_0();
        widget3_0 = new Widget3_0();
    ..........
    }
    .... 
}

这种情况下的最佳做法是什么?

4

1 回答 1

0

如果您使用 eclipse 在您的项目中创建一个 MVP 架构,它将创建许多文件,例如活动、位置、一个接口、一个实现类和一个相应的 ui xml 类。您必须创建一个活动映射器和活动历史管理器类。并在您的 on lode 模块中为您的应用程序设置一个默认位置。在任何事件调用的单词之后转到任何位置的方法并提供您的页面的链接,然后根据该值检查获取令牌 amd 的值显示您的小部件您想要显示的内容。

于 2012-11-08T04:00:57.697 回答