A gazdag ügyfélalkalmazás bedolgozó megadása hasonlít más tanulmányozott bedolgozók megadásához. Az egyetlen különbség, hogy a leírónyelv első része, a szükséges bedolgozók listája sokkal kisebb az eddig használtaknál!
<?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>
Eddig a platform-munkaterülethez úgy biztosítottunk funkciót, hogy kiterjesztéseket deklaráltunk, amelyek elemeket adnak a munkaterülethez. Az eddig áttekintett összes plugin.xml tartalomban csak az egyéni munkaterület-kiegészítéseket néztük, amelynek meglétét feltételeztük. A gazdag ügyfél platformon nincs még megadva alkalmazás. A gazda ügyfél bedolgozó felelős az osztály megadásáért, amelyet a platform elindításakor kell futtatni. Ez az org.eclipse.core.runtime.applications kiterjesztésben történik.
<extension point="org.eclipse.core.runtime.applications" id="app" name="%appName"> <application> <run class="org.eclipse.ui.examples.rcp.browser.BrowserApp"> </run> </application> </extension>
Ebben a kiterjesztésben megadjuk a platform első indításakor futtatandó osztályt. Az osztálynak meg kell valósítania az IPlatformRunnable elemet, amely egyszerűen azt jelenti, hogy egy futtatás metódust kell megvalósítania. A futtatás metódus az SWT megjelenítő létrehozásáért és a munkaterület indításáért felelős. A PlatformUI osztály megvalósítja a feladatok végrehajtásához megfelelő metódusokat.
public Object run(Object args) throws Exception { Display display = PlatformUI.createDisplay(); try { int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); // kilép az alkalmazásból a megfelelő visszatérési kóddal return code == PlatformUI.RETURN_RESTART ? EXIT_RESTART : EXIT_OK; } finally { if (display != null) display.dispose(); } }
A createAndRunWorkbench meghívása nem tér vissza addig, amíg a munkaterület nincs lezárva. Az SWT eseményciklus és egyéb alacsony szintű logisztikák kezelése ebben a metódusban történik. Ezen a ponton az SWT alkalmazás futtatásához nem fontos az alapul szolgáló mechanizmusok megértése. Ez a kód minimális változtatásokkal átmásolható a gazdag ügyfélalkalmazásra. A saját funkció hozzáadására szolgáló csatlakozás a WorkbenchAdvisor, amely argumentumként kerül átadásara a munkaterület létrehozásakor. Nézzük meg közelebbről.