- Shopping Bag ( 0 items )
- Spend $25, Get FREE SHIPPING
List Price
$59.99
Textbook Details
Used & New From our Trusted Marketplace Sellers
To try again, please visit the B&N Marketplace.
Eclipse is far more than the leading Java IDE: it's an open source platform for creating extensible integrated tools and rich client applications of all kinds. Using plug-ins, anyone can build tools that integrate seamlessly with the Eclipse environment and leverage its immense power. This book introduces and illuminates the entire process of plug-in development, presenting all best practices needed to achieve high-quality results. Building on three best-selling previous editions, Eclipse Plug-ins, Fourth Edition it has been fully revised to reflect Eclipse 4.0, a milestone release containing powerful new capabilities. The authors have substantially revised more than 80% of their content, revamped and retested all sample code to reflect Eclipse 4.0 API and modern Java syntax, and completely reworked their popular Favorites View case study to reflect today's most effective techniques. Writing for Eclipse developers at all levels of experience, experts Eric Clayberg, Dan Rubel, and Jaime Wren illuminate every aspect of plug-in development, and share proven solutions for today's most common challenges. Throughout, they carefully cover new functionality added to existing Eclipse features, such as views and editors, and offer insightful explanations of new and recent additions such as GEF and PDE Build. Since its original publication, this has been the definitive book for Eclipse plug-in developers. With its latest improvements, it's now even more valuable
More Reviews and RecommendationsEric Clayberg, Software Engineering Manager for Google, is primary author and architect of more than a dozen commercial Java and Smalltalk add-on products. He co-founded both ObjectShare and Instantiations. Dan Rubel, Senior Software Engineer at Google, Inc., has 15 years of Java experience and eleven years of experience with Eclipse. He has architected and managed several successful commercial products, including RCP Developer, WindowTester, jFactor, and jKit. He previously served as CTO at Instantiations. Jaime Wren has worked with object technologies for nine years, including four as Senior Software Engineer at Instantiations focusing on commercial Eclipse-based plug-ins and GEF.
The Barnes & Noble Review
Some folks use Eclipse as a great Java development IDE and leave it at that. But Eclipse is far more: It s a platform that can be extended in virtually any direction, supporting an extraordinary range of new products. Of course, if you want to build extensions someone will actually pay for, you d better pay attention to the details. Not just integration: user interfaces, change tracking, feature planning, product build, packaging, help systems, internationalization, maybe even branding. If you want to master everything that s involved in building commercial-grade Eclipse extensions, Eric Clayberg and Dan Rubel are here to help.
You can start from scratch with this book. The authors carefully introduce the Eclipse development environment, architecture, and the structure of plug-ins and extension points. You ll walk step-by-step through building your first plug-in: one that you ll use throughout the book for experimentation. There s also a detailed introduction to user interface construction with SWT and JFace. But, unlike some books, the advanced stuff's here, too. Clayberg and Rubel make all of it easier with plenty of sample code, diagrams, screen shots, and so forth.
Compatibility certifications simplify life for anyone who wants to market products based on a new platform. There s no formal Eclipse certification. But there is Ready for WebSphere Studio, which promises that your software will integrate with IBM s Eclipse-based web development tools. This book s authors wrote the very first commercial add-on for WebSphere Studio Application Developer v4.0. When they discuss certification -- or anything else related to Eclipse, for that matter -- they speak with singular authority. Bill Camarda
Bill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2003 and Upgrading & Fixing Networks for Dummies, Second Edition.
| Foreword | ||
| Foreword | ||
| Ch. 1 | Using Eclipse tools | 1 |
| Ch. 2 | A simple plug-in example | 83 |
| Ch. 3 | Eclipse infrastructure | 129 |
| Ch. 4 | The standard widget toolkit | 155 |
| Ch. 5 | JFace viewers | 213 |
| Ch. 6 | Actions | 235 |
| Ch. 7 | Views | 285 |
| Ch. 8 | Editors | 349 |
| Ch. 9 | Resource change tracking | 397 |
| Ch. 10 | Perspectives | 411 |
| Ch. 11 | Dialogs and wizards | 429 |
| Ch. 12 | Preference pages | 479 |
| Ch. 13 | Properties | 507 |
| Ch. 14 | Builders, markers, and natures | 529 |
| Ch. 15 | Implementing help | 571 |
| Ch. 16 | Internationalization | 603 |
| Ch. 17 | Creating new extension points | 627 |
| Ch. 18 | Features and branding | 653 |
| Ch. 19 | Building a product | 693 |
| Ch. 20 | Advanced topics | 739 |
When we were first exposed to Eclipse back in late 1999, we were struck by the magnitude of the problem IBM was trying to solve. IBM wanted to unify all of its development environments on a single code base. At the time, the company was using a mix of technology composed of a hodgepodge of C/C++, Java, and Smalltalk.
Many of IBM's most important tools, including the award-winning Visual-Age for Java IDE, were actually written in Smalltalka wonderful language for building sophisticated tools, but one that was rapidly losing market share to languages like Java. While IBM had one of the world's largest collections of Smalltalk developers, there wasn't a great deal of industry support for it outside of IBM, and there were very few independent software vendors (ISVs) qualified to create Smalltalk-based add-ons.
Meanwhile, Java was winning the hearts and minds of developers worldwide with its promise of easy portability across a wide range of platforms, while providing the rich application programming interface (API) needed to build the latest generation of Web-based business applications. More importantly, Java was an object-oriented (OO) language, which meant that IBM could leverage the large body of highly skilled object-oriented developers it had built up over the years of creating Smalltalk-based tools. In fact, IBM took its premiere Object Technology International (OTI) group, which had been responsible for creating IBM's VisualAge Smalltalk and VisualAge Java environments (VisualAge Smalltalk was the first of the VisualAge brand family and VisualAge Java was built using it), and tasked it with creating a highly extensibleintegrated development environment (IDE) construction set based in Java. Eclipse was the happy result.
OTI was able to apply its highly evolved OO skills to produce an IDE unmatched in power, flexibility, and extensibility. The group was able to replicate most of the features that had made Smalltalk-based IDEs so popular the decade before, while simultaneously pushing the state-of-the-art in IDE development ahead by an order of magnitude.
The Java world had never seen anything as powerful or as compelling as Eclipse, and it now stands, with Microsoft's .NET, as one of the world's premier development environments. That alone makes Eclipse a perfect platform for developers wishing to get their tools out to as wide an audience as possible. The fact that Eclipse is completely free and open source is icing on the cake. An open, extensible IDE base that is available for free to anyone with a computer is a powerful motivator to the prospective tool developer.
It certainly was to us. At Instantiations and earlier at ObjectShare, we had spent the better part of a decade as entrepreneurs focused on building add-on tools for various IDEs. We had started with building add-ons to Digitalk's Smalltalk/V, migrated to developing tools for IBM's VisualAge Smalltalk, and eventually ended up creating tools for IBM's VisualAge Java (including our award-winning VA Assist product and our jFactor product, one of the world's first Java refactoring tools). Every one of these environments provided a means to extend the IDE, but they were generally not well-documented and certainly not standardized in any way. Small market shares (relative to tools such as VisualBasic) and an eclectic user base also afflicted these environments and, by extension, us.
As an Advanced IBM Business Partner, we were fortunate to have built a long and trusted relationship with the folks at IBM responsible for the creation of Eclipse. That relationship meant that we were in a unique position to be briefed on the technology and start using it on a daily basis nearly a year and half before the rest of the world even heard about it. When IBM finally announced Eclipse to the world in mid-2001, our team at Instantiations had built some of the first demo applications IBM had to show. Later that year when IBM released its first Eclipse-based commercial tool, WebSphere Studio Application Developer v4.0 (v4.0 so that it synchronized with its then current VisualAge for Java v4.0), our CodePro Studio product became the very first commercial add-on available for it (and for Eclipse in general) on the same day.
Our CodePro product currently adds hundreds of enhancements to Eclipse and any Eclipse-based IDE. Developing CodePro over the last several years has provided us with an opportunity to learn the details of Eclipse development at a level matched by very few others (with the obvious exception of the developers at IBM and OTI, who eat, sleep, and breathe this stuff on a daily basis). CodePro has also served as a testbed for many of the ideas and techniques presented in this book, providing us with a unique perspective from which to write.
This book provides an in-depth description of the process involved in building commercial-quality extensions for the Eclipse and WebSphere Studio Workbench (IBM's commercial version of Eclipse) development environments. To us, "commercial-quality" is synonymous with "commercial-grade" or "high– quality." Producing a "commercial-quality" plug-in means going above and beyond the minimal requirements needed to integrate with Eclipse. It means attending to all of those details contributing to the "fit and polish" of a commercial offering.
In the world of Eclipse plug-ins, very few people take the time to really go the extra mile, and most plug-ins fall into the open source, amateur category. For folks interested in producing high-quality plug-ins (which would certainly be the case for any software company wanting to develop Eclipse-based products), there are many additional steps to follow. Our book is meant to encompass the entire process of plug-in development, including all the extra things that need to be done to achieve high-quality results.
This book has several complementary goals:
The first three chapters introduce the Eclipse development environment and outline the process of building a simple plug-in. The intention of these chapters is to help developers new to Eclipse quickly pull together a plug-in they can use to experiment with.
The first chapter, in particular, introduces the reader to the minimum set of Eclipse tools that he or she will need to build plug-ins. It is a fairly quick overview of the Eclipse IDE and relevant tools (one could write an entire book on that topic alone), and we would expect expert Eclipse users to skip that chapter entirely.
The second chapter introduces the example that we will use throughout most of the book and provides a very quick introduction to building a working plug-in from start to finish. The third chapter presents a high-level overview of the Eclipse architecture and the structure of plug-ins and extension points.
The fourth and fifth chapters of the book cover the Standard Widget Toolkit (SWT) and JFace, which are the building blocks for all Eclipse user interfaces (UIs). These chapters can act as a standalone reference; they are intended to provide just enough detail to get you going. Both of these topics are rich enough to warrant entire books and many no doubt are in the works.
The subsequent chapters, comprising the bulk of the book, are focused on describing each of the various aspects of plug-in development and providing the reader with in-depth knowledge of how to solve the various challenges involved. Each chapter focuses on a different aspect of the problem, and include an overview, a detailed description, a discussion of challenges and solutions, diagrams, screen shots, cookbook-style code examples, relevant API listings, and a summary.
We have structured the book so that the most important material required for every plug-in project appears in the first half of the book. Some of the packaging- and building-oriented material is placed at the end (like features and product build). This organizational scheme left several topics that, while not critical to every plug-in, were important to the creation of "commercialquality" plug-ins. These topics were then placed in the second half of the book in an order based on the importance of the topic and how it related to earlier material. Internationalization, for example, is one of those topics. It isn't critical, and it isn't even all that complicated when you get right down to it. It is important to the premise of this book, so we felt it was a topic we needed to include. Since we aren't assuming that the reader is an Eclipse expert (or even a plug-in developer), we tried to take the reader through each of the important steps in as much detail as possible. While it is true that this is somewhat introductory, it is also an area that most plug-in developers totally ignore and have little or no experience with.
Sometimes a developer needs a quick solution, while at other times that same developer needs to gain in-depth knowledge on a particular aspect of development. The intent is to provide several different ways for the reader to absorb and use the information so that both needs can be addressed. Relevant APIs are included in several of the chapters so that the book may be used as a standalone reference during development without requiring the reader to look up those APIs in the IDE. Most API descriptions are copied or paraphrased from the Eclipse platform Javadoc.
As the originators of Eclipse and a major consumer of Eclipse-based technology, IBM is justifiably concerned that new plug-ins meet the same high-quality standards that IBM adheres to. To that end, IBM has established a rigorous "Ready for WebSphere Studio" (RFWS) certification program meant to insure the availability of high-quality add-ons to Eclipse and WebSphere Studio Workbench (WSW). RFWS certification should be one of the ultimate goals for anyone wishing to build and market Eclipse plug-ins. In each chapter, we will cover any relevant RFWS certification criteria and strategies.
The examples provided as part of each chapter describe building various aspects of a concrete Eclipse plug-in that you will see evolve over the course of the book. When this book is used as a reference rather than read cover-to-cover, you will typically start to look in one chapter for issues that are covered in another. To facilitate this type of searching, each chapter will contain numerous forward and backward references to related material that appears in other chapters.Intended Audience
The audience for this book includes Java tool developers wishing to build products that integrate with Eclipse and other Eclipse-based products, relatively advanced Eclipse users wishing to customize their environments, or anyone who is curious about what makes Eclipse tick. You do not need to be an expert Eclipse user to make use of this book, as we introduce most of what you need to know to use Eclipse in Chapter 1, "Using Eclipse Tools." While we don't assume any preexisting Eclipse knowledge, we do expect the reader to be a fairly seasoned developer with a good grasp of Java and at least a cursory knowledge of extensible markup language (XML).
The following formatting conventions are used throughout the book:
BoldUsed for the names of UI elements such as menus, buttons, field labels, tabs, and window titles.
ItalicUsed for emphasizing new terms.
CourierUsed for code examples, references to class and method names, and filenames.
Courier BoldUsed to emphasize code elements.
"Quoted text"Used for text to be entered by the user.
The authors would like to thank all of those who had a hand in putting this book together or who gave us their support and encouragement through the many months it took to create.
To our comrades at Instantiations, who gave us the time and encouragement to work on the book: Brent Caldwell, Paul Curtis, Mark Johnson, Warren Martin, Steve Messick, Tim O'Conner, Chuck Shawan, Julie Taylor, Mike Taylor, and Brian Wilkerson.
To our agent, Laura Lewin, and the staff at Studio B, who encouraged us from day one and worked tirelessly on our behalf.
To our editor, John Neidhart, our production editor, Kathleen Caren, our copy editor, Camie Goffi, and the staff at Pearson, for their encouragement and tremendous efforts in preparing this book for production.
To Simon Archer, who contributed an unparalleled number of changes and suggestions and helped us improve the book in almost every dimension.
To our technical reviewers, who helped us enhance the book in many ways: Joe Bowbeer, Brian Wilkerson, Joe Winchester, David Whiteman, Boris Pruesmann, and Raphael Enns.
To the series editors, Erich Gamma, Lee Nackman and John Weigand, for their thoughtful comments and for their on-going efforts to make Eclipse the best development environment in the world.
We would also like to thank our wives, Karen and Kathy, for their endless patience, and our children, Beth, Lauren, Lee, and David, for their endless inspiration.
While we have made every effort to make sure that the material in this book is timely and accurate, Eclipse is a rapidly moving target and it is quite possible that you may encounter differences between what we present in this book and what you experience using Eclipse. The Eclipse UI has evolved considerably over the years, and the latest 3.0 release is no exception. While we have targeted this book at Eclipse 3.0 and used it for all of our examples, this book was completed before Eclipse 3.0 was finally locked down. That means that you may encounter various views, dialogs, and wizards that are subtly different from the screen shots in the book.
To try again, please visit the B&N Marketplace.



