我是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”。
WIDGET2.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>
Widget2.1
<g:HTMLPanel>
<g:Label>Settings</g:Label>
</g:HTMLPanel>
在“widget2.0.topPanel”中,我有导航控制哪个小部件将显示在“widget2.0.centerPanel”中 必须在“widget2.centerPanel”中显示的小部件是“widget3.0”和“widget3.1”。
Widget3.0
<g:HTMLPanel>
<g:Label>Content 1</g:Label>
</g:HTMLPanel>
Widget3.1
<g:HTMLPanel>
<g:Label>Content 2</g:Label>
</g:HTMLPanel>
我的问题是如何处理“onPlaceChangeEvent”?
例如,url是mydomain.com/myapp.html#home:content1
该应用必须显示小部件1,小部件2.0和小部件3.0
如果网址是mydomain.com/myapp.html#home:content2
该应用必须显示widget1,widget 2.0和widget 3.1
如果网址是mydomain.com/myapp.html#settings
该应用必须显示widget1和widget 2.1
我想知道两种变体:
代码:例如
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();
..........
}
....
}
此案例的最佳做法是什么?
答案 0 :(得分:0)
如果您正在使用eclipse在您的项目中创建MVP架构,它将创建许多文件,如活动,地点,一个接口,一个实现类和相应的ui xml类。您必须创建活动映射器和活动历史记录管理器类。并在您的on lode模块中为您的应用程序设置一个默认位置。在任何事件调用的单词后,转到任何地方的方法并提供您的页面的链接,并检查获取令牌amd的值基于该值显示您的小部件您想要显示的内容。