As I put the final touches on my upcoming book, Dojo: The Definitive Guide, it occurred to me that it might be a good idea to go ahead and post an unofficial table of contents preview for those of you who are interested. Aside from some page numbers adjusting ever so slightly, and some heading levels changing that make Chapter 13’s table of contents entry a lot more detailed (ironically, the most dense chapter in the book), this is pretty much the real deal.

As far as I know, the book will be available early next month. I plan to continue writing my “Dojo Goodness” column semi-regularly for quite some time, so be sure to check in every now and then if you’ve been following along.

If you’ll be at OSCON, you might also drop by for some gfx discussion.

Without further ado:

Preface

Part I: Base and Core

1. Toolkit Overview 3
Overview of Dojo’s Architecture 3
Prepping for Development 7
Terminology 13
Bootstrapping 15
Exploring Dojo with Firebug 22
Summary 32

2. Language and Browser Utilities 33
Looking Up DOM Nodes 33
Type Checking 34
String Utilities 35
Array Processing 36
Managing Source Code with Modules 40
JavaScript Object Utilities 49
Manipulating Object Context 53
DOM Utilities 56
Browser Utilities 63
Summary 67

3. Event Listeners and Pub/Sub Communication 68
Event and Keyboard Normalization 68
Event Listeners 71
Publish/Subscribe Communication 77
Summary 80

4. AJAX and Server Communication 82
Quick Overview of AJAX 82
AJAX Made Easy 84
Deferreds 91
Form and HTTP Utilities 100
Cross-Site Scripting with JSON-P 102
Core IO 103
JSON Remote Procedure Calls 112
OpenAjax Hub 114
Summary 115

5. Node Manipulation 116
Query: One Size Fits All 116
NodeList 123
Creating NodeList Extensions 132
Behavior 133
Summary 137

6. Internationalization (i18n) 138
Introduction 138
Internationalizing a Module 139
Dates, Numbers, and Currency 142
Summary 145

7. Drag and Drop 146
Dragging 146
Dropping 157
Summary 167

8. Animation and Special Effects 168
Animation 168
Core fx 182
Animation + Drag and Drop = Fun! 189
Colors 190
Summary 198

9. Data Abstraction 200
Shifting the Data Paradigm 200
Data API Overview 201
The APIs 202
Core Implementations of Data APIs 208
Summary 224

10. Simulated Classes and Inheritance 226
JavaScript Is Not Java 226
One Problem, Many Solutions 227
Simulating Classes with Dojo 231
Multiply Inheriting with Mixins 240
Summary 244

Part II: Dijit and Util

11. Dijit Overview 249
Motivation for Dijit 249
Accessibility (a11y) 252
Dijit for Designers 255
The Parser 260
Hands-on Dijit with NumberSpinner 264
Overview of Stock Dijits 270
Dijit API Drive-By 274
Summary 275

12. Dijit Anatomy and Lifecycle 276
Dijit Anatomy 276
Dijit Lifecycle Methods 279
Your First Dijit: HelloWorld 286
Parent-Child Relationships with _Container and _Contained 297
Rapidly Prototyping Widgets in Markup 298
Summary 299

13. Form Widgets 301
Drive-By Form Review 301
Form Dijits 305
Summary 343

14. Layout Widgets 345
Layout Dijit Commonalities 345
ContentPane 347
BorderContainer 351
StackContainer 356
TabContainer 358
AccordionContainer 360
Rendering and Visibility Considerations 362
Summary 363

15. Application Widgets 364
Tooltip 364
Dialog Widgets 365
ProgressBar 369
ColorPalette 371
Toolbar 372
Menu 376
TitlePane 379
InlineEditBox 380
Tree 382
Editor 394
Summary 400

16. Build Tools, Testing, and Production Considerations 401
Building 401
Dojo Objective Harness (DOH) 411
Browser-Based Test Harness 416
Performance Considerations 420
Summary 422

Appendix A. Firebug Primer 423
Appendix B. Brief Survey of DojoX 434
Index 437