Foreword |
Preface |
The Big Picture / Chapter 1: |
Book Goals / 1.1: |
Plug-In / 1.2: |
Eclipse in a Nutshell / 1.3: |
Circle Zero: Hello World / Part I: |
Setting Up Eclipse for Plug-In Development / Chapter 2: |
Setting Up a Workspace / 2.1: |
Browsing and Searching Source / 2.2: |
Hello World / Chapter 3: |
Declaration/Implementation Split / 3.1: |
Hello Button / 3.2: |
Saying "Hello" / 3.3: |
Circle One: Basic Plug-In / Part II: |
Der Plan / Chapter 4: |
JUnit by Example / 4.1: |
JUnit Integration / 4.2: |
Contributing a Menu Item to Run Tests / Chapter 5: |
Implementing the Menu Item Behavior / Chapter 6: |
Displaying the Results / Chapter 7: |
Defining an Extension Point / Chapter 8: |
Notifying Extensions / Chapter 9: |
Publishing / Chapter 10: |
Package the Plug-In / 10.1: |
Bundling the Plug-In into a Feature / 10.2: |
Contributing / 10.3: |
Closing Circle One / Chapter 11: |
Interlude |
Test-Driven Plug-In Development / Chapter 12: |
PDE JUnit / 12.1: |
A Test Project Fixture / 12.2: |
Testing the Contributed JUnit Plug-In / 12.3: |
And Now... / 12.4: |
Circle Two: The Rest of the Plug-In / Part III: |
Viewing Results / Chapter 13: |
Contributing a View / 13.1: |
Listening to Testing Progress / 13.2: |
Changing Colors / 13.3: |
Menu Contributions / Chapter 14: |
Creating Context Menus / 14.1: |
Contributing Menu Items / 14.2: |
Failed Tests Are Compile Errors / Chapter 15: |
Test Failures as Markers / Chapter 16: |
Test for a Marker / 16.1: |
Passing the Project / 16.2: |
Creating Markers / 16.3: |
Deleting Markers / 16.4: |
Marker Images / 16.5: |
Marker Resolution / 16.6: |
Finding Tests / Chapter 17: |
Builders and Natures / Chapter 18: |
Resource Listeners Versus Builders / 18.1: |
Using Natures to Configure Builders / 18.2: |
Auto-Test Property / Chapter 19: |
Exception Handling / Chapter 20: |
IStatus, CoreException / 20.1: |
Presenting Exceptions in an Error Dialog / 20.2: |
Logging Errors / 20.3: |
Tracing--Instrumenting a Plug-In / Chapter 21: |
Marker Resolution--Invoking a Long-Running Operation / Chapter 22: |
Testing Marker Resolution / 22.1: |
Build and Rerun / 22.2: |
Showing Progress / 22.3: |
Rerunning the Test / 22.4: |
Test Report View--Using JFace / Chapter 23: |
TestResult / 23.1: |
The Test / 23.2: |
The View / 23.3: |
TestReportLabelProvider / 23.4: |
TestReportContentProvider / 23.5: |
Handling Events / 23.6: |
A Simple Editor to Exclude Tests / Chapter 24: |
Contributing an Editor / 24.1: |
Contributing a Contributor / 24.2: |
ResultView Revisited--Observing Changes / Chapter 25: |
Testing Color / 25.1: |
Observing Changes / 25.2: |
Reacting to Changes / 25.3: |
Perspectives / Chapter 26: |
Views in Perspective / 26.1: |
Show View Menu / 26.2: |
Help / Chapter 27: |
Top-Level Help / 27.1: |
Integrated Help / 27.2: |
Context-Sensitive Help / 27.3: |
Internationalization and Accessibility / Chapter 28: |
Externalizing Strings from the Manifest Files / 28.1: |
Externalizing Strings from Code / 28.2: |
Accessibility / 28.3: |
Publishing a Plug-In for Other Programmers / Chapter 29: |
Defining the API / 29.1: |
Exporting Classes / 29.2: |
Separating Published from Internal Packages / 29.3: |
Separating Core from UI / 29.4: |
Publishing an Extension Point--Extension Point Schemas / 29.5: |
Closing Circle Two / Chapter 30: |
Redeploying the Plug-In / 30.1: |
Where to Go Next? / 30.3: |
Circle Three: Pattern Stories / Part IV: |
Core Runtime--IAdaptable / Chapter 31: |
Extension Object/Extension Interface / 31.1: |
Surfacing Interfaces Using IAdaptable / 31.2: |
AdapterFactories--Adding Interfaces to Existing Types / 31.3: |
Core Workspace--Resources / Chapter 32: |
Accessing File-System Resources--Proxy and Bridge / 32.1: |
The Workspace--Composite / 32.2: |
Traversing the Resource Tree--Visitor / 32.3: |
Tracking Resource Changes--Observer / 32.4: |
Batching Changes--Execute Around Method / 32.5: |
Java Core / Chapter 33: |
From Resources to Java Elements--Adapter / 33.1: |
Java Elements--(Virtual) Proxy / 33.2: |
The Java Element Tree--Composite / 33.3: |
Type Hierarchies--Objectifying an Association / 33.4: |
Traversing the Java Model / 33.5: |
Tracking Java Element Changes--Observer / 33.6: |
Collecting Results--Builder / 33.7: |
Abstract Syntax Tree Analysis--Visitor / 33.8: |
Standard Widget Toolkit--SWT / Chapter 34: |
Composing Widgets--Composite / 34.1: |
Defining the Layout--Strategy / 34.2: |
Responding to Events--Observer / 34.3: |
JFace--User Interface Frameworks / Chapter 35: |
Viewers: Connecting a Widget to a Model--Pluggable Adapter / 35.1: |
Viewers: Customizing a Viewer without Subclassing--Strategy / 35.2: |
Actions--Command / 35.3: |
UI Workbench / Chapter 36: |
Implementing the Lazy Loading Rule--Virtual Proxies / 36.1: |
Persisting UI State--Memento / 36.2: |
Workbench Services--IAdaptable / 36.3: |
Closing Circle Three / Chapter 37: |
Final Forward Pointers / 37.1: |
An Invitation to Contribute / 37.2: |
Appendices / Part V: |
TestRunner Details / Appendix A: |
TestRunner / A.1: |
SocketTestRunner / A.2: |
The TestProject Fixture / Appendix B: |
Foreword |
Preface |
The Big Picture / Chapter 1: |
Book Goals / 1.1: |
Plug-In / 1.2: |
Eclipse in a Nutshell / 1.3: |