Definování aplikace klienta rich

Definice modulu plug-in aplikace klienta rich začíná podobně jako u ostatních modulů plug-in, kterými jsme se zabývali. Jediný rozdíl v první části markupu je seznam požadovaných modulů plug-in, který je mnohem kratší, než jsme byli zvyklí!

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
   <plugin
            id="org.eclipse.ui.examples.rcp.browser"
  name="%pluginName"
  version="3.0.0"
   provider-name="%providerName">

      <runtime>
      <library name="browser.jar">
      </library>
      </runtime>
<requires>
      <import plugin="org.eclipse.core.runtime"/>
 <import plugin="org.eclipse.ui"/>
</requires>

Až dosud jsme přidávali funkčnost k pracovní ploše platformy deklarováním rozšíření, která přidávají prvky pracovní plochy. Kdykoli jsme dosud prohlíželi obsah plugin.xml, dívali jsme se na jednotlivé doplňky pracovní plochy, o níž se předpokládá, že tam již je. U platformy Rich Client Platform není předem definovaná žádná aplikace. Tím, kdo je odpovědný za určení třídy, která se má provést při spuštění platformy, je váš plug-in klienta rich. Provádí se to v rozšíření 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>

V tomto rozšíření určíme třídu, která se má spustit, když je poprvé spuštěna platforma. Tato třída musí implementovat IPlatformRunnable, což jednoduše znamená, že musí implementovat metodu run. Metoda run je odpovědná za vytvoření obrazovky SWT a spuštění pracovní plochy. Třída PlatformUI implementuje nadstavbové metody pro provádění těchto úloh.

	public Object run(Object args) throws Exception {
		Display display = PlatformUI.createDisplay();
		try {
			int code = PlatformUI.createAndRunWorkbench(display,
					new BrowserAdvisor());
			// ukončit aplikaci s odpovídajícím návratovým kódem
			return code == PlatformUI.RETURN_RESTART
					? EXIT_RESTART
					: EXIT_OK;
		} finally {
			if (display != null)
				display.dispose();
		}
	}

Volání createAndRunWorkbench nic nevrátí, dokud nebude zavřena pracovní plocha. Uvnitř této metody je ošetřena smyčka událostí SWT a další logistika nízké úrovně. V této fázi není tak důležité, zda rozumíte základní mechanice běhu aplikace SWT. Tento kód lze do vaší aplikace klienta rich zkopírovat jen s minimálními změnami. Ve skutečnosti je záchytným bodem, kam přidáte svou funkčnost WorkbenchAdvisor, který je předáván jako argument při vytvoření pracovní plochy. Podívejme se na to blíže.