Definér Rich Client-program

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.