RCP-sovelluksen lisäosan määritys alkaa samalla tavalla kuin muiden tähän mennessä tarkasteltujen lisäosien määritys. Ainoa ero MANIFEST.MF-tiedostossa on, että edellytettyjen lisäosien luettelo on paljon pienempi.
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: Käytä Eclipse-AutoStart-toimintoa Eclipse-LazyStart-toiminnon sijasta, koska selainesimerkki on ajettava version 3.2 lisäksi myös versiossa 3.1.
Tähän mennessä ympäristön työympäristöön on lisätty toimintoja esittelemällä laajennuksia, jotka lisäävät elementtejä työympäristöön. Kaikki tähän mennessä tarkasteltu plugin.xml-sisältö on koskenut vain yksittäisiä lisäyksiä työympäristöön, jonka oletetaan olevan paikallaan. RCP-ympäristössä ei ole valmiiksi määritettyä sovellusta. RCP-lisäosa vastaa sen luokan määrityksestä, joka toteutetaan, kun ympäristö aloitetaan. Tämä tapahtuu org.eclipse.core.runtime.applications-laajennuksessa.
<extension point="org.eclipse.core.runtime.applications" id="app" name="%appName"> <application> <run class="org.eclipse.ui.examples.rcp.browser.BrowserApp"> </run> </application> </extension>
Tässä laajennuksessa määritetään luokka, joka ajetaan, ennen kuin ympäristö aloitetaan. Tämän luokan on toteutettava IPlatformRunnable-kohde, mikä tarkoittaa, että sen on toteutettava run-metodi. Run-metodi vastaa SWT-näytön luonnista ja työympäristön aloituksesta. Luokka PlatformUI toteuttaa lisämetodeja näiden tehtävien toteutusta varten.
public Object run(Object args) throws Exception { Display display = PlatformUI.createDisplay(); try { int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); // poistu sovelluksesta sopiva paluukoodin kanssa return code == PlatformUI.RETURN_RESTART ? EXIT_RESTART : EXIT_OK; } finally { if (display != null) display.dispose(); } }
Kohteen createAndRunWorkbench kutsu ei palaudu, ennen kuin työympäristö on lopetettu. SWT-tapahtumasilmukka ja muu matalan tason logistiikka käsitellään tässä metodissa. Tässä vaiheessa ei ole kovin tärkeää ymmärtää SWT-sovelluksen ajoon liittyvää toimintaa. Koodin voi kopioida RCP-sovellukseen pienin muutoksin. Keino, jolla voit lisätä omat toimintosi, on WorkbenchAdvisor, joka välitetään argumenttina, kun työympäristö luodaan. Sitä tarkastellaan seuraavaksi.