1. 我們通過 xxx.gwt.xml中的:
??????? <entry-point
???????????????
class='com.huawei.iread.manager.frame.client.ModuleEntryPoint'
/>中進入我們預置的類:ModuleEntryPoint'中的 public void onModuleLoad()方法
??????
?? 2. 主要通過分配器來進行頁面的調(diào)整
???????
??????? 2.1 dispatcher中添加控制器controneller.
??????? 2.2 controneller中注冊各種事件的處理方式
??????? 2.3 跳轉(zhuǎn)到制定的頁面只需要調(diào)用dispatch(注冊的事件)
?
? 詳細代碼如下所示:
? onModuleLoad方法:
?????? Dispatcher.get().addController(new FrameController());??????????????? //分配器添加控制器
????? Dispatcher.get().addController(new WorkController());
????? Dispatcher.get().dispatch(new EventType(FrameEvents.INIT));?????????? //跳轉(zhuǎn)到init事件的處理
? 3.FrameController控制器中注冊事件:
??? //控制持有一個視圖對象 view
???? view = new FrameView(this);
?????????
???? // 給控制器添加注冊的事件
???? registerEventTypes(new EventType(FrameEvents.INIT));
????
??? 控制器擁有一個事件的集合(LIST),及需要覆蓋 public void handleEvent(AppEvent event)方法:
?? 該方法即是處理注冊事件的方法.一般在其中處理頁面跳轉(zhuǎn)
???? @Override
??? public void handleEvent(AppEvent event)
??? {
??????? GWT.log("FrameController event:"+event.getType().getEventCode());
??????? //該方法就是初始化控制器所持有的view的初始化 其中再調(diào)用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());
???????????
?????????? //構(gòu)建畫面
??????????? 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中