Definizione di un'applicazione rich client

La definizione del plugin di un'applicazione rich client inizia allo stesso modo degli altri plugin esaminati. L'unica differenza nella prima parte del tag sta nel fatto che l'elenco dei plugin richiesti è molto più piccolo di quello dei plugin utilizzati.

<?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>

Finora, sono state fornite funzioni alla piattaforma dichiarando le estensioni che aggiungono elementi al workbench. Nel contenuto del file plugin.xml esaminato, sono stati ricercati solo i singoli contributi a un workbench. Nella piattaforma rich client, non esistono applicazioni già definite. Il plugin rich client è l'unico responsabile della definizione della classe che deve essere eseguita all'avvio della piattaforma. Questa operazione viene eseguita nell'estensione 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>

In questa estensione, viene specificata la classe che deve essere eseguita quando la piattaforma viene avviata per la prima volta. Questa classe deve implementare il metodo IPlatformRunnable, il che significa che deve semplicemente implementare un metodo run. Il metodo run è responsabile della creazione della visualizzazione SWT e dell'avvio di un workbench. La classe PlatformUI implementa i metodi di convenienza per l'esecuzione di queste attività.

	public Object run(Object args) throws Exception {
		Display display = PlatformUI.createDisplay();
		try {
			int code = PlatformUI.createAndRunWorkbench(display,
					new BrowserAdvisor());
			// exit the application with an appropriate return code
			return code == PlatformUI.RETURN_RESTART
					? EXIT_RESTART
					: EXIT_OK;
	} finally {
			if (display != null)
				display.dispose();
		}
	}

La chiamata a createAndRunWorkbench non viene restituita fino alla chiusura del workbench. Il ciclo di eventi SWT e altre logiche di livello inferiore sono gestite all'interno di questo metodo. In questa fase, non è così importante comprendere i meccanismi sottostanti nell'esecuzione di un'applicazione SWT. Questo codice può essere copiato nell'applicazione rich client con modifiche minime. In effetti, l'hook da aggiungere alle funzioni è WorkbenchAdvisor, trasferito come argomento al momento della creazione del workbench. Si osservi questo aspetto più attentamente.