*, 400
{ } braces, 500–501
+ plus sign, 36
+ character (keystrokes), 180
$ dollar sign, 500
= sign, 296
About dialog text and images, 125
About image format, 125
About information, 87, 124–126, 209
AbstractHandler, 300–301
AbstractPresentationFactory, 322–323
AbstractTextEditor, 498–499
ActionBarAdvisor, 55, 85–86, 97–99, 220–223, 267
ActionFactory, 91, 172, 183, 274–276, 278
ActionFactory.PREFERENCES, 172
Action(s)
extension points, 234–235
global action handler, 277
Hyperbola, 83–87
progress reporting, 282–289
registering, 86
responsibilites, 264–265
retargetable actions, 275–277
standard actions, 274–275
and the status line, 281–282
toolbar actions, 278–281
actionSetPartAssociation, 234
Activators, 462–468
Active (bundle), 461
activeWhen, 301
activities extension point, 235
Adapter factory, 75–77, 80–81, 149
Adapter mechanism, 75–78
add() and remove() methods, 365
AddContactAction, 88–93, 181, 200, 300–301
AddContactAction.ID, 179
addExtension(), 361
addFastView(), 245
addNewWizardShortcut(), 246, 278
addPerspectiveShortcut(), 246, 248–249
addRepository, 349
AddSelectionListener(), 255, 265
addShowInPart(), 246
addView(), 69–70, 242, 245, 251–252, 501
Adobe Flash/AIR, 4
Advisors. See Workbench advisors
Agent, 338
alloc(), 365
all-permissions, 436–437
Alt key, 180
Alt+Shift+F2, 296
Anchor, 195–196
Anonymous extensions, 393–394
Ant pattern syntax, 400
Ant script generator, 398
Ant scripts, 409
Antrunner, 408
Apache, 138
Application (Eclipse), 52
ApplicationActionBarAdvisor, 91, 182, 190
Applications (Equinox), 22
Applications extension point, 52
ApplicationWorkbenchAdvisor, 52–53, 65, 144, 147, 219, 221, 244
Architecture, 338–341, 474–475
archivePrefix, 402–403
Archives, 431–432
Archiving Hyperbola, 132
Arguments, 296
Arrows, in plug-ins list, 50
Artifacts, 340
ASCII characters (key sequences), 180
Auto-login preferences, 170–175
Automatic updates, 214–215
Auto-substitution, version numbers, 414
Back button, 276
base (property), 404
baseLocation (property), 404
baseos, ws, arch (properties), 402, 404
BasicLoginDialog, 156
BeanProperties, 481
BeansObservables, 477
Binary build specification, 130
Binding, 264–265, 475, 484–487
Bin.excludes, 399–400
Bin.includes, 399–400, 415, 436
bmp images, 122–123
bootclasspath (property), 406
Branding Hyperbola
About dialog (text and images), 124–126
product configuration, 115–120
program launcher, 121–122
splash screen, 122–124
window images, 120–121
Browser plug-in, 502
Bug warning, 37
buildDirectory, 402–403, 407–408, 412–413, 417–419
buildID, 402–404
buildLabel, 402–404
Build.properties, 399–404, 407, 417–418
buildType, 402–404
Bundle cleanup, 465
Bundle lifecycle, 460–465
Bundle listeners, 363–364
Bundle pooling, 443–444
Bundle singleton, 460
BundleActivator, 451–452, 462–463
BundleContext.getService*(), 459
Bundle.getEntry(String), 80
Bundles and plug-ins, 20, 27, 450
Bundle-symbolic name, 20, 47, 140, 206, 455–458, 460
Bundling Smack, 138–141
C Development Tooling (CDT), 22
Cache management, 132
Caching, 356–359
Callbacks, 410
Cancel button, 283
Categories (commands), 178–179
Chat Model, 70–71
ChatAction class, 110–112
ChatEditorInput, 259
chmod, 348
-clean command-line argument, 132
cleanupcopy, 348
cleanupzip, 347
Clear workspace data before launching, 70
Closable/nonclosable, 103, 242, 246, 252–253, 323
closePart(), 325
Code reuse, 138
Code structure
Hyperbola layering, 383–384
icons and images, 389
key bindings, 386–387
optional dependencies, 388–389
preferences, 388
property pages, 388
views and editors, 387–389
wizards, 388
workbench contributions, 384–386
Colors, 317
Command key (Mac OS X), 180
commandId, 179–180, 184, 296–299, 301
Command-line arguments, 60, 132, 435
Commands
and actions, 386
command category, 293
defining, 177–182
extension points, 235
handlers, 299–301
Workbench, 291–301
Common Navigator Framework (CNF), 502
Compare editor, 35–36
Compile errors, 146
compilelogs directory, 408
compilerArg (property), 403, 406
configs (property), 402, 405, 418, 422
Configuration area (data area), 469–471
Configuration elements, 391
Configuration location, 20
Configuration methods, 228–229
Configuration scope, 166, 171, 173–175
ConfigureShell(Shell), 160
Configuring the Help plug-ins, 190
ConnectionDetails, 146–147, 152, 162–164, 424
ConnectionDetailsTestCase, 425
connectWithProgress(Session), 158
Console plug-in, 499–500
Console view, 242–244
ContactsDecorator, 256–257
ContactsGroup, 71, 73–78, 90–91, 145–146
ContactsView, 65–70, 72–79, 81, 113, 252, 256, 272
Content categorization, 350
contentArea, 329–331
Context menus, 272–273
Context-sensitive Help (Hyperbola), 196–197
contexts.xml, 197–198
Contribution extension points, 236–237
Contributions, 294–299
Contributions area (status line), 96
Control properties, 399–401
Converters, 484–485
copy, 348
create(), 365
createActionBarAdvisor(), 55
createCoolBarControl(), 306
createDocument(), 499
createExecutableExtension(), 361, 392, 468
createFieldEditors(), 172
createFromURL(url), 80
createInitialLayout(), 242
createMenuBar(), 305–306
createMonitor(), 288
createPageComposite(), 306
createPartControl(Composite), 72
createPlaceholderFolder(), 245
createStatusLine(), 306
createWindowContents(), 85, 305–306
createWorkbenchWindowAdvisor(), 222, 224
Cross-platform building, 134, 187, 398, 405, 422
Ctrl+, 146
Ctrl-3, 43
Ctrl key, 180
Custom build.xml, 400–401, 410
customAssembly, 410
Customizable toolbars, 93
Customizing
the build scripts, 410
the Launcher, 121–122
metadata, 346
Workbench windows, 303–318 See also Presentations (Workbench)
CustomPresentationFactory, 323
customTargets.xml, 412–413
Data areas, 469–471
Data location, 470
Databinding
architecture, 474–475
bindings, 484–487
observables, 475–480
properties, 480–483
Debug perspective, 241–243
DebugConsole, 243–244
Debugger stepping functions, 59–60
Declarative actions, 101, 265–273, 277–278
Declarative Services (DS), 213, 503
decorators extension point, 236
Decoupling pattern, 387, 394–395
Defining commands, 177–182
Defining target platforms, 38–42
Dependency analysis, 50
Deployed (bundle), 460
Descriptive extensions, 356
Descriptors (images), 79–81
Development environment installation, 33–34
Dialog.buttonPressed(), 167
DialogPageSupport, 487
DIP (Dependency Inversion Principle), 387n
Display, 156
Display.asyncExec(), 148, 283, 480
dispose(), 85, 91, 231, 274, 325, 329, 365
doSaveDocument(), 499
Drag and drop, 259–262
Drop adapters, 259–260
dropAction extension points, 235
Dynamic classpaths, 141
Dynamic plug-ins
dynamic awareness, 355–364
dynamic enablement, 364–366
dynamic extension scenarios, 355–362
object handling, 362–363
Dynamic variable, 500–501
Early activation extensions, 465–466
earlyStartup(), 465–466
Eclipse
configuration location, 20
databinding, 474–487
Equinox, 21–24
FAQs, 27
install location, 19–20
JFace, 25
and OSGi, 20–22
platform, 491
tools, 490
touchpoint actions, 348–349
UI Workbench, 25–27
Eclipse Classic (SDK), 16–17, 19, 33–34, 56, 351, 453, 489–491
Eclipse Community Forums, 44, 490
Eclipse Java Integrated Development Environment (IDE), 5
Eclipse Modeling Framework (EMF), 22, 388, 474, 478, 490
Eclipse Rich Ajax Platform (RAP), 4
Eclipse Technology, 490
Eclipse Tutorial videos, 62
Eclipse Update Manager, 337
Eclipse User Interface Guidelines, 127
eclipse.exe, 19
Editor ID, 108
editorAction extension points, 235
editorInputTransfer, 260–261
EDITOR_MINIMUM_CHARACTERS, 226
Editors, 26–27, 65, 69, 147, 251–255, 387–388
editors extension point, 237
elementFactories extension point, 235
emergencyClose(), 225–228
emergencyClosing(), 224–225
enabledWhen, 301
enableMultiple, 251
Encrypting passwords, 168–170
Engine, 341
Equinox
applications, 22
extension registry, 23–24
offerings, 22
products, 22–23
Equinox p2, 199–200, 208, 211, 214–215, 337–351, 433, 439
Event loops, 57, 222, 224–225, 227–228
Executable extensions, 356
Executables feature, 401–402
execute(), 300
Export Contacts, 269–272
Export wizards, 345
Exporting Hyperbola, 129–134
exportWizards extension point, 236
Extensibility, 32
Extensible Hypertext Markup Language (XHTML), 32, 202
Extensible Messaging and Presence Protocol (XMPP), 32, 137, 144, 243
Extension(s)
caching, 357–358
early activation, 465–466
named and anonymous, 393–394
offering, 22
registry, 23–24, 278, 357, 392, 394, 460
trackers, 360
Extension configuration (IDE), 371, 379–380
Extension delta (IExtensionDelta), 357
Extension Element Details, 51, 66, 68, 105, 184
Extension point(s)
action, 234–235
contribution, 236–237
perspective, 237
scalability, 235–236
startup, 238
Extension Point Reference, 234
Extension point schema, 390–391
Externalize strings, 89
Extra.library, 400
FAQs (Eclipse), 27
Fast Views (status line), 95
Feature builder, 417–419
Feature dependencies, 204
Feature Name, 206
Feature properties, 205
Feature Provider, 206
Feature.xml, 201, 205, 346, 380–381, 414, 420
Field editors, 171–172
FileLocator.resolve(URL), 441
Fill*(), 85
fillCoolBar(), 85, 92, 97, 113, 231
fillMenuBar(), 85–88, 92, 97, 113, 191, 231
fillStatusLine(), 85, 95, 97, 231, 281
Fixed layout, 246
Focus changes, 325
Fonts, 223, 236, 256–257, 282, 496–497
FormAttachment, 307–309
FormLayout, 307–308
Forms plug-in, 501
Forward button, 276
Foundation Java class libraries, 16–17
Fragments, 123, 133–134, 202, 424, 454–457
Framework plug-ins, 371–374, 378, 385–386, 390, 394–395
free(), 365
Free Moving perspective, 240–242, 252
“Friendly” plug-ins, 394–395
Galileo SR1, 37
Galileo SR2, 34
getCache(), 358
getChildren(), 74–76
getDefaultPageInput(), 229
getExtensionDeltas(), 358, 360
getExtensionRegistry(), 392
getFactoryId(), 261
getInitialWindowPerspectiveId(), 229
getMainPreferencePageId(), 229
getMapFiles, 413
getNames(), 261
getObjects(), 362
getProgressMonitor(), 95
getProvider(), 361
getTransparencyMask(), 315
getViewRegistry(), 254
getWorkbenchConfigurer(), 225
getWorkbenchErrorHandler(), 229
Global action handler, 277
Globally unique identifiers, 47
Google Web Toolkit (GWT), 4, 474
Graphical Editing Framework (GEF), 22
GroupMarkers, 268–270
handleException(), 228
HandlerUtil, 300
headless-build/customTargets, 410
“Hello, World” application, 45–55
actions, 190–191
adding to the target platform, 187–189
configuring the plug-ins, 189
content, 191–196
context-sensitive, 196–197
exporting plug-ins, 197–198
infopops (F1 help), 196–197
hookMinimize(), 98–100
Hospital IM scenario, 370–371
Host plug-in, 454–456
html/, 197
Hyperbola, 31–33
About information, 87, 124–126, 209
Actions, 83–87
AddContact action, 88–93, 181, 200, 300–301
auto-login preferences, 170–175
automatic updates, 214–215
branding, 115–127
Chat editor, 103–114
chat model, 70–71
chatting with Eliza, 152–153
ContactsView, 65–70, 72–79, 81, 113, 197, 252, 256, 272
customizable toolbars, 93
debugging, 55–60
development environment installation, 33–34
examples to browse, 42–43
exporting, 129–134
extensions, 51, 66, 68, 191–192, 393
“Hello, World” application, 45–55
Help. See Help (Hyperbola)
Help menu, 85–87
IWorkbenchAdapters, 75–77
key bindings, 177–186
label provider, 77–78
launch configuration, 59–61
launcher, 121–122
login dialog, 155–161
login settings, 161–170
menus, 85–88
messaging support, 137–154
packaging, 129–135
project names, 47
prototype, 63–65
refactoring the model, 143–148
running and debugging, 55–62
sample code, 34–36
software management, 199–215
splash screen, 122–124
status line, 93–96
system tray integration, 96–100
target platform setup, 36–42
testing, 424–428
third-party library, 138–143
top-level menu, 85–87
updating the UI, 149–151
using commands, 294–299
using views, 251–258
WorkbenchAdvisor, 53
WorkbenchWindowAdvisor, 54
Hyperbola kiosk, 381–383
Hyperbola layering, 383–384
Hyperbola plug-in structure, 354
Hyperbola product configurations
Extension configuration (IDE), 379–380
Hyperbola kiosk, 381–383
JFace configuration, 377–379
PDA configuration, 379
Workbench configuration, 380–381
Hyperbola projects, 374–375
hyperbola.builder, 401–402, 407, 415, 422, 439
HyperbolaProviderManager, 360
Hyperbola.target, 37
IAction, 292
IActionBarConfigurer, 232
IAction.setDefinitionId(String), 186
IApplication, 52
IArtifactRepositoryManager, 342–344
IBM Lotus and Eclipse RCP, 7–10
IBM Lotus Expeditor client for desktop, 9
IBM Lotus Notes, 10
Icon/Message (status line), 96
IDE platform, 16–17
Idleness, 227
IDocument, 497–498
ID/version pairing, 20
IEditorInput, 107, 109, 259–261, 499
IEngine, 342–344
IExtensionChangeHandler, 360
IExtensionDelta, 357
IExtensionRegistry, 394
IFontProvider, 257
IHandlerService, 300
IImageKeys, 79
IInstallableUnit, 342–344
Image path, 161
ImageDescriptorFromPlugin(), 80–81, 160–161
ImageDescriptors, 79–81
Images
bmp, 122–123
login dialog, 160–161
IMetadataRepositoryManager, 342–343
Import Contacts, 269–272
importWizards extension point, 236
Include required software (checkbox), 40, 189
Included Features, 202–203, 208, 420, 436
Infopops (F1 help), 196–197
-initialize, 440
initializeSession(), 72
initializeTracker(), 360–361
initializeUsers(), 163
initTaskItem(), 98
Install area (data area), 469–471
Install location, Eclipse system, 19–20
Installable units (IUs), 339–340, 343–350
Installation and updates. See p2
Installation Details list, 86–87, 126, 211
Installation management. See p2
installBundle, 348
Installed (bundle), 460–461
Installers, 432–433
installFeature, 348
installShield, 432
Instance scope, 166
Instant messaging client. See Hyperbola
Internationalize strings, 89
Internet Engineering Task Force (IETF), 32, 144
intro extension point, 238
Inversion of Control (IoC), 387n
IPageLayout, 244–247
IPageLayout.addView(), 69, 242, 501
IPartService, 255
IPerspectiveFactory, 53, 70, 242
IPerspectiveListeners, 250
IPerspectiveRegistry, 250
IPlanner, 342–343
IProfileRegistry, 342
iqProviders, 391
IRegistryChangeEvent, 357
IRegistryChangeListener, 357
ISelectionService, 255
isModifiable(), 499
isReadOnly(), 499
IUViewQueryContext, 212
IViewDescriptor, 254
IWorkbenchAdapters, 75–77, 150
IWorkbenchConfigurer, 225–229
IWorkbenchConfigurer.emergencyClose(), 226
IWorkbench.restart(), 225
IWorkbenchSite, 255
IWorkbenchWindow, 67, 109, 182–183, 229–231, 252
IWorkbenchWindow.close(), 222
IWorkbenchWindowConfigurer, 54, 230, 305
Jabber Enhancement Proposals (JEPs), 32, 144, 391
JAR (Java Archive), 18–19
signing, 436–437
Java class libraries (JCL), 16–17, 403, 406
Java development tooling (JDT), 16, 33, 141, 490
Java Network Launch Protocol. See JNLP (Java Network Launch Protocol)
Java Runtime Environment (JRE), 16–17, 34, 60, 409, 431
Java search, 43
Java Virtual Machine (JVM), 6, 16, 49
Java Web Start. See JNLP (Java Network Launch Protocol)
Jetty, 190
JFace, 25, 73, 374, 377–379, 388
Jive Software, 138–141, 146, 206
JNLP (Java Network Launch Protocol), 397, 433–439
Jobs, 284–285
Jobs Progress area (status line), 96
JUnit, 424–428
junit.jar, 452
Key bindings, 386–387
categories, 178–179
defining commands, 178–182
extension point description, 178–179
key schemes, 184–185
key sequences, 180
keys preference page, 185
for Workbench items, 182–184
Key configuration, 226
KEY_CONFIGURATION_ID, 226
Keys without ASCII representation, 180
Keystore, 436–437
Keystroke, 180
Keytool, 437–438
Kiosk, 381–383
Kiosk (RCP) product configuration, 372–374
Label provider, 73, 77–78, 151
Launch configurations, 59–61
Launcher, 121–122
layoutNormal(), 308
Lazy activation, 467–468
LDAP (Lightweight Directory Access Protocol), 455
Legal Info, 126
License agreement, 204
LicenseManager, 212
Lifecycle, bundle, 460–465
Lifecycle, Workbench, 221–225
link, 347
Locale-specific files, 123–125, 454
locationURI, 294–299
Locking error, 38
login(), 156
Login dialog, 155
auto-login, 170–175
connectWithProgress(Session), 157–158
icons, 159–160
images, 160–161
preferences, 164–170
progress reports, 157
ProgressMonitorDialog, 158
settings, 161–170
splash screen, 158–159
timing the login prompt, 155–156
user ID combo box, 161–164
window images, 160–161
M modifier keys, 180
Mac OS X modifier keys, 180
Maestro, 10–12
makeActions(), 85–86, 97, 183, 222, 231, 272, 311
manifest.mf, 18–19
Marker properties, 406
markStarted, 349
Mask, 314–315
MasterDetailObservables, 479
Menu accelerator, 179
Menu managers, 87–88, 267, 294
menus extension points, 235
Messaging library, 31–32
Messaging support
chatting with Eliza, 152–153
message types, 144
refactoring, 143–148
Smack, 138–145
third-party library integration, 138–143
updating the UI, 149–151
Metadata management
customizing, 346
publishing, 345–346
touchpoint instructions, 347–349
Microsoft Silverlight, 4
Middleware, 5
Minimizing to the task tray, 97–100
Minus sign, 36
Mirroring repositories, 349–350
mkdir, 347
Modeling and reporting (BIRT), 490
Modifier keys, 180
mouseListener, 332–333
Multiple configurations, 420–422
Multiple views, 251–252
Multiple windows, 258–259
Multiuser installs, 441–444
MultiValidator, 486
Named and anonymous extensions, 393–394
Naming convention, 375
Naming, project/plug-in ID, 139–140
NASA, 10–11
Native installers, 432
Native touchpoint actions, 347–348
Native user experience, 5–6
Navigate >, 42–43
Navigator Content Extensions (NCE), 502
Nested JARs, 454
Nested menu managers, 88
New Product Configuration wizard, 115–116
New Product Definition dialog, 118
New Project wizard, 48
newWizards extension point, 236
nl/en, 123
NL (National Language) fragment, 455
Node structure, 165
@nodefault, 470
@none, 470
Nonmodal progress, 284
Nonrectangular windows, 304, 312–318
NSIS, 432
NullPointerException, 57
Object caching, 359
Object handling, 362–363
Observables, 475–480
Observer pattern, 475
Offerings, 22
Online Help, 233
openChatEditor, 148
OpenInNewWindow, 258
Open-source code, 138
OpenViewAction, 252
openWorkbenchWindow(), 258, 274
Operations, 386
Option key (Mac OS X), 180
Optional dependencies, 388–389
org.apache.lucene, 190
org.eclipse.core.expressions, 499
org.eclipse.core.resources, 492
org.eclipse.core.runtime, 50, 491, 492, 495, 499–502
org.eclipse.core.variables, 500
org.eclipse.equinox.ds, 503
org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy, 212
org.eclipse.equinox.preferences, 164
org.eclipse.equinox.p2.user.ui, 208, 211
org.eclipse.equinox.util, 503
org.eclipse.help, 190, 208, 491, 501
org.eclipse.help.appserver, 190
org.eclipse.help.base, 190
org.eclipse.jface, 495
org.eclipse.jface/ITreeContentProvider, 74
org.eclipse.jface.text, 243, 495–496, 498–499
org.eclipse.osgi, 503
org.eclipse.rcp, 208
org.eclipse.rcp/feature.xml, 201
org.eclipsercp.hyperbola, 24, 46–48, 52–60, 115, 129, 206, 210, 384
org.eclipsercp.hyperbola.Application, 52
org.eclipsercp.hyperbola/ContactsView, 72
org.eclipsercp.hyperbola/DebugConsole, 243
org.eclipsercp.hyperbola.extensionProviders, 356, 358
org.eclipsercp.hyperbola.iqProviders, 356
org.eclipsercp.hyperbola.model, 71
org.eclipsercp.hyperbola/Perspective, 70
org.eclipsercp.hyperbola.target, 37
org.eclipsercp.hyperbola.ui, 384
org.eclipsercp.hyperbola.ui.workbench, 380–381, 384
org.eclipse.swt, 495
org.eclipse.text, 243, 495–496
org.eclipse.ui, 491, 495, 499, 501–502
org.eclipse.ui.actionSets, 23, 246, 266, 292
org.eclipse.ui.bindings, 179, 184, 293
org.eclipse.ui.browser, 502
org.eclipse.ui.console, 243–244, 499–500
org.eclipse.ui.editorActions, 266
org.eclipse.ui.forms, 206, 491, 501
org.eclipse.ui.handlers, 299, 301
org.eclipse.ui.intro, 491–492
org.eclipse.ui.main.menu, 294–297
org.eclipse.ui.main.toolbar, 295–297
org.eclipse.ui.navigator, 502
org.eclipse.ui.popup.any, 295
org.eclipse.ui.popupMenus, 266, 273, 292
org.eclipse.ui.presentationFactories, 320, 322, 327
org.eclipse.ui.presentations, 323
org.eclipse.ui.presentations.r21, 321–322
org.eclipse.ui.viewActions, 266, 292
org.eclipse.ui.views, 501
org.eclipse.ui.views.ContentOutline, 295
org.eclipse.ui.views.ProblemView, 295
org.eclipse.ui.workbench.texteditor, 243, 495, 496, 499
org.jivesoftware.smack, 206
OSGi
bundle lifecycle, 460–465
console, 457
data areas, 469–471
early activation extensions, 465–466
and the Eclipse runtime, 450–452
fragments, 454–457
framework, 20–21
lazy activation, 467–468
and lazy activation, 468
plugins, 452–454
services, 459–460
start level, 467
version numbering, 457–459
OSGi Alliance, 21
OSGi and Equinox, 215
OSGi Framework Specification Release 4, 450
osgi.bundles, 466
Outline view, 501
API, 342–344
artifacts, 340
engine, 341
installable units (IUs), 339–340, 343–350
installation phases, 346–347
installer, 433
metadata management, 345–349
profiles, 341
repositories, 340, 349–350, 405–406
roles, 337–338
p2.compress, 406
p2.gathering, 403, 405–406, 418–419, 422
Packaging Hyperbola
archive file, 132
binary build specification, 130
cache management, 132
delta pack, 133
exporting, 129–134
platform-specific code, 132–134
Product Export wizard, 131, 134
synchronization, 131
Packet listener, 145
Paint listener, 330
Part list menu, 333
Part listeners, 255–256
PartTab, 331–333
Passwords, 157–158, 161–163, 166–170, 437–439
benefits, 398
debugging, 409
plug-in build.properties, 399–401
root files, 415–416
templates, 410
Persistence (stack), 325
Perspective
factory, 68–70, 237, 242, 251–252
IPerspectiveFactory, 53, 70, 242
IPerspectiveListeners, 250
menu, 248–249
registry, 250
Workbench, 26–27
PerspectiveDebug, 242, 244, 249
perspectiveExtensions extension point, 237
PerspectiveFreeMoving, 242, 249, 252
Perspectives (Workbench)
adding, 240–242
Console view, 242–244
debugging, 250
IPageLayout, 244–247
IPerspectiveListeners, 250
IPerspectiveRegistry, 250
IWorkbenchPage, 250
perspective bar, 226–227, 247–250, 304, 312
perspective extension points, 237
perspective menu, 248–249
SwitchPerspectiveAction, 249–250
Placeholder, 231, 245, 252–253, 267–272
Platform design, 390–394
Platform Developer Guide, 233
Platform.getAdapterManager(), 77, 150–151
Platform.getExtensionRegistry(), 392
Platform.getProduct(), 160
Platform.getStateLocation(Bundle), 164
Platform-specific code, 132–134
Plug-in(s)
arrows, 50
build.properties, 399–401
content, 49
content definitions, 46–47
editor, 48–50
fragments, 454–457
ID, 20, 47, 140, 206, 455–458, 460
ID and project name, 139
ID and version, 20–21
RCP-friendly, 394
reexported, 50
sources, 490
store, 20
Plugin class, 462–463
Plug-in Development Environment (PDE), 33, 36–37
pluginPath (property), 402, 405, 410–411
plugins/customBuildCallbacks, 410
/plugin-id/preference-name, 194
PojoObservables, 475–476
PojoProperties, 481
popupMenu extension point, 235
Portability of clients, 6
postSetup, 412
postStartup(), 224
postWindowCreate(), 316
postWindowOpen(), 230
preferenceCustomization property, 194
preferencePages extension point, 236
PreferencePageSupport, 487
Preferences, 388
auto-login, 170–175
help system, 193
initializer, 174
login dialog, 164–170
Preferences.flush(), 167
preferences.ini, 194, 198, 227, 247, 321
Preinitialized configurations, 440
presenceToKey(), 80–81
Presentable parts, 319
presentationFactories extension point, 237, 320–321
presentationFactoryID, 322
PRESENTATION_FACTORY_ID, 226, 321
Presentations (Workbench)
adding, selecting, removing parts, 331–333
classes, 323
default features, 324–325, 325–326
menus, 333
plug-in, 322
presentation factory, 327
samples, 320–322
size and position, 330–331
StackPresentation, 324–330
widgets, 324
preWindowOpen(), 54, 94, 230, 305
Product configuration, 115–120, 205, 371–383
Product definitions, 376
Product Export wizard, 131, 134
Product (property), 403
productBuild.xml, 401, 408–409, 419
ProfileChangeRequest, 344
Profiles, 341
Program launcher, 121–122
Progress area (status line), 96
Progress reports, 157, 282–289
Progress view, 285–287
ProgressMonitorDialog, 158, 288
ProgressProvider, 287–288
Project name and plug-in ID, 139
Properties, databinding, 480–483
Property listener, 332
Property pages, 388
Property view, 501
propertyPages extension point, 236
Prototype, 63–65
Prototype classes, 146–147
Providers (content and label), 73–78
ProvisioningContext, 343–344
Publisher, 345–346
Publishing metadata, 345–346
$qualifier$, 346
Qualifying version numbers, 414
Quick fix, 191
Quick search panel, 307, 311–312
Realm.asyncExec(), 480
Realms, 480
Rectangular windows, 304, 312–318
Reexported plug-ins, 50
Refactoring, 143–148
Region (shell), 313
Register adapters, 77
RegisterContextMenu(), 273
Registering Actions, 86
Registering listeners, 464
Registering services, 464
registerObject(), 361–362
Registry change events, 357
Registry change listeners, 357
Release engineering builds, 350, 397–399, 417
remove(), 365
remove (touchpoint action), 348
removeExtension(), 361–362
removePart(), 331
Rendering, 264–265
Repositories, 212, 340, 342–344, 411
repository directory, 408
Repository management, 349–350
RepositoryManipulator, 212
Resolved (bundle), 461
Resources plug-in, 492–493
ResourcesPlugin.getWorkspace(), 451, 494
Restore, 162, 221–222, 224–225, 323, 325
Restructuring Hyperbola, 372–374
Retargetable actions, 275–277
Reverse domain name convention, 47
revertPerspective(), 250
Rich client, 3–5
Rich client platform (RCP), 5–10
Rich client platform (RCP) SDK, 37
Rich Internet applications (RIAs), 4
rmdir, 347
root.os.ws.arch, 416
Root files, 415–416
Roster classes, 144–150
rowLayout, 328–330
RPM, 432
R21 presentation, 320–322
Run Configurations (dialog), 61
Run in background, 284–285
Run menu, 61
Runtime widget parenting, 324
Samples Manager, 35–36
SAT4J, 341
saveState(), 224–225, 261, 323, 325
Scalability extension points, 235–236
ScopedPreferenceStore(), 171–172
scriptsproductBuild productBuild.xml, 401
search >, 43
Secondary ID, 251–253
SecurePreferencesFactory, 168–169
Selection listener, 89
selectionChanged(), 89–90, 271
Services, 459–460
ServiceTracker, 459
setActionDefinitionId(), 181, 183
setAfterConvertValidator(), 486
setAfterGetValidator(), 486
setBounds(), 317, 323, 324, 329–331
setConnection(), 152
setConnectionDetails(), 152, 156, 173
setContentProvider(), 73–74
setControl(), 280
setConverter, 484
setEditorAreaVisible(), 69, 113, 246
setErrorMessage(), 95
setExitOnLastWindowClose(), 225
setFixed, 246
setInitialSize(), 229
setMessage(), 95
setProgramProperty, 349
setProperty(), 286
setQueryContext(), 212
setRepositoryManipulator(), 212
setSaveAndRestore(), 65, 221, 224
setSelectionProvider(), 255
setShowMenuBar(), 229
setShowStatusLine(), 94
setShowToolbar(), 229
setStartLevel, 348
setVisible(), 323–324
Shared installs, 442–444
Shift key, 180
Short status (ss) command, 456–457
Show In prompter, 246
showMenu(), 325
showPart(), 331
SHOW_PROGRESS_ON_STARTUP, 226
SHOW_TRADITIONAL_STYLE_TABS, 226–227
Simple clients, 3
skipBase (property), 402, 404, 407
APIs, 144–145
bundling, 138–141
chat editors, 147–148
Jive Software, 138
message types, 144
naming conventions, 139–140
refactoring, 146–147
Roster classes, 145
stream management, 144
testing, 141–143
Software Configuration Management (SCM) access control, 405, 411–414
Software management
automatic updates, 214–215
branding Features, 209–210
categories, 213–214
customizing the p2 UI, 211–213
Equinox p2, 199–200
features, 200–210
Hyperbola, 199–215
Software sites, 38
source.library, 400
Splash screen, 122–124, 158–159
Stack persistence, 325
StackPresentation, 324–330
Stand-alone offering, 22
Stand-alone product configuration, 371–374
Standard actions, 274–275
Start level, 467
Start(BundleContext), 450–452, 461–464, 467
startChat(), 147–148
Starting (bundle), 461
startup extension point, 238
Startup time, 464
State location, 470
statusHandlers extension point, 237
Step functions, debugging, 59–60
Sticky views, 253–254
Stop(BundleContext), 450, 452, 461–464
stopMethod(), 365
Stopping (bundle), 461
Stream management, 144
Strings, externalize, 89
StyledText, 497
Support classes, 487
SwitchPerspectiveAction, 249–250
SWT (Standard Widget Toolkit), 6, 25, 27, 460
display, 156
fragments, 202
SWTBot, 426–428
SWTObservables, 478–479
SWTWorkbenchBot, 427
Synchronization error, 38
System menu, 333
System tray integration, 96–100
systemSummarySections extension point, 237
Tab styles, 226
TAR, 431–432
Target content, 42
Target Definition wizard, 39
Target editor warning, 37
Target Export wizard, 402
.target files, 37
Target platform setup, 36–42
Templates, 410
templatesheadless-build, 401
Test and performance tools platform (TPTP), 490
Test case, 424–426
Testing Hyperbola, 424–428
Text control, 497
Text editing, 495–499
Text plug-ins, 495–496
TextEditors, 498
TextViewer, 498
themes extension point, 236
Thin clients, 4–6
Third-party library, 31–32, 138–143
titleArea, 328–333
TitleAreaDialogSupport, 487
TOC files (Help), 191, 195–197
tocgettingstarted.xml, 195, 197
toctasks.xml, 195–197
toc.xml, 195–197
Toggle actions, 309
Toolbars
customization, 93
Hyperbola, 93
show/hide, 309
text, 279
Workbench, 278–281 See also Coolbar
Top-level feature, 376
Top-level menu, 84–87
Top-level toolbar, 92
topLevelElementID, 417–418
topLevelElementType, 417–418
Transfer types, 259
transformedRepoLocation, 411, 418
Translations, 89, 123, 125, 210
TrayItem, 97–99
UI Workbench, 25–27
Unhandled event loop exception, 57
uninstallBundle, 348
Uninstalled (bundle), 461
uninstallFeature, 348
Unit testing, 424–426
Unregister adapters, 77
unzip, 347
updateEnablements(), 310–311
UpdateValueStrategy, 483–484, 486
Updating Hyperbola, 210–211
Updating the UI, 149–151
User area (data area), 469–471
User interface testing, 426–429
@user.dir, 471
@user.home, 470
validateBeforeSet(), 486
Validation, 485–486
Validity testing, 362–363
Value variable, 500–501
Variable manager, 500–501
Variables, 500–501
$version$, 346
Version substitution, 346
View icons, 67
View ID, 66, 251–252, 254, 275, 501
View pane menu, 333
View registry, 254
viewActions extension point, 235
Viewers, compared with Views, 73
ViewersObservables, 479
ViewerSupport, 487
ViewPart, 65–66
Views, 65
compared with editors, 104
compared with viewers, 73
Workbench, 26–27
views extension point, 237
Weak references, 361–363
Web tools platform (WTP), 490
WidgetProperties, 482
Window images, 120–121
Windows, customizing, 303–318
WizardPageSupport, 487
Wizards, 388
Workbench
action responsibilites, 265
actions, 263–289
advisor types, 220–221
closing, 225–226
commands, 291–301
configuration, 228–229, 374, 380–381
contributions, 294–299, 384–386
declarative actions, 265–273
drag and drop, 259–262
extension factory, 185
extension points, 232–238
handlers, 299–301
Keys preference page, 185
lifecycle, 221–225
multiple windows, 258–259
perspectives, 240–250
presentations, 319–334
progress reports (feedback), 282–289
retargetable actions, 275–277
standard actions, 274–275
status line, 281–282
toolbars, 278–281
Views and Editors, 251–258
windows, customizing, 303–318
ActionBarAdvisor, 55, 85–86, 97–99, 220–223, 267
IActionBarConfigurer, 232
IWorkbenchConfigurer, 225–229
IWorkbenchWindowConfigurer, 230, 305
WorkbenchAdvisor, 53–54, 220–229, 260
WorkbenchAdvisor.eventLoopException(), 227
WorkbenchWindowAdvisor, 52–55, 85, 97–99, 220–225, 229–230, 305, 310
WorkbenchAdvisor.initialize(), 65, 222
WorkbenchObservables, 480
WorkbenchProperties, 482
workingSets extension point, 236
Workspace, 494
XHTML (Extensible Hypertext Markup Language), 32, 202
XML, 24, 144, 149, 243, 392, 433, 503
XMPP (Extensible Messaging and Presence Protocol), 32, 137, 144, 243
XULRunner, 4
Zero-argument constructor, 392
ZIP, 431–432