| Acknowledgments | p. xv |
| Introduction | p. xix |
| Beginning Dreamweaver Extensibility | p. 1 |
| What Is an Extension? | p. 2 |
| What Kinds of Extensions Are There? | p. 4 |
| Behaviors | p. 5 |
| Objects | p. 5 |
| Commands | p. 6 |
| Data Sources | p. 6 |
| Server Behaviors | p. 7 |
| Browser Profiles | p. 7 |
| Floaters | p. 7 |
| Inspectors | p. 8 |
| Menus | p. 8 |
| Server Models | p. 8 |
| Third-Party Tags | p. 9 |
| Translators | p. 9 |
| Reports | p. 9 |
| References | p. 9 |
| Building Extensions | p. 10 |
| The Configurations Folder | p. 11 |
| The User Interface | p. 11 |
| JavaScript Code | p. 13 |
| The Document Object Model | p. 13 |
| Selections and Offsets | p. 14 |
| Nodes | p. 16 |
| Dot Notation | p. 17 |
| JavaScript API Methods | p. 19 |
| Shared Folder Functions | p. 21 |
| Display Help | p. 21 |
| What to Take Away from this Chapter | p. 23 |
| Extending Dreamweaver Documents | p. 23 |
| Objects and Behaviors | p. 25 |
| Objects | p. 26 |
| A More Complex Object | p. 31 |
| Coding Your Object | p. 33 |
| Third-Party Tags and XML | p. 38 |
| Behaviors | p. 40 |
| Behavior Functions | p. 40 |
| The BUDAlert Behavior | p. 41 |
| A More Complex Behavior | p. 45 |
| Focus Field | p. 45 |
| Focus Field Functions | p. 47 |
| The onLoad Event | p. 49 |
| The Focus Field Behavior | p. 49 |
| Focus Field Behavior Functions | p. 52 |
| Some General Observations about Focus Field | p. 55 |
| What to Take Away from this Chapter | p. 57 |
| Exercises | p. 58 |
| Commands | p. 59 |
| Using Commands | p. 60 |
| The Command API | p. 61 |
| Menu-Location=None | p. 63 |
| Creating a Basic Command | p. 64 |
| Buttons in Command Files | p. 66 |
| Using Regular Expressions in Commands | p. 69 |
| Making History Commands | p. 72 |
| Copying a History Command to the Clipboard | p. 73 |
| Using Commands from Other Extensions | p. 73 |
| Recursion | p. 74 |
| Adding Head Code | p. 75 |
| Building the Extension | p. 76 |
| The User Interface | p. 80 |
| Menu Commands | p. 82 |
| Creating the Set Text Editor Prefs Command | p. 83 |
| The Design Notes Functions | p. 85 |
| Updating the User Interface | p. 86 |
| Creating the Menu Items | p. 87 |
| The Open With Command | p. 88 |
| What to Take Away from this Chapter | p. 91 |
| Exercises | p. 92 |
| Property Inspectors and Floaters | p. 93 |
| Property Inspectors | p. 94 |
| The Interface of a Property Inspector | p. 94 |
| Inspecting the Selection | p. 97 |
| Form Inspector | p. 98 |
| The canInspectSelection Function | p. 102 |
| The inspectSelection Function | p. 103 |
| Other Custom Support Functions | p. 105 |
| Floaters | p. 108 |
| Creating an HTML Mini Editor | p. 108 |
| Running Commands from a Floater | p. 111 |
| Creating an Extension Mini Editor | p. 114 |
| What to Take Away from this Chapter | p. 120 |
| Exercises | p. 120 |
| Introduction to UltraDev Extensions | p. 123 |
| How Is UltraDev Different from Dreamweaver? | p. 124 |
| Server Behaviors | p. 124 |
| Steps for Building a Server Behavior Extension | p. 126 |
| Your Final Code: The First Step | p. 128 |
| Accessing the Server Behavior Builder (SBB) | p. 129 |
| Creating the Code Blocks | p. 131 |
| Generating the Interface | p. 133 |
| Adding JavaScript to the Auto-Generated File | p. 136 |
| XML Files | p. 137 |
| Extending the Server Behavior Builder (SBB) | p. 141 |
| Other UltraDev Extensions | p. 146 |
| Data Sources | p. 146 |
| Connections | p. 146 |
| Server Formats | p. 147 |
| Server Models | p. 148 |
| What to Take Away from this Chapter | p. 148 |
| Exercises | p. 149 |
| The Dreamweaver Menus and Extension Packaging | p. 151 |
| The menus.xml File | p. 152 |
| Packaging Extensions | p. 152 |
| Main Tag | p. 153 |
| Products and Authors Tags | p. 153 |
| Description of the Extension | p. 154 |
| Putting Your Files into the Extension Package | p. 154 |
| Changing the Dreamweaver Menus | p. 156 |
| Wrapping Up the Package | p. 157 |
| Using Shared Files in Your Extension Package | p. 159 |
| Extension Organization | p. 161 |
| Adding Your Own Menu and Menu Items | p. 162 |
| Adding an Item to the Context Menus | p. 165 |
| Using the MXI File Creator Packager Extension | p. 168 |
| What to Take Away from this Chapter | p. 175 |
| Exercises | p. 175 |
| Testing and Deploying Extensions | p. 177 |
| Testing and Debugging the Extension | p. 178 |
| Using Alert Boxes | p. 179 |
| Using Eval and Trace Console | p. 182 |
| The Public Domain Extension Debugger Extension | p. 186 |
| Repackaging and Version Control for Extensions | p. 187 |
| Deploying the Extension | p. 188 |
| The Macromedia Exchange | p. 189 |
| Downloading Extensions | p. 190 |
| Uploading Extensions | p. 192 |
| Other Options | p. 197 |
| What to Take Away from this book | p. 197 |
| Shared Functions Reference | p. 199 |
| Shared CMN Folder Functions | p. 200 |
| Shared\MM\Scripts\CMN#Ul.js | p. 200 |
| Shared\MM\Scripts\CMN#doclnfo.js | p. 201 |
| Shared\MM\Scripts\CMN\DOM.js | p. 203 |
| Shared\MM\Scripts\CMN\file.js | p. 204 |
| Shared\MM\Scripts\CMN\form.js | p. 206 |
| Shared\MM\Scripts\CMN\insertion.js | p. 206 |
| Shared\MM\Scripts\CMN#string.js | p. 207 |
| Shared Class Folder | p. 208 |
| UltraDev Shared Files | p. 209 |
| Other Important Files | p. 210 |
| Extensions.txt | p. 211 |
| SourceFormat.txt | p. 211 |
| TagAttributeList.txt | p. 212 |
| localTextDW.htm and localTextUltraDev.htm | p. 212 |
| Summary | p. 213 |
| Further Reading | p. 215 |
| Web Sites | p. 216 |
| Books | p. 217 |
| Index | p. 123 |
| Table of Contents provided by Syndetics. All Rights Reserved. |