The module XML file
位置:src/com.hellomvp/HelloMVP.gwt.xml
内容:
模块:helloMVP
继承User
继承Standard theme
继承Activity
:Presenter of MVP,依赖于Place模块,本质是一个widget上的事件处理引擎。
继承Place
:View States of MVP
entry-point:com.hellomvp.client.HelloMVP
replace-with
:对com.hellomvp.client.ClientFactory接口采用com.hellomvp.client.ClientFactoryImpl的默认注入
源client
源shared
The Host Page
位置:war/hellomvp.html
内容:标准内容
meta tag
css: hellomvp
.css
js: helloMVP
/helloMVP
.nocache.js
The Application Style Sheet
位置:war/hellomvp.css
内容:...
The Entry Point Class
位置:src/包.client/项目名.java
内容:
- private属性:一个最上层组件组件--SimplePanel appWidget
,一个初始的ui状态--Place defaultPlace
;
- onModuleLoad():
- 通过GWT建立ClientFactory
对象,该工厂是对整个client端一系列对象的创建负责的抽象工厂(Abstract factory pattern
),所建对象包括eventBus,placeController,helloView,goodbyeView;ClientFactory接口中暴露了这些client对象的getter,ClientFactoryImpl里实现了对这些对象的new。
- 使用clientFactory对象作为参数,new出一个AppActivityMapper
对象。
- 使用activityMapper对象和eventBus对象作为参数,new出一个ActivityManager
对象;ActivityManager类是gwt的acitvity模块提供的框架类,它在从事件总线上捕获PlaceChangeEvent或者PlaceChangeRequestEvent后,将根据活动Mapper中提供的place与activity的关系,找到相应的活动来初始化之,并在widget准备好之后调用它的start方法。
-
使用
appWidget
作为参数调用activityManager的setDisplay
方法,该方法将传入的widget作为main widget以及event的接受者。
-
通过GWT建立AppPlaceHistoryMapper
对象。
-
使用historyMapper对象作为参数,new出一个PlaceHistoryHandler
对象;PlaceHistoryHandler类是gwt的Place模块可提供的框架类,由它来处理浏览器的前进后退以及bookmark等操作。
-
使用
placeControler,eventBus,
defaultPlace
作为参数,调用
historyHandler的register
方法,该方法初始化整个
historyHandler。
-
将
appWidget
加入到RootPanel
中,RootPanel类是gwt的user模块提供的顶层容器类。
-
调用
historyHandler的handleCurrentHistory
方法,该方法使得app进入初始ui状态,即默认place
The MVP Configuration
位置:src/com.hellomvp.client.mvp
内容:
-
ActivityMapper
<|--
AppActivityMapper
:实现了Activity getActivity(Place place)
,从而完成从Place到Activity的单向映射配置。
-
PlaceHistoryMapper
<|--
AppPlaceHistoryMapper
: 继承gwt提供的框架接口,该接口定义了从Token到Place的双向映射。继承之后不用实现具体映射方法,可以通过@WithTokenizers
来实现映射配置。
The Place
位置:src/com.hellomvp.client.place
内容:
-
Place
<|--
GoodbyePlace
:
- 包含一个goodbyeName
属性以及它的getter方法,属性通常用来保存ui的状态值;
- 一个以String类型的token为参数的构造函数,token通常包含所有属性的值;
- 一个Tokenizer内部类,该类实现了PlaceTokenizer
<GoodbyePlace
>接口,即实现了从Place到Token的双向映射。该Tokenizer内部类会在AppPlaceHistoryMapper
接口中被注册到映射配置中。
-
Place
<|--HelloPlace
:
- 包含一个helloName
属性以及它的getter方法,属性通常用来保存ui的状态值;
- 一个以String类型的token为参数的构造函数,token通常包含所有属性的值;
- 一个Tokenizer内部类,该类实现了PlaceTokenizer
<HelloPlace
>接口,即实现了从Place到Token的双向映射。该Tokenizer内部类会在AppPlaceHistoryMapper
接口中被注册到映射配置中。
The Activity
位置:src/com.hellomvp.client.activity
内容:
-
AbstractActivity
<|--GoodbyeActivity
:一个简单的activity,对应的GoodbyeView
中不存在需要它实现的presenter,所以它只要负责start时对view的展现,不涉及presenter
- 提供一个由GoodbyePlace
和ClientFactory
作为参数的构造函数,这样可以从place得到view的当前状态。
- 实现
AbstractActivity
框架类中声明的start
方法,该方法中对
GoodbyeView
对象会进行一系列操作。
-
AbstractActivity
<|--HelloActivity
: 同时需要实现HelloView.Presenter接口中定义的业务方法
- 提供一个由HelloPlace
和ClientFactory
作为参数的构造函数,这样可以从place得到view的当前状态。
- 实现
AbstractActivity
框架类中声明的start
方法,该方法中对
HelloView
对象会进行一系列操作,包括把this作为presenter参数赋值给helloView.
-
覆盖了
AbstractActivity
框架类中声明的mayStop
方法,增加了在当前activity结束时给出提示的功能。
- 实现HelloView.Presenter接口中定义的goto(Place place)
方法。
The UI
位置:src/com.hellomvp.client.ui
内容:
-
GoodbyeView<|--GoodbyeViewImpl
:一个简单的view,SimplePanel里包含一个html span,暴露的业务方法(声明在interface里)的实现是为span设置innerText值;
-
HelloView<|--HelloViewImpl
: 一个使用Presenter和uibind(通过ann来组装ui)的view,接口里定义了span的设置方法外加presenter的设置方法,以及presenter的接口定义:
- 2个@UiField
属性:一个SpanElement
和一个Anchor
- 1个绑定到Anchor
的@UiHandler
方法:调用prensenter.goto
方法。
- HelloViewImpl.ui.xml:一个以ui:UiBinder为root element的xml文件,是对@UiField组件的定义
UI是将View和Presenter进行组合,上述View和Presenter接口都不需要继承gwt的特定接口。
分享到:
相关推荐
GWT MVP Development with Activities and Places. Views,ClientFactory,Activities,Places,PlaceHistoryMapper, ActivityMapper
gwt 练习gwt 练习gwt 练习gwt 练习
gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2
EXT-GWT2.0.1+API+DOC gwtdesigner Gwt-Ext基础-中级-进阶 GWT快速开发 GWT入门 GWT中文教程
GWT_2BEXT_2BSTRUTS2完整实例 学习gwt非常有用,希望对你有所帮助
fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具
gwt 入门,是你开始学习gwt的大道 安装之后的目录结构为: C:\程序开发\Java\gwt-windows-1.4.59 doc(文档目录,开发文档和Java API文档) samples(示例代码目录,非常有名的KitchenSink示例代码即在此目录中)...
elemento, 为 GWT Elemental2类型安全构建器HTML模板和其他 ElementoElemento简化了与 GWT Elemental2的工作。 简言之,Elemento将以下功能引入到 table:类型安全生成器和事件处理程序HTML模板插件,支持表达式其他...
GWT软件包windows和mac版本 2
Gwt中文手册,GWt入门Gwt中文手册,GWt入门Gwt中文手册,GWt入门
2. Hello GWT 3. 模块 4. JSNI 5. 在GWT中使用XML 6. GWT控件详解 7. 使用GWT控件 8. GWT-RPC 9. Ext GWT 10. (实战)俄罗斯方块游戏 11. (实战)费用申请审批流程 12. GWT与Flex整合 13. 图片缓存 CSS Sprite 14. ...
2、 变量名:TOMCAT_HOME 变量值:D:\project tools\Tomcat 5.5 变量注:这个变量指定TOMCAT的存放位置 3、 变量名:MAVEN_HOME 变量值:D:\project tools\maven-2.0.7 变量注:这个变量指定MAVEN的存放路径 4、...
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 Ajax技术是当前开发web应用的非常热门的技术,也是Web...
一个示例 展示 struts2 和gwt 的结合 gwt struts2 struts2gwtplugin-0.2.1.jar
GWT开发者手册_v2GWT开发者手册_v2GWT开发者手册_v2GWT开发者手册_v2
很好的资源,在这边分享下,提供给想要寻找GWT资源的兄弟姐妹们 如果哪位兄弟有好的资源不要忘了分享啊
官网gwt SDK ,通过java 开发前端页面,并且自动解决页面兼容及国际化问题,以MVP为主开发模式
gwt-2.7.0.part2.rar 官网下载最新版,提供给大家使用
用Maven创建GWT_SmartGWT项目,从而可利用Maven进行管理,以及持续集成。
smartgwt最新版本GWT的DEMO 谷歌web工具箱实例