1. 我们通过 xxx.gwt.xml中的:
<entry-point
class='com.huawei.iread.manager.frame.client.ModuleEntryPoint'
/>中进入我们预置的类:ModuleEntryPoint'中的 public void onModuleLoad()方法
2. 主要通过分配器来进行页面的调整
2.1 dispatcher中添加控制器controneller.
2.2 controneller中注册各种事件的处理方式
2.3 跳转到制定的页面只需要调用dispatch(注册的事件)
详细代码如下所示:
onModuleLoad方法:
Dispatcher.get().addController(new FrameController()); //分配器添加控制器
Dispatcher.get().addController(new WorkController());
Dispatcher.get().dispatch(new EventType(FrameEvents.INIT)); //跳转到init事件的处理
3.FrameController控制器中注册事件:
//控制持有一个视图对象 view
view = new FrameView(this);
// 给控制器添加注册的事件
registerEventTypes(new EventType(FrameEvents.INIT));
控制器拥有一个事件的集合(LIST),及需要覆盖 public void handleEvent(AppEvent event)方法:
该方法即是处理注册事件的方法.一般在其中处理页面跳转
@Override
public void handleEvent(AppEvent event)
{
GWT.log("FrameController event:"+event.getType().getEventCode());
//该方法就是初始化控制器所持有的view的初始化 其中再调用handleEvent方法
forwardToView(view, event);
}
4.view 对象
4.1持有一个viewPoint对象,该对象继承之LayoutContainer,即属于容器类对象
@Override
protected void handleEvent(AppEvent event)
{
GWT.log("frame view code:"+event.getType().getEventCode());
if (event.getType().getEventCode() == FrameEvents.INIT)
{
viewPort = new Viewport();
viewPort.setLayout(new BorderLayout());
//构建画面
Registry.register("viewport", viewPort);
Registry.register("north", north);
Registry.register("south", south);
Registry.register("west", west);
Registry.register("center", center);
viewPort.repaint();
//添加容器
RootPanel.get().add(viewPort);
}
}
4.2持有一个控制器对象crontroller
5 Registry对象
维护一个map,将一些公用的容器添加到application级别的map中