Definitionen af en plugin til en Rich Client-program starter på samme måde som til andre plugins. Den eneste forskel i MANIFEST.MF er, at listen over nødvendige plugins er meget mindre end tidligere.
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.ui.examples.rcp.browser; singleton:=true Bundle-Version: 3.2.0.qualifier Bundle-ClassPath: browser.jar Bundle-Activator: org.eclipse.ui.examples.rcp.browser.BrowserPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.core.runtime, org.eclipse.uiEclipse-AutoStart: true Eclipse-AutoStart-kommentar: Brug Eclipse-AutoStart i stedet for Eclipse-LazyStart, fordi browsereksemplet skal køre mod 3.1 og 3.2.
Indtil nu har du leveret funktionalitet til platformens arbejdsbænk ved at erklære udvidelser, der tilføjer elementer til arbejdsbænken. I al det plugin.xml-indhold, der er gennemgået indtil nu, er det kun individuelle leveringer til arbejdsbænken, som antages at være der. På Rich Client-platformen er der ikke defineret et program på forhånd. Rich Client-plugin'en er den, der er ansvarlig for at angive klassen, som skal udføres, når platformen startes. Det gøres i udvidelsen org.eclipse.core.runtime.applications.
<extension
point="org.eclipse.core.runtime.applications"
id="app"
name="%appName">
<application>
<run
class="org.eclipse.ui.examples.rcp.browser.BrowserApp">
</run>
</application>
</extension>
I denne udvidelse skal du angive den klasse, der skal udføres, når platformen startes. Denne klasse skal implementere IPlatformRunnable, som betyder, at den bare skal implementere en run-metode. Run-metoden er ansvarlig for at oprette SWT-fremvisningen og for at oprette en arbejdsbænk. Klassen PlatformUI implementerer convenience-metoder til brug for udførelse af disse opgaver.
public Object run(Object args) throws Exception {
Display display = PlatformUI.createDisplay();
try {
int code = PlatformUI.createAndRunWorkbench(display,
new BrowserAdvisor());
// afslutter programmet med en relevant returkode
return code == PlatformUI.RETURN_RESTART
? EXIT_RESTART
: EXIT_OK;
} finally {
if (display != null)
display.dispose();
}
}
Kaldet til createAndRunWorkbench returneres ikke, før arbejdsbænken er lukket. SWT-aktivitetsløkken og anden logistik på lavt niveau håndteres inden i denne metode. Det er ikke nødvendigt i øjeblikket, at du forstår de underliggende mekanismer til brug for udførelse af et SWT-program. Denne kode kan kopieres til Rich Client-programmet med ganske få ændringer. Den hook, du kan bruge til at tilføje egen funktionalitet, er WorkbenchAdvisor, som overføres som et argument, når arbejdsbænken oprettes. Det skal undersøges nærmere.