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.