"I had a question about how to use a new Eclipse 3.0 feature, job scheduling, so I thought I would try out this book. I immediately found the answer with a concise explanation. Cool!"
Official Eclipse 3.0 FAQs is the convenient source for answers to your most crucial questions about writing Eclipse plug-ins. Whether you're creating simple extensions for personal use or commercial Eclipse-based applications, you'll find hundreds of concise solutions here--including many that aren't answered anywhere else.
John Arthorne and Chris Laffra have worked with Eclipse technology since the very beginning; both are active members of the Eclipse development community and frequently answer questions on Eclipse newsgroups and mailing lists. Here, they cover an extraordinary range of topics, from workspace management to documentation, SWT to JFace, JDT to natural language support. Many FAQs include code samples and references to other information, making the book an invaluable desk reference for anyone working with Eclipse.
Just a few of the 350+ questions answered here...
How do I upgrade Eclipse? Page 29
What is new in Eclipse 3.0? Page 34
How can I add my views and actions to an existing perspective? Page 187
How do I set up a Java project to share in a repository? Page 58
How do I declare my own extension point? Page 74
How do I display a Web page in SWT? Page 141
How do I support multiple natural languages in my plug-in messages? Page 253
How do I save settings for a dialog or wizard? Page 166
How do I provide syntax coloring in an editor? Page 269
How do I hook into global actions, such as Copy and Delete? Page 225
How do I create a Rich Client application? Page 241
What is the purpose of activities? Page 229
How do I create and examine an AST? Page 369
Table of contents
- The Eclipse Series
I. The Eclipse Ecosystem
1. The Eclipse Community
- FAQ 1: What is Eclipse?
- FAQ 2: What is the Eclipse Platform?
- FAQ 3: Where did Eclipse come from?
- FAQ 4: What is the Eclipse Foundation?
- FAQ 5: How can my users tell where Eclipse ends and a product starts?
- FAQ 6: What are Eclipse projects and technologies?
- FAQ 7: How do I propose my own project?
- FAQ 8: Who is building commercial products based on Eclipse?
- FAQ 9: What open source projects are based on Eclipse?
- FAQ 10: What academic research projects are based on Eclipse?
- FAQ 11: Who uses Eclipse in the classroom?
- FAQ 12: What is an Eclipse Innovation Grant?
- FAQ 13: What Eclipse newsgroups are available?
- FAQ 14: How do I get access to Eclipse newsgroups?
- FAQ 15: What Eclipse mailing lists are available?
- FAQ 16: What articles on Eclipse have been written?
- FAQ 17: What books have been written on Eclipse?
- FAQ 18: How do I report a bug in Eclipse?
- FAQ 19: How can I search the existing list of bugs in Eclipse?
- FAQ 20: What do I do if my feature request is ignored?
- FAQ 21: Can I get my documentation in PDF form, please?
- FAQ 22: Where do I find documentation for a given extension point?
- FAQ 23: How is Eclipse licensed?
2. Getting Started
- FAQ 24: Where do I get and install Eclipse?
- FAQ 25: How do I run Eclipse?
- FAQ 26: How do I increase the heap size available to Eclipse?
- FAQ 27: Where can I find that elusive .log file?
- FAQ 28: Does Eclipse run on any Linux distribution?
- FAQ 29: I unzipped Eclipse, but it won’t start. Why?
- FAQ 30: How do I upgrade Eclipse?
- FAQ 31: How do I install new plug-ins?
- FAQ 32: Can I install plug-ins outside the main install directory?
- FAQ 33: How do I remove a plug-in?
- FAQ 34: How do I find out what plug-ins have been installed?
- FAQ 35: Where do I get help?
- FAQ 36: How do I accommodate project layouts that don’t fit the Eclipse model?
- FAQ 37: What is new in Eclipse 3.0?
- FAQ 38: Is Eclipse 3.0 going to break all of my old plug-ins?
- FAQ 39: How do I prevent my plug-in from being broken when I update Eclipse?
3. Java Development in Eclipse
- FAQ 40: How do I show/hide files like .classpath in the Navigator?
- FAQ 41: How do I link the Navigator with the currently active editor?
- FAQ 42: How do I use the keyboard to traverse between editors?
- FAQ 43: How can I rearrange Eclipse views and editors?
- FAQ 44: Why doesn’t my program start when I click the Run button?
- FAQ 45: How do I turn off autobuilding of Java code?
- FAQ 46: How do I hide referenced libraries in the Package Explorer?
- FAQ 47: Where do my .class files disappear to?
- FAQ 48: What editor keyboard shortcuts are available?
- FAQ 49: How do I stop the Java editor from showing a single method at once?
- FAQ 50: How do I open a type in a Java editor?
- FAQ 51: How do I control the Java formatter?
- FAQ 52: How do I choose my own compiler?
- FAQ 53: What Java refactoring support is available?
- FAQ 54: How can Content Assist make me the fastest coder ever?
- FAQ 55: How can templates make me the fastest coder ever?
- FAQ 56: What is a Quick Fix?
- FAQ 57: How do I profile my Java program?
- FAQ 58: How do I debug my Java program?
- FAQ 59: How do I find out the command-line arguments of a launched program?
- FAQ 60: What is hot code replace?
- FAQ 61: How do I set a conditional breakpoint?
- FAQ 62: How do I find all Java methods that return a String?
- FAQ 63: What can I view in the Hierarchy view?
- FAQ 64: How do I add an extra library to my project’s classpath?
- FAQ 65: What is the advantage of sharing the .project file in a repository?
- FAQ 66: What is the function of the .cvsignore file?
- FAQ 67: How do I set up a Java project to share in a repository?
- FAQ 68: Why does the Eclipse compiler create a different serialVersionUID from javac?
4. Plug-In Development Environment
- FAQ 69: How do I create a plug-in?
- FAQ 70: How do I use the plug-in Manifest Editor?
- FAQ 71: Why doesn’t my plug-in build correctly?
- FAQ 72: How do I run my plug-in in another instance of Eclipse?
- FAQ 73: What causes my plug-in to build but not to load in a runtime workbench?
- FAQ 74: My runtime workbench runs, but my plug-in does not show. Why?
- FAQ 75: How do I add images and other resources to a runtime JAR file?
- FAQ 76: Can I add icons declared by my plugin.xml in the runtime JAR?
- FAQ 77: When does PDE change a plug-in’s Java build path?
- FAQ 78: What is a PDE JUnit test?
- FAQ 79: Where can I find the Eclipse plug-ins?
- FAQ 80: How do I find a particular class from an Eclipse plug-in?
- FAQ 81: Why do I get a “plug-in was unable to load class” error when I activate a menu or toolbar action?
- FAQ 82: What is the use of the build.xml file?
- FAQ 83: How do I prevent my build.xml file from being overwritten?
- FAQ 84: When is the build.xml script executed?
- FAQ 85: How do I declare my own extension point?
- FAQ 86: How do I find all the plug-ins that contribute to my extension point?
- FAQ 87: Why is the interface for my new extension point not visible?
- FAQ 88: Can my extension point schema contain nested elements?
- FAQ 89: How do I create a feature?
- FAQ 90: How do I synchronize versions between a feature and its plug-in(s)?
- FAQ 91: What is the Update Manager?
- FAQ 92: How do I create an update site (site.xml)?
- FAQ 93: Why does my update site need a license?
- 1. The Eclipse Community
II. The Rich Client Platform
5. All about Plug-ins
- FAQ 94: What is a plug-in?
- FAQ 95: Do I use plugin or plug-in?
- FAQ 96: What is the plug-in manifest file (plugin.xml)?
- FAQ 97: How do I make my plug-in connect to other plug-ins?
- FAQ 98: What are extensions and extension points?
- FAQ 99: What is an extension point schema?
- FAQ 100: How do I find out more about a certain extension point?
- FAQ 101: When does a plug-in get started?
- FAQ 102: Where do plug-ins store their state?
- FAQ 103: How do I find out the install location of a plug-in?
- FAQ 104: What is the classpath of a plug-in?
- FAQ 105: How do I add a library to the classpath of a plug-in?
- FAQ 106: How can I share a JAR among various plug-ins?
- FAQ 107: How do I use the context class loader in Eclipse?
- FAQ 108: Why doesn’t Eclipse play well with Xerces?
- FAQ 109: What is a plug-in fragment?
- FAQ 110: Can fragments be used to patch a plug-in?
- FAQ 111: What is a configuration?
- FAQ 112: How do I find out whether the Eclipse Platform is running?
- FAQ 113: Where does System.out and System.err output go?
- FAQ 114: How do I locate the owner plug-in from a given class?
- FAQ 115: How does OSGi and the new runtime affect me?
- FAQ 116: What is a dynamic plug-in?
- FAQ 117: How do I make my plug-in dynamic enabled?
- FAQ 118: How do I make my plug-in dynamic aware?
6. Runtime Facilities
- FAQ 119: How do I use progress monitors?
- FAQ 120: How do I use a SubProgressMonitor?
- FAQ 121: How do I use the platform logging facility?
- FAQ 122: How do I use the platform debug tracing facility?
- FAQ 123: How do I load and save plug-in preferences?
- FAQ 124: How do I use the preference service?
- FAQ 125: What is a preference scope?
- FAQ 126: How do I use IAdaptable and IAdapterFactory?
- FAQ 127: Does the platform have support for concurrency?
- FAQ 128: How do I prevent two jobs from running at the same time?
- FAQ 129: What is the purpose of job families?
- FAQ 130: How do I find out whether a particular job is running?
- FAQ 131: How can I track the lifecycle of jobs?
- FAQ 132: How do I create a repeating background task?
7. Standard Widget Toolkit (SWT)
- FAQ 133: What is SWT?
- FAQ 134: Why does Eclipse use SWT?
- FAQ 135: Is SWT platform-specific?
- FAQ 136: Is SWT better than Swing?
- FAQ 137: Can I use SWT outside Eclipse for my own project?
- FAQ 138: Are there any visual composition editors available for SWT?
- FAQ 139: Why do I have to dispose of colors, fonts, and images?
- FAQ 140: Why do I get an invalid thread access exception?
- FAQ 141: How do I get a Display instance?
- FAQ 142: How do I prompt the user to select a file or a directory?
- FAQ 143: How do I display a Web page in SWT?
- FAQ 144: How do I embed AWT and Swing inside SWT?
- FAQ 145: Where can I find more information on SWT?
- FAQ 146: What is a viewer?
- FAQ 147: What are content and label providers?
- FAQ 148: What kinds of viewers does JFace provide?
- FAQ 149: Why should I use a viewer?
- FAQ 150: How do I sort the contents of a viewer?
- FAQ 151: How do I filter the contents of a viewer?
- FAQ 152: How do I use properties to optimize a viewer?
- FAQ 153: What is a label decorator?
- FAQ 154: How do I use image and font registries?
- FAQ 155: What is a wizard?
- FAQ 156: How do I specify the order of pages in a wizard?
- FAQ 157: How can I reuse wizard pages in more than one wizard?
- FAQ 158: Can I reuse wizards from other plug-ins?
- FAQ 159: How do I make my wizard appear in the UI?
- FAQ 160: How do I run a lengthy process in a wizard?
- FAQ 161: How do I launch the preference page that belongs to my plug-in?
- FAQ 162: How do I ask a simple yes or no question?
- FAQ 163: How do I inform the user of a problem?
- FAQ 164: How do I create a dialog with a details area?
- FAQ 165: How do I set the title of a custom dialog?
- FAQ 166: How do I save settings for a dialog or wizard?
9. Generic Workbench
- FAQ 167: Pages, parts, sites, windows: What is all this stuff?
- FAQ 168: How do I find out what object is selected?
- FAQ 169: How do I find out what view or editor is selected?
- FAQ 170: How do I find the active workbench page?
- FAQ 171: How do I show progress on the workbench status line?
- FAQ 172: Why should I use the new progress service?
- FAQ 173: How do I write a message to the workbench status line?
- FAQ 174: How do I create a label decorator declaratively?
- FAQ 175: How do I add label decorations to my viewer?
- FAQ 176: How do I make the workbench shutdown?
- FAQ 177: How can I use IWorkbenchAdapter to display my model elements?
- FAQ 178: How do I create my own preference page?
- FAQ 179: How do I use property pages?
- FAQ 180: How do I open a Property dialog?
- FAQ 181: How do I add my wizard to the New, Import, or Export menu categories?
- FAQ 182: Can I activate my plug-in when the workbench starts?
- FAQ 183: How do I create an image registry for my plug-in?
- FAQ 184: How do I use images defined by other plug-ins?
- FAQ 185: How do I show progress for things happening in the background?
- FAQ 186: How do I switch from using a Progress dialog to the Progress view?
- FAQ 187: Can I make a job run in the UI thread?
- FAQ 188: Are there any special Eclipse UI guidelines?
- FAQ 189: Why do the names of some interfaces end with the digit 2?
10. Perspectives and Views
- FAQ 190: How do I create a new perspective?
- FAQ 191: How can I add my views and actions to an existing perspective?
- FAQ 192: How do I show a given perspective?
- FAQ 193: What is the difference between a perspective and a workbench page?
- FAQ 194: How do I create fixed views and perspectives?
- FAQ 195: What is a view?
- FAQ 196: What is the difference between a view and a viewer?
- FAQ 197: How do I create my own view?
- FAQ 198: How do I set the size or position of my view?
- FAQ 199: Why can’t I control when, where, and how my view is presented?
- How will my view show up in the Show View menu?
- FAQ 201: How do I make my view appear in the Show In menu?
- FAQ 202: How do I add actions to a view’s menu and toolbar?
- FAQ 203: How do I make a view respond to selection changes in another view?
- FAQ 204: How does a view persist its state between sessions?
- FAQ 205: How do I open multiple instances of the same view?
11. Generic Editors
- FAQ 206: What is the difference between a view and an editor?
- FAQ 207: How do I open an editor programmatically?
- FAQ 208: How do I open an external editor?
- FAQ 209: How do I dynamically register an editor to handle a given extension?
- FAQ 210: How do I switch to vi or emacs-style key bindings?
- FAQ 211: How do I create my own editor?
- FAQ 212: How do I enable the Save and Revert actions?
- FAQ 213: How do I enable global actions such as Cut, Paste, and Print in my editor?
- FAQ 214: How do I hook my editor to the Back and Forward buttons?
- FAQ 215: How do I create a form-based editor, such as the plug-in Manifest Editor?
- FAQ 216: How do I create a graphical editor?
- FAQ 217: How do I make an editor that contains another editor?
12. Actions, Commands, and Activities
- FAQ 218: Actions, commands, operations, jobs: What does it all mean?
- FAQ 219: What is an action set?
- FAQ 220: How do I make my action set visible?
- FAQ 221: How do I add actions to the global toolbar?
- FAQ 222: How do I add menus to the main menu?
- FAQ 223: How do I add actions to the main menu?
- FAQ 224: Why are some actions activated without a target?
- FAQ 225: Where can I find a list of existing action group names?
- FAQ 226: What is the difference between a command and an action?
- FAQ 227: How do I associate an action with a command?
- FAQ 228: How do I create my own key-binding configuration?
- FAQ 229: How do I provide a keyboard shortcut for my action?
- FAQ 230: How can I change the name or tooltip of my action?
- FAQ 231: How do I hook into global actions, such as Copy and Delete?
- FAQ 232: How do I build menus and toolbars programmatically?
- FAQ 233: How do I make menus with dynamic contents?
- FAQ 234: What is the difference between a toolbar and a cool bar?
- FAQ 235: Can other plug-ins add actions to my part’s context menu?
- FAQ 236: How do I add other plug-ins’ actions to my menus?
- FAQ 237: What is the purpose of activities?
- FAQ 238: How do I add activities to my plug-in?
- FAQ 239: How do activities get enabled?
- FAQ 240: What is the difference between perspectives and activities?
13. Building Your Own Application
- FAQ 241: What is an Eclipse application?
- FAQ 242: How do I create an application?
- FAQ 243: What is the minimal Eclipse configuration?
- FAQ 244: How do I create a Rich Client application?
- FAQ 245: How do I customize the menus in an RCP application?
- FAQ 246: How do I make key bindings work in an RCP application?
- FAQ 247: Can I create an application that doesn’t have views or editors?
- FAQ 248: How do I specify where application data is stored?
- FAQ 249: Can I create an application that doesn’t have a data location?
14. Productizing an Eclipse Offering
- FAQ 250: What is an Eclipse product?
- FAQ 251: What is the difference between a product and an application?
- FAQ 252: How do I distribute my Eclipse offering?
- FAQ 253: Can I use an installation program to distribute my Eclipse product?
- FAQ 254: Can I install my product as an add-on to another product?
- FAQ 255: Where do I find suitable Eclipse logos and wordmarks?
- FAQ 256: When do I need to write a plug-in install handler?
- FAQ 257: How do I support multiple natural languages in my plug-in messages?
- FAQ 258: How do I replace the Eclipse workbench window icon with my own?
- FAQ 259: How do I write my own eclipse.exe platform launcher?
- FAQ 260: Who shows the Eclipse splash screen?
- FAQ 261: How can I publish partial upgrades (patches) to my product?
- 5. All about Plug-ins
III. The Eclipse IDE Platform
15. Text Editors
- FAQ 262: What support is there for creating custom text editors?
- FAQ 263: I’m still confused! How do all the editor pieces fit together?
- FAQ 264: How do I get started with creating a custom text editor?
- FAQ 265: How do I use the text document model?
- FAQ 266: What is a document partition?
- FAQ 267: How do I add Content Assist to my editor?
- FAQ 268: How do I provide syntax coloring in an editor?
- FAQ 269: How do I support formatting in my editor?
- FAQ 270: How do I insert text in the active text editor?
- FAQ 271: What is the difference between highlight range and selection?
- FAQ 272: How do I change the selection on a double-click in my editor?
- FAQ 273: How do I use a model reconciler?
16. Help, Search, and Compare
- FAQ 274: How do I add help Content to my plug-in?
- FAQ 275: How do I provide F1 help?
- FAQ 276: How do I contribute help contexts?
- FAQ 277: How can I generate HTML and toc.xml files?
- FAQ 278: How do I Write a Search dialog?
- FAQ 279: How do I implement a search operation?
- FAQ 280: How do I display search results?
- FAQ 281: How can I use and extend the compare infrastructure?
- FAQ 282: How do I create a Compare dialog?
- FAQ 283: How do I create a compare editor?
17. Workspace and Resources API
- FAQ 284: How are resources created?
- FAQ 285: Can I create resources that don’t reside in the file system?
- FAQ 286: What is the difference between a path and a location?
- FAQ 287: When should I use refreshLocal?
- FAQ 288: How do I create my own tasks, problems, bookmarks, and so on?
- FAQ 289: How can I be notified of changes to the workspace?
- FAQ 290: How do I prevent builds between multiple changes to the workspace?
- FAQ 291: Why should I add my own project nature?
- FAQ 292: Where can I find information about writing builders?
- FAQ 293: How do I store extra properties on a resource?
- FAQ 294: How can I be notified on property changes on a resource?
- FAQ 295: How and when do I save the workspace?
- FAQ 296: How can I be notified when the workspace is being saved?
- FAQ 297: Where is the workspace local history stored?
- FAQ 298: How can I repair a workspace that is broken?
- FAQ 299: What support does the workspace have for team tools?
18. Workbench IDE
- FAQ 300: How do I open an editor on a file in the workspace?
- FAQ 301: How do I open an editor on a file outside the workspace?
- FAQ 302: How do I open an editor on something that is not a file?
- FAQ 303: Why don’t my markers show up in the Tasks view?
- FAQ 304: Why don’t my markers appear in the editor’s vertical ruler?
- FAQ 305: How do I access the active project?
- FAQ 306: What are IWorkspaceRunnable, IRunnableWithProgress, and WorkspaceModifyOperation?
- FAQ 307: How do I write to the console from a plug-in ?
- FAQ 308: How do I prompt the user to select a resource?
- FAQ 309: Can I use the actions from the Navigator in my own plug-in?
- FAQ 310: What APIs exist for integrating repository clients into Eclipse?
- FAQ 311: How do I deploy projects to a server and keep the two synchronized?
- FAQ 312: What is the difference between a repository provider and a team subscriber?
- FAQ 313: What is a launch configuration?
- FAQ 314: When do I use a launch delegate?
- FAQ 315: What is Ant?
- FAQ 316: Why can’t my Ant build find javac?
- FAQ 317: How do I add my own external tools?
- FAQ 318: How do I create an external tool builder?
19. Implementing Support for Your Own Language
- FAQ 319: What is eScript?
- FAQ 320: Language integration phase 1: How do I compile and build programs?
- FAQ 321: How do I load source files edited outside Eclipse?
- FAQ 322: How do I run an external builder on my source files?
- FAQ 323: How do I implement a compiler that runs inside Eclipse?
- FAQ 324: How do I react to changes in source files?
- FAQ 325: How do I implement an Eclipse builder?
- FAQ 326: Where are project build specifications stored?
- FAQ 327: How do I add a builder to a given project?
- FAQ 328: How do I implement an incremental project builder?
- FAQ 329: How do I handle setup problems for a given builder?
- FAQ 330: How do I make my compiler incremental?
- FAQ 331: Language integration phase 2: How do I implement a DOM?
- FAQ 332: How do I implement a DOM for my language?
- FAQ 333: How can I ensure that my model is scalable?
- FAQ 334: Language integration phase 3: How do I edit programs?
- FAQ 335: How do I write an editor for my own language?
- FAQ 336: How do I add Content Assist to my language editor?
- FAQ 337: How do I add hover support to my text editor?
- FAQ 338: How do I create problem markers for my compiler?
- FAQ 339: How do I implement Quick Fixes for my own language?
- FAQ 340: How do I support refactoring for my own language?
- FAQ 341: How do I create an Outline view for my own language editor?
- FAQ 342: Language integration phase 4: What are the finishing touches?
- FAQ 343: What wizards do I define for my own language?
- FAQ 344: When does my language need its own nature?
- FAQ 345: When does my language need its own perspective?
- FAQ 346: How do I add documentation and help for my own language?
- FAQ 347: How do I support source-level debugging for my own language?
20. Java Development Tool API
- FAQ 348: How do I extend the JDT?
- FAQ 349: What is the Java model?
- FAQ 350: How do I create Java elements?
- FAQ 351: How do I create a Java project?
- FAQ 352: How do I manipulate Java code?
- FAQ 353: What is a working copy?
- FAQ 354: What is a JDOM?
- FAQ 355: What is an AST?
- FAQ 356: How do I create and examine an AST?
- FAQ 357: How do I distinguish between internal and external JARs on the build path?
- FAQ 358: How do I launch a Java program?
- FAQ 359: What is JUnit?
- FAQ 360: How do I participate in a refactoring?
- FAQ 361: What is LTK?
- 15. Text Editors
- Title: Official Eclipse 3.0 FAQs
- Release date: June 2004
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780321268389
You might also like
Learning Amazon Web Services (AWS): A Hands-On Guide to the Fundamentals of AWS Cloud
The Practical, Foundational Technical Introduction to the World's #1 Cloud Platform Includes access to several hours …
Patterns of Enterprise Application Architecture
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. …
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …
Contributing to Eclipse: Principles, Patterns, and Plug-Ins
"Even long-time Eclipse committers will be surprised by the breadth and depth of this book. A …