Origin of the Book
Starting in late 1999, the authors formed the core of a group within IBM called the Eclipse Jumpstart team. The team was created to share knowledge of what would become Eclipse technology throughout IBM and with its business partners—that is, to “jumpstart” the IBM and IBM partner development community on Eclipse. Part of this effort included the creation of a set of presentations, lecture materials, and accompanying exercises. Over the ensuing months, as the Eclipse technology matured, the presentations and exercises matured as well. As the Eclipse community grew to include various companies and academic institutions, requests for this information also grew. After every class we taught, we revised and improved the materials. When our schedules could not keep pace with the demand, we adapted the materials and made them available for use in a self-study mode. This was the genesis of this book. You can think of each chapter in the book as a classroom lesson. The exercises and examples reinforce the concepts of the chapters and provide you with practice using or extending aspects of Eclipse.
The Second Edition
Late 2003 found most of the original authors still actively engaged in Eclipse. We have been unexpectedly and very pleasantly surprised with the public acceptance of the first edition. The public and private commentary on the first edition was very positive. In July 2004 the first edition received an Editors Choice Award from the Java Developers Journal. The authors express their sincerest thanks and appreciation to our many readers. With the first edition barely six months old, we realized that Eclipse 3.0 would be very special and has the potential to take Eclipse to new heights. It will reach a much larger developer community and potentially millions of users now that Eclipse is not limited to integrated development environments (IDEs) but can host any kind of client application. The authors remain passionate about this technology and the opportunities it offers for innovative tools and applications. We decided to create a second edition earlier than planned. Our objectives for the second edition were to upgrade the book to Eclipse 3.0, improve it based on reader feedback, and add a select number of new topics. This edition is nearing the limit in sheer weight and volume that anyone should have to carry. We hope it continues to serve you and the Eclipse community well.
Whats New in the Second Edition
- All chapters, exercises, and examples from the first edition are updated for Eclipse 3.0.
- The Guide to Reading This Book section has been added. This topic provides a plan to help readers who are new to Eclipse get the most from this comprehensive book.
- There are seven new chapters and three new exercises. There is a special focus on the new rich client support. The book was restructured to acknowledge this significant new feature. A chapter is devoted to the rich client topic along with two detailed exercises. One of the exercises demonstrates the new Eclipse runtime support for dynamic plug-ins.
- For readers who use Eclipse as their Java development environment, a new exercise is included in which you develop a simple Web commerce site using a Java servlet application running on an Apache Tomcat server.
- There is an entirely new introduction to extending Eclipse. A comprehensive chapter devoted to JFace viewers was added and the chapter on views has been expanded. The chapter on concurrency will show you how to create a more responsive user interface by delegating work for processing behind the scenes. You can better manage a rich or complex user interface after reading the chapter on Eclipse capabilities. A chapter devoted to plug-in performance tuning will help you avoid common development pitfalls. A new chapter on internationalization and accessibility will help you develop products that reach wider markets. The chapter on Java Swing interoperability covers Eclipses improved support for Swing.
- The books organization has been restructured, reflecting both the size of the book and the breadth of Eclipse functionality. The book is divided into six parts. Part I is devoted to Eclipse users, and Parts II through V are for developers extending Eclipse. Part VI includes detailed exercises for both using and extending Eclipse.
- The CD-ROM has been restructured for easier access and loading. There are many new examples. All of the example documentation has been packaged into its own help book that can be installed alongside the other books in the Eclipse online help.
Final screenshots in this book were created just as Eclipse 3.0 was about to ship. There may be minor discrepancies between the images in this book and the final version of Eclipse.
Goals
We have several goals in bringing this book to you.
- Provide information for those new to Eclipse—A new user can leverage this book as a tutorial and a later as a reference. We do not assume prior Eclipse knowledge.
- Explore the capabilities of Eclipse—The book covers both using Eclipse as your development environment and extending Eclipse. The chapters in Part I start with Eclipse as a general development environment and then progress to developing and debugging Java, as well as more advanced usage topics, for example, using Eclipse in a team environment. The chapters on extending Eclipse in Parts II through V cover the most frequently used classes in the Eclipse framework. References to design patterns, where applicable, illustrate the architectural relationships among the classes. The intent is not to replace the Javadoc that is included with Eclipse but to complement the documentation by focusing on how to bring a set of classes together to complete a task.
- Provide exercises and working examples that are simple and focused on the chapter topic—The exercises and examples augment the chapter topics and illustrate key points. The chapter text concentrates on the concepts and outlines the basic steps to accomplish a task while providing small sections of code or screen captures to illustrate the point. The exercises provide detailed coding instructions and screen captures to apply the concepts described in the chapter. The CD-ROM that comes with this book contains solutions to the step-by-step exercises as well as additional working examples to supplement chapters in the book.
- Provide comprehensive coverage of Eclipse that is usable at any level of experience—The fundamentals of Eclipse are covered, providing a foundation. From there you are free to roam among the many additional topics based on your needs and interests.
- Promote the Eclipse community—This book provides you with the basic knowledge of Eclipse so that you can become an active participant and help grow the Eclipse open source community.
Although the term “Eclipse” conveys the image of a solar event causing darkness, the intent of this book is to shed light, add clarity, and focus on a powerful new platform. Whether you are new to Eclipse or one of the early adopters, we welcome you to the Eclipse community.
Intended Audience and Prerequisites
The audience for this book includes Java programmers who plan to use Eclipse as their development environment, those who will use Eclipse-based offerings, advanced users who want to customize Eclipse further, tool providers who seek to develop tools that will integrate with Eclipse, and application developers who want to use Eclipse as the framework for their client applications. Prior experience with Eclipse is not necessary; however, this book assumes that you are familiar with the Java programming language. While it describes how to use the Java Development Tools provided by Eclipse, it does not teach the syntax and semantics of the Java programming language.
How the Book Is Organized
This comprehensive book can help you learn to use and extend Eclipse. After you have mastered the basics, you will likely use this book as a reference. To help you learn Eclipse, you should start with the Guide to Reading This Book section. It breaks down this formidable text into manageable chunks that you can read in a sequence better suited for learning.
The book is divided into six parts. Part I, Using Eclipse, applies to those using Eclipse as their development environment. The book begins by covering the basic navigation and terminology of Eclipse. You will learn about the Java development environment, including secrets to becoming a power user. Using Eclipse in a team programming environment is explained. You will learn how to use the flexibility of Eclipse to maximize your productivity and fit your own personal style. Students who are studying the Java programming language may find using Eclipse, instead of simply a command line environment, a much more productive and exciting way to learn the richness and power of the language. Instructors may discover how using Eclipse in the classroom will accelerate the students mastery of the language and be a productive tool to use in research.
Part II, Fundamentals of Extending Eclipse, focuses on the important elements of extending Eclipse independent of whether you are extending Eclipse to develop tools or creating a client application. It covers the architecture of Eclipse, how to develop plug-ins, the creation of client applications using the rich client support, how to make your plug-ins extensible to others, and packaging and deployment.
Part III, Extending the Eclipse Workbench, covers the most commonly required topics to extend Eclipse functionality. Using the Eclipse architecture as a base, Part III covers the frameworks needed to extend the Eclipse user interface. It covers basic graphical user interface (GUI) development using the Standard Widget Toolkit (SWT), dialogs and wizards, menus, viewers, views, editors, perspectives, and online documentation.
Part IV, Extending the Eclipse IDE, focuses on those services that apply when extending Eclipse as an IDE. This is in contrast to Part II, which covers services that apply to both IDE-based and non-IDE-based applications. Part IV includes topics like accessing the workspace and extending the Java Development Tools.
Part V, Extensibility Special Topics, rounds out your knowledge of Eclipse by covering a variety of topics that you may not need right away or that are specialized to specific situations. Chapters covering serviceability, Swing interoperability, concurrency, capabilities, performance tuning, OLE and ActiveX support (Windows), and internationalization are among the topics in Part V.
Learning in a programming environment without actually writing code is difficult. Part VI, Exercises, contains a series of detailed exercises to reinforce the concepts presented in the book. Part VI depends on the files included on the CD-ROM. The CD-ROM contains solutions to all of the exercises and contains many code samples augmenting the material in the chapters. The exercises do not depend on one another, so you can perform them in any order.
Many chapters contain a reference to the book Official Eclipse 3.0 FAQs by John Arthorne and Chris Laffra (Boston, MA: Addison-Wesley, 2004). We recommend it as a complementary addition to this book. Specific frequently asked questions (FAQs) that augment the chapter content are cited in the chapter references and on the CD-ROM. See also http://eclipsefaq.org.