第1章 入门 1
1.1何谓ExtJS 2
1.2 CakePHP 5
1.3部署开发环境 5
1.3.1部署服务器 6
1.3.2部署CakePHP 6
1.3.3部署ExtJS 10
1.4开发工具 10
1.5调试与性能评估工具 10
1.5.1 FireBug插件 10
1.5.2 Chrome的JavaScript控制台 12
1.5.3性能评估与数据监控 12
1.6小结 14
第Ⅰ部分 基础架构 17
第2章 ExtJS 101 17
2.1 JavaScript的面向对象 18
2.1.1创建类 18
2.1.2定义类方法与类属性 21
2.1.3类的继承 22
2.1.4 ExtJS在面向对象方面的支持 26
2.1.5实战练习:预配置类 33
2.2浏览器对象模型:BOM 35
2.2.1命名空间 36
2.2.2用户代理对象 38
2.2.3历史记录对象 40
2.2.4 DOM文件对象document 46
2.2.5 Cookie 47
2.2.6定时调用函数 48
第3章 DOM与Event 53
3.1 ExtJS对DOM的支持 54
3.1.1创建Element实例 55
3.1.2通过Element创建DOM节点 64
3.1.3读取/更新DOM节点及属性 72
3.1.4 DomHelper与Template、 XTemplate 85
3.2 ExtJS对事件的支持 99
3.2.1一切的开始——Ext.ready() 100
3.2.2注册/移除事件处理程序 100
3.2.3 Ext.EventManager 102
3.2.4阻止事件的进行与默认行为 103
3.2.5 Ext.util.Observable与自定义事件 104
3.3实战练习:画布应用 110
第4章 好用的PHP框架——CakePHP 119
4.1 CakePHP的设计结构 120
4.2自动化开发 122
4.3 CakePHP基础 130
4.3.1 CakePHP的配置文件core.php 130
4.3.2 CakePHP的基础模板default.ctp 132
4.3.3模型 139
4.3.4控制器 141
4.3.5视图与视图助手 146
4.4实战练习:登录窗体 148
4.4.1制作模型 149
4.4.2编写控制器 155
4.4.3编写页面视图 159
4.4.4更改默认控制器 160
4.4.5 URL前缀的应用 162
4.4.6使用Cake 2.*版本?不,谢谢 163
4.4.7下一步 164
第5章 Ajax与数据驱动 165
5.1 Ext.Ajax与Ext.data.Connection 166
5.2存储对象 179
5.2.1 Ext.data.Store 181
5.2.2读取远程数据 187
5.3实战练习:表格组件 195
第6章 Component结构 199
6.1 Component模型 200
6.2常用组件 208
6.2.1 ColorPalette调色板 208
6.2.2 Button按钮 209
6.2.3 SplitButton按钮 211
6.2.4 BaseItem基础选项 212
6.2.5 DatePicker日期选择面板 213
6.3 xtype神秘类型 214
6.4实战练习:自定义组件 218
第7章 Container结构 223
7.1 Container容器 224
7.2 Panel容器 227
7.2.1添加子组件/容器 229
7.2.2移动子组件/容器 231
7.2.3查找子组件/容器 234
7.2.4删除子组件/容器 238
7.2.5顶层组件栏(tbar)与底层组件栏(bbar) 239
7.2.6可折叠的Panel 240
7.2.7嵌套Panel 241
7.3 Viewport容器 244
7.4 Window容器 246
7.5 ButtonGroup容器 250
7.6 Button类似容器的用法 253
7.7实战练习:更实用的Window类 254
第Ⅱ部分 视图组件 261
第8章 页面布局 261
8.1一切都从ContainerLayout开始 262
8.2可让组件大小随容器改变的AnchorLayout 263
8.3可随意摆放组件的AbsoluteLayout 265
8.4填满容器的FitLayout 268
8.5如手风琴般的AccordionLayout 269
8.6将组件以扑克牌方式摆放的CardLayout 271
8.7表单布局FormLayout 273
8.8边界布局BorderLayout 274
8.9水平布局HBoxLayout与垂直布局VBoxLayout 276
8.10列布局ColumnLayout 276
8.11表格布局TableLayout 278
8.12混合布局 279
8.13实战练习:自定义布局 282
第9章 表单组件 287
9.1表单容器FormPanel与一般容器Panel的差异 288
9.2文本字段 291
9.2.1密码字段 294
9.2.2文件上传字段 294
9.2.3文本块 295
9.2.4数字字段 296
9.2.5字段验证 297
9.2.6隐藏字段 298
9.3下拉菜单与自动完成 299
9.3.1使用本地数据 299
9.3.2远程数据与下拉菜单 303
9.3.3远程数据与自动完成 307
9.3.4联动下拉菜单 308
9.4 WYSIWYG文本编辑器 310
9.5日期字段 311
9.6复选组件与单选组件 312
9.7提交/读取数据 313
9.8字段提示QuickTips与QuickTip 317
9.9美化表单 320
9.9.1使用BoxComponent为表单添加自定义HTML内容 320
9.9.2使用FieldSet集合特定字段 321
9.10实战练习:登录表单 322
第10章 表格组件 329
10.1 GridPanel是如何组成的 330
10.2创建GridPanel与数据排序 331
10.3使用PagingToolbar进行分页 336
10.4 GirdPanel与查询 339
10.5自定义绘图器 342
10.6通过SelectionModel与GridPanel交互 345
10.7实战练习:DTable 348
第11章 可编辑表格组件 355
11.1创建EditorGridPanel 356
11.2更换字段编辑器与数据交互 358
11.2.1更换字段编辑器 358
11.2.2添加与删除记录 360
11.3使用RowEditor 363
11.4数据的提交与回滚 365
11.4.1 commitChanges()与rejectChanges() 365
11.4.2同步服务器数据 367
11.5使用DataWriter 370
11.6实战练习:ETable 373
第12章 DataView与ListView 381
12.1 DataView 382
12.1.1创建数据显示样式 382
12.1.2创建Store与XTemplate 383
12.1.3创建DataView 385
12.1.4让DataView可分页 386
12.2 ListView 387
12.3属性设置表PropertyGrid 389
12.4实战练习:数据读取 392
第13章 图表组件 401
13.1图表底层的秘密 402
13.2折线图:LineChart 405
13.2.1绘制折线图 405
13.2.2修改提示信息 406
13.2.3添加水平/垂直轴的标题 408
13.2.4修改图表风格 409
13.2.5添加多个序列 411
13.3柱形图:ColumnChart与StackedColumnChart 413
13.4条形图:BarChart与StackedBarChart 415
13.5圆饼图:PieChart 417
13.6实战练习:图表应用 419
第14章 树状组件 425
14.1使用静态数据创建TreePanel 426
14.2读取服务器数据 428
14.3操作节点 432
14.3.1添加节点 432
14.3.2删除节点 438
14.3.3编辑节点 441
14.3.4查询节点 442
14.3.5排序节点 443
14.4 ColumnTree 444
14.5实战练习:TreeEditor 447
第15章 菜单与工具栏 453
15.1创建菜单 454
15.1.1菜单101 454
15.1.2菜单事件 456
15.1.3加入Separator与TextIterm 457
15.1.4 ColorMenu与DataMenu 459
15.1.5添加复选框 460
15.1.6添加单选按钮 462
15.2使用上下文菜单 463
15.3创建工具栏 465
15.4实战练习:复杂的菜单与工具栏组合 467
第16章 拖放——Drag与Drop 473
16.1拖放的基础知识 474
16.2拖放操作的实现 476
16.2.1注册DOM元素为DD 477
16.2.2使用DDTarget注册放置目标 478
16.2.3使用DDProxy 484
16.3实战练习:将拖放与组件结合 487
16.3.1 DataView与拖放 487
16.3.2 TreePanel与拖放 493
第17章 插件 495
17.1继承的限制 496
17.2插件的实现 499
第18章 长路漫漫——ExtJS 4 503
18.1类系统 504
18.1.1定义类的新方式 504
18.1.2动态读取类定义与依赖性管理 508
18.1.3混合属性 513
18.1.4静态方法 515
18.1.5自动生成变量的getter/setter方法 516
18.2 Data封包 517
18.2.1 Model 517
18.2.2 Proxy与 Store 523
18.3 Panel、 FormPanel、 GridPanel与Window 537
18.3.1 Panel组件 537
18.3.2 FormPanel组件 539
18.3.3 GridPanel组件 541
18.3.4 Window组件 543
18.4图表组件 545
18.4.1 Area图表 545
18.4.2 Bar图表 548
18.4.3 Radar图表 551
18.4.4 Pie图表 552
ExtJS 4后记 554
第Ⅲ部分 实战案例 557
第19章 案例——记账系统 557
19.1系统需求分析 558
19.2系统规划 558
19.2.1界面规划 558
19.2.2后台服务器部署 560
19.3系统实现 561
19.3.1实现CakePHP端 562
19.3.2实现ExtJS界面 578
19.4与CakePHP结合 611
第20章 案例——人人网应用程序 615
20.1系统功能分析 616
20.2系统部署 618
20.3封装Google Maps API的类GMap 621
20.4组合界面组件 629
20.4.1定义GeoMapPanel 629
20.4.2定义FunctionMenu 630
20.4.3定义GeoRecordGridPanel 632
20.4.4定义MainPanel 636
附录 学习与实现资源 645