第一部分 Ext JS 4.0入门 2
第1章 功夫在框架外 2
1.1 初识Ext JS 2
1.1.1 丰富的API文档 3
1.1.2 用预制部件快速开发 5
1.2 你需要知道的 5
1.3 Ext JS部件之旅 5
1.3.1 容器和布局初探 7
1.3.2 其他容器的运作 8
1.3.3 数据绑定视图 9
1.3.4 “枝繁叶茂”的树形面板 11
1.3.5 表单输入框 12
1.3.6 其他部件 14
1.4 Ext JS 4.0的新特性 15
1.4.1 呀!适配层不见了! 15
1.4.2 新的类系统 15
1.4.3 数据包 16
1.4.4 布局:代码大爆炸 16
1.4.5 新停靠系统 17
1.4.6 网格面板的改进 17
1.4.7 树形面板如今更接近网格面板 18
1.4.8 图形和图表 19
1.4.9 新的CSS样式架构 19
1.4.10 新MVC架构 20
1.4.11 捆绑打包工具 20
1.5 下载和配置 20
1.6 亲手一试 22
1.7 小结 24
第2章 DOM操作 25
2.1 用Ext JS启动代码 25
2.2 用Ext.Element管理DOM元素 27
2.2.1 框架的核心 27
2.2.2 首次使用Ext.Element 28
2.2.3 创建子节点 29
2.2.4 删除子节点 32
2.2.5 配合Ext.Element使用Ajax 33
2.3 使用模板和XTemplate 34
2.3.1 使用模板 34
2.3.2 用XTemplate执行循环操作 37
2.3.3 XTemplate的高阶应用 38
2.4 小结 40
第3章 组件和容器 41
3.1 组件模型 41
3.1.1 XType和ComponentManager 42
3.1.2 组件渲染 44
3.2 组件生命周期 46
3.2.1 初始化 46
3.2.2 渲染 48
3.2.3 销毁 50
3.3 容器 51
3.3.1 构建一个带子元素的容器 52
3.3.2 处理子元素 53
3.4 查询组件 54
3.5 视口容器 56
3.6 小结 57
第二部分 Ext JS组件 60
第4章 核心UI组件 60
4.1 面板 60
4.1.1 构建一个复杂的面板 61
4.1.2 添加按钮和工具 63
4.1.3 在一个面板上停靠元素 65
4.1.4 权重很重要 67
4.2 显示窗口对话框 69
4.2.1 构建一个窗口 70
4.2.2 更多窗口配置 71
4.3 消息框 73
4.3.1 警告用户 73
4.3.2 MessageBox的高阶方法 74
4.3.3 显示一个动画式等待对话框 75
4.4 组件也可以存活在标签面板中 77
4.4.1 构建第一个标签面板 78
4.4.2 你应该知道的标签管理方法 80
4.5 小结 81
第5章 探究布局 82
5.1 布局管理器如何工作 82
5.1.1 组件布局 82
5.1.2 容器布局 83
5.2 Auto布局 83
5.3 Anchor布局 85
5.4 Absolute布局 88
5.5 Fit布局 89
5.6 Accordion布局 90
5.7 Card布局 93
5.8 Column布局 95
5.9 HBox和VBox布局 97
5.10 Table布局 100
5.11 Border布局 103
5.12 小结 107
第6章 Ext JS中的表单 108
6.1 基本输入框 108
6.1.1 输入框和校验 109
6.1.2 密码和文件选择框 111
6.1.3 构建多行文本框 112
6.1.4 便利的数字输入框 112
6.2 用组合框实现提前键入 113
6.2.1 构建一个本地组合框 113
6.2.2 实现一个远程组合框 115
6.2.3 解构组合框 118
6.2.4 自定义组合框 118
6.3 时间输入框 119
6.4 HTML编辑器 120
6.4.1 构建第一个HTML编辑器 120
6.4.2 处理缺少校验的问题 121
6.5 选择日期 121
6.6 复选框和单选按钮 122
6.7 表单面板 124
6.7.1 检视正在构建的内容 125
6.7.2 构建字段集 125
6.7.3 创建标签面板 128
6.8 数据提交和加载 130
6.8.1 提交表单的传统方式 130
6.8.2 通过Ajax提交数据 130
6.8.3 把数据加载到表单中 132
6.9 小结 134
第7章 数据存储 135
7.1 介绍数据存储 135
7.1.1 支持类 136
7.1.2 数据是如何流动的 137
7.1.3 关于数据代理 138
7.1.4 模型和读取器 139
7.2 读取和保存数据 140
7.2.1 读取数组数据 141
7.2.2 读取JSON数据 143
7.2.3 读取XML数据 145
7.3 带写入器的数据存储 146
7.3.1 校验模型数据 148
7.3.2 同步数据 150
7.4 关联数据 151
7.5 小结 154
第8章 网格面板 155
8.1 网格面板简介 155
8.2 构建一个简单的网格面板 157
8.3 高级网格面板构建 159
8.3.1 你在构建什么 159
8.3.2 所需的数据存储和模型 159
8.3.3 创建列 160
8.3.4 配置高级网格面板 161
8.3.5 给网格面板配置一个容器 162
8.3.6 缓冲滚动分页 164
8.3.7 为交互应用事件处理程序 166
8.4 在网格面板上编辑数据 168
8.4.1 启用编辑插件 169
8.4.2 浏览一下你的可编辑网格面板 173
8.5 加入CRUD 174
8.5.1 添加保存和拒绝逻辑 174
8.5.2 保存和拒绝修改 175
8.5.3 添加创建和删除功能 176
8.5.4 使用创建和删除 178
8.6 小结 180
第9章 深入探究树形面板 181
9.1 树形面板理论 181
9.1.1 树形面板关键词 181
9.1.2 深入根节点 182
9.2 “种下”你的第一棵树 183
9.3 培育动态树形面板 185
9.3.1 创建一个远程加载面板 186
9.3.2 为树(树形面板)“施肥” 187
9.4 在树形面板上实现CRUD 189
9.4.1 显示上下文菜单 189
9.4.2 添加编辑逻辑 193
9.4.3 着手删除 196
9.4.4 为树形面板创建节点 198
9.5 小结 200
第10章 绘画和图表 201
10.1 绘制形状 201
10.2 绘图概念 202
10.3 表面子画面 202
10.3.1 绘制子画面 204
10.3.2 管理位置和大小 205
10.3.3 自适应大小的子画面 207
10.4 子画面交互 207
10.5 掌控路径 211
10.6 深入了解图表 213
10.7 实现笛卡儿图表 215
10.7.1 配置轴 215
10.7.2 添加序列 218
10.7.3 改进可视化助手 219
10.7.4 添加定制形状 222
10.7.5 同一个图表中的多序列 224
10.8 定制主题 226
10.9 饼图 230
10.10 小结 232
第11章 用Ext Direct实现远程方法调用 233
11.1 使两端相见 233
11.2 对比Ext Direct和REST 235
11.3 服务器端配置 236
11.3.1 它是怎样工作的 236
11.3.2 远程方法配置 236
11.3.3 路由 237
11.4 远程方法 238
11.4.1 配置路由器 238
11.4.2 启用Ext Direct 240
11.5 直接调用远程方法 243
11.6 启用CRUD的Ext.data.DirectStore 245
11.7 小结 248
第12章 拖放 249
12.1 拖放工作流 249
12.1.1 拖放的生命周期 250
12.1.2 自上而下审视拖放类 251
12.1.3 一切尽在覆盖之中 252
12.1.4 拖放总是在组中工作的 253
12.2 拖放:一个基础的例子 254
12.2.1 创建一个小型工作区 254
12.2.2 配置元素使之可拖动 255
12.2.3 分析Ext.dd.DD的DOM元素变化 256
12.2.4 增加泳池和热水浴缸作为放置目标 257
12.3 完成你的拖放实现 258
12.3.1 增加放入引导 259
12.3.2 增加有效放入 261
12.3.3 实现无效放入 263
12.4 使用DDProxy 264
12.5 视图的拖放 268
12.5.1 构建视图 268
12.5.2 添加拖动手势 272
12.5.3 使用放入 275
12.6 网格面板的拖放 278
12.7 树形面板上的拖放 282
12.7.1 构建树形面板 282
12.7.2 启用拖放 284
12.7.3 采用灵活的约束 284
12.8 小结 287
第三部分 构建一个应用 290
第13章 类系统基础 290
13.1 经典的JavaScript继承 290
13.1.1 创建一个基类 291
13.1.2 创建一个子类 292
13.2 Ext JS的继承 293
13.2.1 创建一个基类 294
13.2.2 创建一个子类 295
13.3 扩展Ext JS组件 296
13.3.1 想想你在构建什么 297
13.3.2 扩展GridPanel 298
13.3.3 实践你的扩展 299
13.4 用插件来救援 302
13.4.1 插件的剖析 302
13.4.2 开发一个插件 303
13.5 使用Ext JS加载器的动态加载类 306
13.5.1 动态加载一切 306
13.5.2 应该按需加载 308
13.5.3 采用混合的方案 309
13.6 小结 311
第14章 构建一个应用 312
14.1 像Web UI开发者一样思考 312
14.2 应用的(基础)结构 313
14.2.1 在命名空间内进行开发 313
14.2.2 动态依赖加载 315
14.3 开启Survey应用 318
14.3.1 从想法到代码实现 318
14.3.2 用Sencha Cmd加快开始的步伐 319
14.3.3 引导Survey项目 321
14.3.4 数据驱动的应用程序模型 324
14.3.5 给应用程序增加模型 325
14.3.6 添加数据存储 329
14.3.7 创建验证表单 330
14.3.8 插入第一个控制器 332
14.3.9 Survey视图 333
14.3.10 Survey控制器 336
14.4 打包 342
14.5 小结 344