国内第一本基于 GWT 2.0 的经典著作,4 大专业社区联袂推荐,权威性毋庸置疑!
本书内容全面,不仅详细介绍了 GWT 的主要模块和控件、GWT 与 JavaScript 对象的交互、在 GWT 中使用 XML、开发自定义 GWT 控件、GWT-RPC 和 Ext GWT 等必备的基础知识,而且还深入讲解了 GWT 与 Flex整合、图片缓存、本地化、GWT 动画、历史管理、延时/等待/分片执行等高级知识;本书注重实战,所有知识点都配有精心设计的范例,尤为值得一提的是,还以迭代的方式重现了经典的俄罗斯方块游戏和一个完整的报销审批系统的开发全过程,既可以以它们为范例进行实战演练,又可以将它们直接应用到实际开发中去。
前 言
第一部分 准备篇
第 1 章 准备开发环境••••••••••••••••••••••••••2
1.1 安装 JDK ••••••••••••••••••••••••••••••••••••••••••••2
1.2 安装 Eclipse••••••••••••••••••••••••••••••••••••••••2
1.3 安装 GWT 1.7 的 Eclipse 插件 ••••••••••3
1.4 安装 GWT 2.0 的 SDK 以及
Eclipse 插件••••••••••••••••••••••••••••••••••••••••4
1.5 辅助工具 ••••••••••••••••••••••••••••••••••••••••••••5
1.5.1 Internet Explorer Developer
Toolbar •••••••••••••••••••••••••••••••••••••••••5
1.5.2 Firebug•••••••••••••••••••••••••••••••••••••••••6
1.6 小结••••••••••••••••••••••••••••••••••••••••••••••••••••7
第 2 章 Hello GWT•••••••••••••••••••••••••••••••8
2.1 在 Eclipse 中创建项目•••••••••••••••••••••••8
2.2 运行调试项目 ••••••••••••••••••••••••••••••••••10
2.3 JUnit 测试•••••••••••••••••••••••••••••••••••••••••14
2.4 发布网站 ••••••••••••••••••••••••••••••••••••••••••16
2.5 ANT 发布•••••••••••••••••••••••••••••••••••••••••16
2.6 小结••••••••••••••••••••••••••••••••••••••••••••••••••17
第二部分 基础篇
第 3 章 GWT 模块 ••••••••••••••••••••••••••••••20
3.1 GWT 模块详解 ••••••••••••••••••••••••••••••••20
3.2 模块入口点•••••••••••••••••••••••••••••••••••••• 22
3.3 模块继承•••••••••••••••••••••••••••••••••••••••••• 22
3.4 附加 CSS 和 JavaScript•••••••••••••••••••• 23
3.5 路径配置•••••••••••••••••••••••••••••••••••••••••• 25
3.6 延迟绑定•••••••••••••••••••••••••••••••••••••••••• 29
3.7 发布 JAR•••••••••••••••••••••••••••••••••••••••••• 33
3.8 深入研究•••••••••••••••••••••••••••••••••••••••••• 34
3.9 小结 ••••••••••••••••••••••••••••••••••••••••••••••••• 37
第 4 章 JSNI ••••••••••••••••••••••••••••••••••••••••• 38
4.1 JSNI 和 JavaScript ••••••••••••••••••••••••••• 38
4.2 类型映射•••••••••••••••••••••••••••••••••••••••••• 39
4.3 JavaScriptObject••••••••••••••••••••••••••••••• 40
4.4 JsArray ••••••••••••••••••••••••••••••••••••••••••••• 42
4.5 JSNI 中的特殊变量••••••••••••••••••••••••• 42
4.6 在 JSNI 中访问 GWT 函数••••••••••••• 46
4.7 异常处理•••••••••••••••••••••••••••••••••••••••••• 49
4.8 外部 JavaScript 访问 GWT函数•••••••• 50
4.9 整合 jQuery•••••••••••••••••••••••••••••••••••••• 51
4.10 在 GWT 中使用正则
表达式 ••••••••••••••••••••••••••••••••••••••••••• 57
4.11 小结•••••••••••••••••••••••••••••••••••••••••••••••• 60
第 5 章 在 GWT 中使用 XML •••••••• 61
5.1 XML 简介•••••••••••••••••••••••••••••••••••••••• 61
5.2 XML 操作•••••••••••••••••••••••••••••••••••••••• 62
5.2.1 XML 文档••••••••••••••••••••••••••••••••• 62
5.2.2 XML 节点 •••••••••••••••••••••••••••••••••64
5.2.3 XML 元素节点••••••••••••••••••••••••••67
5.2.4 XML 文本节点••••••••••••••••••••••••••68
5.3 在 GWT 中使用 XPath•••••••••••••••••••••68
5.4 小结••••••••••••••••••••••••••••••••••••••••••••••••••76
第 6 章 GWT 控件详解•••••••••••••••••••••77
6.1 界面对象 ••••••••••••••••••••••••••••••••••••••••••77
6.2 Widget•••••••••••••••••••••••••••••••••••••••••••••••82
6.3 面板••••••••••••••••••••••••••••••••••••••••••••••••••83
6.4 控件生命周期 ••••••••••••••••••••••••••••••••••85
6.5 控件事件管理 ••••••••••••••••••••••••••••••••••87
6.5.1 注册控件事件处理句柄••••••••••••87
6.5.2 阻止控件默认行为••••••••••••••••••••88
6.5.3 阻止事件冒泡 •••••••••••••••••••••••••••89
6.5.4 onBrowserEvent•••••••••••••••••••••••••90
6.6 GWT 全局类 ••••••••••••••••••••••••••••••••••••91
6.6.1 DOM 类•••••••••••••••••••••••••••••••••••••91
6.6.2 GWT 类•••••••••••••••••••••••••••••••••••••92
6.6.3 Window 类•••••••••••••••••••••••••••••••••94
6.7 小结••••••••••••••••••••••••••••••••••••••••••••••••••97
第 7 章 使用 GWT 控件••••••••••••••••••••98
7.1 简单控件 ••••••••••••••••••••••••••••••••••••••••••98
7.1.1 包装已有控件 •••••••••••••••••••••••••••98
7.1.2 图片超链接 •••••••••••••••••••••••••••••••99
7.1.3 图片按钮•••••••••••••••••••••••••••••••••••99
7.1.4 复选框•••••••••••••••••••••••••••••••••••••••99
7.1.5 单选框•••••••••••••••••••••••••••••••••••••100
7.1.6 文件上传•••••••••••••••••••••••••••••••••101
7.1.7 DatePicker••••••••••••••••••••••••••••••••103
7.2 列表和菜单 ••••••••••••••••••••••••••••••••••••104
7.2.1 列表•••••••••••••••••••••••••••••••••••••••••104
7.2.2 带建议的输入框••••••••••••••••••••••105
7.2.3 树•••••••••••••••••••••••••••••••••••••••••••••105
7.2.4 菜单 •••••••••••••••••••••••••••••••••••••••• 107
7.3 面板 ••••••••••••••••••••••••••••••••••••••••••••••• 108
7.3.1 装饰面板••••••••••••••••••••••••••••••••• 108
7.3.2 流式布局面板••••••••••••••••••••••••• 108
7.3.3 水平布局面板和垂直布局
面板••••••••••••••••••••••••••••••••••••••••• 109
7.3.4 绝对布局面板••••••••••••••••••••••••• 109
7.3.5 Tab 面板•••••••••••••••••••••••••••••••••• 109
7.3.6 滚动面板••••••••••••••••••••••••••••••••• 110
7.4 表格 ••••••••••••••••••••••••••••••••••••••••••••••• 111
7.4.1 简单表格••••••••••••••••••••••••••••••••• 111
7.4.2 复杂表格••••••••••••••••••••••••••••••••• 111
7.5 使用与自定义 GWT 控件••••••••••••• 112
7.5.1 ComboInput 控件结构•••••••••••• 112
7.5.2 DataItem•••••••••••••••••••••••••••••••••• 113
7.5.3 ListBox•••••••••••••••••••••••••••••••••••• 114
7.5.4 Selected 事件 •••••••••••••••••••••••••• 117
7.5.5 TriggerInput••••••••••••••••••••••••••••• 120
7.5.6 ComboBox•••••••••••••••••••••••••••••• 122
7.6 小结 ••••••••••••••••••••••••••••••••••••••••••••••• 125
第 8 章 GWT-RPC ••••••••••••••••••••••••••• 126
8.1 GWT 中的XMLHTTPRequest••••••••• 126
8.1.1 HTTPRequestImpl••••••••••••••••••• 126
8.1.2 RequestBuilder •••••••••••••••••••••••• 127
8.1.3 请求动态数据••••••••••••••••••••••••• 129
8.1.4 XML•••••••••••••••••••••••••••••••••••••••• 132
8.2 JSON•••••••••••••••••••••••••••••••••••••••••••••• 134
8.2.1 JSONValue•••••••••••••••••••••••••••••• 134
8.2.2 JSONValue 的派生类 ••••••••••••• 135
8.2.3 完整的 JSON 例子 ••••••••••••••••• 136
8.3 GWT-RPC •••••••••••••••••••••••••••••••••••••• 138
8.3.1 RPC 远程接口 •••••••••••••••••••••••• 138
8.3.2 服务器实现••••••••••••••••••••••••••••• 139
8.3.3 异步接口文件••••••••••••••••••••••••• 140
8.3.4 在程序中使用GWT-RPC •••••••••140
8.3.5 整合 Hibernate•••••••••••••••••••••••••141
8.4 小结••••••••••••••••••••••••••••••••••••••••••••••••145
第 9 章 Ext GWT•••••••••••••••••••••••••••••••146
9.1 Ext GWT 简介及安装••••••••••••••••••••146
9.2 Window•••••••••••••••••••••••••••••••••••••••••••148
9.2.1 窗口布局•••••••••••••••••••••••••••••••••149
9.2.2 Viewport ••••••••••••••••••••••••••••••••••151
9.2.3 Dialog ••••••••••••••••••••••••••••••••••••••152
9.2.4 窗口的显示与关闭••••••••••••••••••153
9.3 数据管理 ••••••••••••••••••••••••••••••••••••••••154
9.4 Grid•••••••••••••••••••••••••••••••••••••••••••••••••157
9.5 树控件••••••••••••••••••••••••••••••••••••••••••••159
9.5.1 图标显示•••••••••••••••••••••••••••••••••160
9.5.2 节点选择事件 •••••••••••••••••••••••••160
9.6 皮肤••••••••••••••••••••••••••••••••••••••••••••••••161
9.7 小结••••••••••••••••••••••••••••••••••••••••••••••••162
第三部分 实战篇
第 10 章 俄罗斯方块游戏 ••••••••••••••164
10.1 游戏设计 ••••••••••••••••••••••••••••••••••••••164
10.1.1 游戏简介 •••••••••••••••••••••••••••••••164
10.1.2 游戏规则 •••••••••••••••••••••••••••••••165
10.1.3 设计思路 •••••••••••••••••••••••••••••••166
10.2 编码实现 ••••••••••••••••••••••••••••••••••••••167
10.2.1 游戏场地 •••••••••••••••••••••••••••••••167
10.2.2 方块•••••••••••••••••••••••••••••••••••••••170
10.2.3 游戏控制器 •••••••••••••••••••••••••••177
10.3 界面实现及操作完善•••••••••••••••••••187
10.3.1 候选面板•••••••••••••••••••••••••••••••••187
10.3.2 计分与等级 •••••••••••••••••••••••••••189
10.3.3 增加操作便利性••••••••••••••••••••191
10.3.4 界面美化 •••••••••••••••••••••••••••••••192
10.4 联机对战•••••••••••••••••••••••••••••••••••••• 193
10.4.1 原理 •••••••••••••••••••••••••••••••••••••• 193
10.4.2 等待游戏开始••••••••••••••••••••••• 194
10.4.3 交换数据••••••••••••••••••••••••••••••• 198
10.4.4 胜负判定••••••••••••••••••••••••••••••• 204
10.4.5 障碍行••••••••••••••••••••••••••••••••••• 206
10.5 小结•••••••••••••••••••••••••••••••••••••••••••••• 209
第 11 章 费用申请审批流程 ••••••••• 210
11.1 流程设计•••••••••••••••••••••••••••••••••••••• 210
11.1.1 流程简介••••••••••••••••••••••••••••••• 210
11.1.2 工作流引擎••••••••••••••••••••••••••• 210
11.1.3 表单••••••••••••••••••••••••••••••••••••••• 211
11.2 工作流引擎实现 •••••••••••••••••••••••••• 211
11.2.1 环境配置••••••••••••••••••••••••••••••• 211
11.2.2 业务规则定义••••••••••••••••••••••• 214
11.2.3 jBPM 数据库初始化••••••••••••• 218
11.3 表单实现•••••••••••••••••••••••••••••••••••••• 220
11.3.1 HTML 面板••••••••••••••••••••••••••• 220
11.3.2 表单对话框••••••••••••••••••••••••••• 225
11.3.3 权限控制••••••••••••••••••••••••••••••• 228
11.3.4 类型校验••••••••••••••••••••••••••••••• 232
11.4 审批流程的界面实现 •••••••••••••••••• 233
11.4.1 AsyncCallbackEx •••••••••••••••••• 233
11.4.2 Outlook 面板••••••••••••••••••••••••• 234
11.4.3 工作列表••••••••••••••••••••••••••••••• 236
11.4.4 整体布局••••••••••••••••••••••••••••••• 241
11.4.5 用户登录••••••••••••••••••••••••••••••• 244
11.4.6 全局事件管理••••••••••••••••••••••• 247
11.4.7 遮蔽效果••••••••••••••••••••••••••••••• 249
11.4.8 实现 BizzAction•••••••••••••••••••• 250
11.5 业务流转•••••••••••••••••••••••••••••••••••••• 254
11.5.1 申请表••••••••••••••••••••••••••••••••••• 254
11.5.2 审批表••••••••••••••••••••••••••••••••••• 257
11.6 小结•••••••••••••••••••••••••••••••••••••••••••••• 261
第四部分 高级篇
第 12 章 GWT 与 Flex 整合•••••••••••264
12.1 Flex 的优势 ••••••••••••••••••••••••••••••••••264
12.2 查看流程图的 Flex•••••••••••••••••••••••265
12.3 加入网页 ••••••••••••••••••••••••••••••••••••••275
12.4 与 Flex 交互 •••••••••••••••••••••••••••••••••278
12.5 小结••••••••••••••••••••••••••••••••••••••••••••••283
第 13 章 图片缓存 ••••••••••••••••••••••••••••284
13.1 CSS Sprite 简介••••••••••••••••••••••••••••284
13.2 GWT 的实现 ••••••••••••••••••••••••••••••••286
13.3 后端生成了什么•••••••••••••••••••••••••••288
13.4 小结••••••••••••••••••••••••••••••••••••••••••••••288
第 14 章 本地化 •••••••••••••••••••••••••••••••••290
14.1 GWT 如何识别你的语言•••••••••••••290
14.2 本地化配置 ••••••••••••••••••••••••••••••••••291
14.3 日期格式化 ••••••••••••••••••••••••••••••••••294
14.4 字符串动态本地化 •••••••••••••••••••••• 295
14.5 小结•••••••••••••••••••••••••••••••••••••••••••••• 296
第 15 章 其他高级功能••••••••••••••••••• 297
15.1 动画•••••••••••••••••••••••••••••••••••••••••••••• 297
15.2 历史管理•••••••••••••••••••••••••••••••••••••• 299
15.3 延时执行•••••••••••••••••••••••••••••••••••••• 301
15.4 等待执行和分片执行 •••••••••••••••••• 301
15.5 代码分割•••••••••••••••••••••••••••••••••••••• 302
15.5.1 SOYC•••••••••••••••••••••••••••••••••••• 304
15.5.2 初始化序列••••••••••••••••••••••••••• 305
15.5.3 编程模式••••••••••••••••••••••••••••••• 306
15.5.4 预加载••••••••••••••••••••••••••••••••••• 307
15.6 UiBinder••••••••••••••••••••••••••••••••••••••• 308
15.6.1 HTML 绑定 •••••••••••••••••••••••••• 308
15.6.2 控件绑定••••••••••••••••••••••••••••••• 310
15.6.3 CSS 绑定••••••••••••••••••••••••••••••• 311
15.6.4 事件管理••••••••••••••••••••••••••••••• 313
15.6.5 资源打包••••••••••••••••••••••••••••••• 314
15.6.6 创建控件••••••••••••••••••••••••••••••• 316
15.7 小结•••••••••••••••••••••••••••••••••••••••••••••• 316
《未来已来》内容简介:本书是全球政治、经济、金融、企业等方面的领袖人物在清华大学五道口金融学院和国家金融研究院主办的“未来
1作者为德国红点设计大奖得主。2书中独有作者自创的图形创作模式,即“理性—直觉—手—电脑”的结合运用。3本书包含40种颠覆惯性
这是一本关于搜索引擎的教科书,它从研究实践者的角度介绍了搜索引擎的相关技术及其产业,并试图协助读者成为搜索引擎领域的局内
《通信协议技术》是OHM通信实用技术系列之一。《通信协议技术》中基于以下三方面介绍通信协议技术:(1)通信协议中怎样利用图像
《幸福家庭成就优秀孩子》内容简介:本书从寻找幸福、正确认识婚姻与家庭以及家庭的功能入手,让读者懂得并学会用智慧去爱所爱的人
本书从理论到实践系统全面地对PHP和MySQL进行了介绍。在给出了PHP和MySQL的一般概念后,对PHP和MySQL的应用做了全面的阐述。最后
《MySQL核心技术与最佳实践》内容简介:作为世界上最受欢迎的开源数据库管理系统,MySQL具有成本低廉、体积小、便于安装、性能优越
《洛阳史话》内容简介:洛阳从夏至宋三千年间,作为千年帝都,曾经演绎出一幕幕辉煌壮丽的历史画卷。北宋伊始,随着政治中心东移,
EricSchaffer博士,是人因国际公司(HumanFactorsInternational,Inc,简称HFI)的创始人和CEO。他曾创见性地认为可用性是...
《LTE轻松进阶》以说故事讲原理的方式介绍LTE技术原理。内容按照从总体到细节、从原理到实践的顺序提纲挈领地介绍LTE无线侧工程师
《软件架构师的12项修炼》内容简介:每一位软件开发人员都有一个架构师的梦,但为何真正的软件架构师却寥寥无几?软件开发人员更容
LTE语音业务及VOLTE技术详解 本书特色 本书讲解了各种可能的lte语音业务技术解决方案,同时也介绍了lte**演进技术,即所谓的5g可能采用的先进技术和演...
即学即用-Excel 2010人力资源管理实战应用宝典-含1CD价格 本书特色 从事人力资源管理工作的你,是否厌倦了枯燥的数据统计、简单重复的报表核算,想要游刃...
《工地社会》内容简介:在科技水平、现代设备和经济条件都十分有限的集体化时代,大型水利工程何以成为可能?本书以1958~1962年甘
《论藏族社会的和谐稳定》内容简介:本书采用客观理性的方法,对西藏自治区普通藏族成年人的心理特质做系统分析,以揭示在藏文化背
设计的实质是什么?在设计中,意念和多种多样的形工之间的关系究竟是怎么样?诸如此类的问题,当代设计大师靳埭强选择是如何思考
各位程序员一定希望自己编写的代码是能让老板赞赏、满意的代码;是能让客户乐意掏钱购买的代码;是能让使用者顺利使用的代码;是
作者简介:中嶋谦互从小学开始学习游戏编程,进入大学后正式参与游戏开发。1996年开发了世界上第一款使用JavaApplet的MMORPG,19
《OpenGL编程指南(原书第7版)》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。《OpenGL编程
《微信营销与运营攻略》内容简介:《微信营销与运营攻略》由国内微信营销与运营领域的3位领军人物撰写,旨在为企业微信营销与运营提