'If you're looking for just one Eclipse plug-in development book that will be your guide, this is the one. While there are other books available on Eclipse, few dive as deep as Eclipse: Building Commercial-Quality Plug-Ins.' -- Simon ArcherEclipse has established itself as a dominant force in the application-development space. Key to the success of Eclipse is the ability of developers to extend its functionality using plug-ins.
This new edition of Eclipse: Building Commercial Quality Plug-Ins is the definitive, start-to-finish guide to building commercial-quality Eclipse plug-ins, with an emphasis on adding the sophistication and polish that paying customers demand. The book provides both a quick introduction to using Eclipse for new users and a reference for experienced Eclipse users wishing to expand their knowledge and improve the quality of their Eclipse-based products.
Revised to take advantage of pure Eclipse 3.1 and 3.2 APIs, this widely praised bestseller presents detailed, practical coverage of every aspect of plug-in development and specific solutions for the challenges developers are most likely to encounter. All code examples, relevant API listings, diagrams, and screen captures have been updated. This edition covers Eclipse changes both large and small: concepts--such as actions, views, and editors--that have not changed radically but now have additional functionality and capabilities; and other areas, such as the Eclipse plug-in infrastructure, which have changed drastically due to the Eclipse shift toward an OSGi-based infrastructure.
Includes a quick introduction to Eclipse for experienced Java programmers
Serves as a systematic reference for experienced Eclipse users
Introduces all the tools you need to build Eclipse and Rational plug-ins
Explains the Eclipse architecture and the structure of plug-ins and extension points
Walks step-by-step through building complete Eclipse plug-ins
Offers practical guidance on building Eclipse user interfaces with SWT and JFace
Shows how to use change tracking, perspectives, builders, markers, natures, and more
Covers internationalization, Help systems, features, and branding
This book is designed for anyone who wants a deep understanding of Eclipse, and every experienced developer interested in extending Eclipse or the Rational Software Development Platform
Table of Contents
Foreword by Skip McGaughey
Foreword by Simon Archer
Preface
Chapter 1: Using Eclipse Tools
1.1 Getting Started
1.2 The Eclipse Workbench
1.3 Setting up Your Environment
1.4 Creating a Project
1.5 Navigating
1.6 Searching
1.7 Writing Code
1.8 Team Development Using CVS
1.9 Running Applications
1.10 Introduction to Debugging
1.11 Introduction to Testing
1.12 Summary
Chapter 2: A Simple Plug-in Example
2.1 The Favorites Plug-in
2.2 Creating a Plug-in Project
2.3 Reviewing the Generated Code
2.4 Building a Product
2.5 Installing and Running the Product
2.6 Debugging the Product
2.7 PDE Views
2.8 Writing Plug-in Tests
2.9 Summary
Chapter 3: Eclipse Infrastructure
3.1 Structural Overview
3.2 Plug-in Directory or JAR file
3.3 Plug-in Manifest
3.4 Plug-in Class
3.5 Plug-in Model
3.6 Logging
3.7 Eclipse Plug-ins
3.8 Summary
Chapter 4: The Standard Widget Toolkit
4.1 SWT History and Goals
4.2 SWT Widgets
4.3 Layout Management
4.4 Resource Management
4.5 Summary
Chapter 5: JFace Viewers
5.1 List-Oriented Viewers
5.2 Text Viewers
5.3 Summary
Chapter 6: Actions
6.1 IAction versus IActionDelegate
6.2 Workbench Window Actions
6.3 Object Actions
6.4 View Actions
6.5 Editor Actions
6.6 Key Bindings
6.7 RFRS Considerations
6.8 Summary
Chapter 7: Views
7.1 View Declaration
7.2 View Part
7.3 View Actions
7.4 Linking the View
7.5 Saving View State
7.6 Testing
7.7 Image Caching
7.8 Auto-sizing Table Columns
7.9 RFRS Considerations
7.10 Summary
Chapter 8: Editors
8.1 Editor Declaration
8.2 Editor Part
8.3 Editing
8.4 Editor Lifecycle
8.5 Editor Actions
8.6 Linking the Editor
8.7 RFRS Considerations
8.8 Summary
Chapter 9: Resource Change Tracking
9.1 IResourceChangeListener
9.2 Processing Change Events
9.3 Batching Change Events
9.4 Progress Monitor
9.5 Delayed Changed Events
9.6 Summary
Chapter 10: Perspectives
10.1 Creating a Perspective
10.2 Enhancing an Existing Perspective
10.3 RFRS Considerations
10.4 Summary
Chapter 11: Dialogs and Wizards
11.1 Dialogs
11.2 Wizards
11.3 RFRS Considerations
11.4 Summary
Chapter 12: Preference Pages
12.1 Creating a Preference Page
12.2 Preference Page APIs
12.3 Preference APIs
12.4 RFRS Considerations
12.5 Summary
Chapter 13: Properties
13.1 Creating Properties
13.2 Displaying Properties in the Properties Dialog
13.3 Displaying Properties in the Properties View
13.4 Property Pages Reused as Preference Pages
13.5 RFRS Considerations
13.6 Summary
Chapter 14: Builders, Markers, and Natures
14.1 Builders
14.2 Markers
14.3 Natures
14.4 RFRS Considerations
14.5 Summary
Chapter 15: Implementing Help
15.1 Using Help
15.2 Implementing Help
15.3 Context-Sensitive Help (F1)
15.4 Accessing Help Programmatically
15.5 Cheat Sheets
15.6 RFRS Considerations
15.7 Summary
Chapter 16: Internationalization
16.1 Externalizing the Plug-in Manifest
16.2 Externalizing Plug-in Strings
16.3 Using Fragments
16.4 Summary
Chapter 17: Creating New Extension Points
17.1 The Extension Point Mechanism
17.2 Defining an Extension Point
17.3 Code Behind an Extension Point
17.4 Extension Point Documentation
17.5 Using the Extension Point
17.6 RFRS Considerations
17.7 Summary
Chapter 18: Features, Branding and Updates
18.1 Feature Projects
18.2 Branding
18.3 Update Sites
18.4 RFRS Considerations
18.5 Summary
Chapter 19: Building a Product
19.1 A Brief Introduction to Ant
19.2 Building the Favorites Product
19.3 Summary
Chapter 20: Advanced Topics
20.1 Advanced Search--Reference Projects
20.2 Accessing Internal Code
20.3 Adapters
20.4 Opening a Browser or Creating an Email
20.5 Types Specified in an Extension Point
20.6 Modifying Eclipse to Find Part Identifiers
20.7 Label Decorators
20.8 Background Tasks--Jobs API
20.9 Plug-in ClassLoaders
20.10 Early Startup
20.11 Rich Client Platform
20.12 Conclusion
Appendix A: Eclipse Plug-ins and Resources
A.1 Plug-ins
A.2 Resources
Appendix B: Ready for Rational Software
Index