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 a MANIFEST.MF fájlban, hogy a szükséges bedolgozók listája sokkal kisebb az eddig használtaknál!
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.ui Eclipse-AutoStart: true Eclipse-AutoStart-comment: Használja az Eclipse-AutoStartot az Eclipse-LazyStart helyett, mert a böngésző példát 3.1-es verzión kell futtatni, ahogy a 3.2-es verziót is.
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.