Gazdag ügyfélalkalmazás megadása

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.