Preface

In many ways this book is one of the design documents for the Eclipse Rich Client Platform (RCP). The first edition was originally written during the Eclipse 3.1 development cycle by members of the development team. Its chapters were sometimes written before the related function was even implemented. The second edition was written during the Eclipse 3.5 development cycle.

The exercise of explaining how things work forced upon us the realities of using the mechanisms and concepts that make up the Eclipse RCP. This was not always pleasant. It did, however, give us a unique opportunity to correct the course of the Eclipse RCP.

Whenever we came across something that was hard to explain or complicated to use, we were able to step back and consider changing Eclipse to make things easier. Often we could, and often we (or, more accurately, the Eclipse Platform team as a whole) did. It is somewhat hard to convey the joyful feeling of deleting a complicated, detailed ten-page set of instructions or explanation and replacing it with just a paragraph detailing a new wizard or facility.

On other occasions we gained key insights that helped us produce a clearer, simpler description of a function. Fixing bugs discovered during this process provided welcome distractions as we were writing, coding, learning, and trying to have real lives all at the same time.

We learned an incredible amount about Eclipse as an RCP and trust that you will, too.

About This Book

This book guides you, the would-be RCP developer, through all stages of developing and delivering an example RCP application called Hyperbola, an instant messaging chat client.

We develop Hyperbola from a blank workspace into a full-featured, branded RCP application. The choice of the instant messaging domain allowed us to plausibly touch a wide range of RCP issues, from building pluggable and dynamically extensible systems to using third-party code libraries to packaging applications for a variety of environments. We cover scenarios ranging from PDAs to kiosks, to stand-alone desktops, to full integration with the Eclipse IDE. This book enables you to do the same with your applications.

Roughly speaking, the book is split in two. The first half, Parts I and II, sets the scene for RCP and presents a tutorial-style guide to building an RCP application. The tutorial incrementally builds Hyperbola into a functioning, branded chat client complete with Help, Update, and other advanced capabilities. The tutorial is written somewhat informally to evoke the feeling that we are there with you, working through the examples and problems. We share some of the pitfalls and mishaps that we experienced while developing the application and writing the tutorial.

The second half of the book looks at what it takes to “make it real.” It’s one thing to write a prototype and quite another to ship a product. We don’t leave you hanging at the prototype stage; Parts III and IV are composed of chapters that dive into the details required to finish the job—namely, the refining and refactoring of the first prototype, customizing the user interface, and building and delivering products to your customers. This part is written as more of a reference, but it still includes a liberal sprinkling of step-by-step examples and code samples. The goal is to cover most of the major stumbling blocks reported in the community and seen in our own development of professional products.

A final part, Part V, is pure reference. It covers the essential aspects of OSGi, the base execution framework for Eclipse, and touches on various functions available in the Eclipse Platform but not covered earlier in the book.

Since one book could not possibly cover everything about Eclipse, and there are many existing books that cover Eclipse and plug-in development, we focus on the areas directly related to RCP functionality, API, and development.

Audience

This book is targeted at several groups of Java developers. Some Java programming experience is assumed and no attempt is made to introduce Java concepts or syntax.

For developers new to the Eclipse RCP, there is information about the origins of the platform, how to get started with the Eclipse IDE, and how to write your first RCP application. Prior experience with Eclipse is helpful but not necessary.

For developers experienced with creating Eclipse plug-ins, the book covers aspects of plug-in development that are unique to RCP development. For example, not only are there special hooks for RCP applications, but RCP applications have additional characteristics such as branding, plug-in building as part of a release engineering process, deployment, and installation, to name a few.

For experienced Eclipse RCP developers, this book covers new RCP features and functions in Eclipse 3.5 as well as the new tooling that makes designing, coding, and packaging RCP applications easier than ever before.

Sample Code

Reading this book can be a very hands-on experience. There are ample opportunities for following along and doing the steps yourself as well as writing your own code. The samples that accompany the book include code for each chapter and can be obtained from the book’s Web site: http://eclipsercp.org. Instructions for managing these samples are given in Chapter 3, “Tutorial Introduction,” and as needed in the text. In particular, the following resources are included:

• A README.HTML file with installation and use instructions

• Eclipse 3.5.2 SDK

• Eclipse 3.5.2 RCP SDK

• Eclipse 3.5.2 RCP delta pack

• Code samples for each chapter as needed

• A prebuilt, complete version of Hyperbola

Conventions

The following formatting conventions are used throughout the book:

Bold—used for UI elements such as menu paths (e.g., File > New > Project) and wizard and editor elements

Italics—used for emphasis and to highlight terminology

Lucida—Used for Java code, property names, file paths, bundle IDs, and the like that are embedded in the text

Lucida Bold—Used to highlight important lines in code samples

Notes and sidebars are used often to highlight information that readers may find interesting or helpful in using or understanding the function being described in the main text. We tried to achieve an effect similar to that of an informal pair-programming experience where you sit down with somebody and get impromptu tips and tricks here and there.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset