Eclipse RCP

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

Eclipse RCP je projekt vedený open source komunitou se jménem Eclipse Community a je součástí rodiny projektu Eclipse project. Světlo světa spatřilo v roce 2004 i když samotné IDE existovalo už dříve. Dle komunity kolem Eclipse RCP je určen k projektování hlavně graficky bohatých aplikací.

Základní charakteristiky[editovat | editovat zdroj]

Eclipse RCP umožňuje Java vývojářům používat architekturu Eclipse pro tvorbu flexibilních a rozšířitelných stand-alone aplikací. Dále umožňuje používat velké množství už existujících funkcí a vzorů obsažených v Eclipse. Pro pochopení architektury Eclipse je důležité pochopení základních pojmů:

  • Workspace je fyzické úložiště, ve kterém pracujeme. Workspace se dá měnit a můžeme jich mít více. Všechny projekty, zdroje, obrázky a ostatní artefakty se nacházejí ve workspace.
  • Perspektiva je kontejner, který v sobě seskupuje view a editory. Mezi perspektivami se dá přepínat a komponenty se dají v rámci perspektivy uspořádat podle potřeb. Eclipse si toto uspořádání pamatuje. Perspektiva by měla sdružovat komponenty vztahující se k jedné problematice.
  • View a editory jsou komponenty umístěné v rámci perspektivy. View většinou slouží jako navigátor, zobrazuje informace nebo slouží k otevírání editorů. Změny ve view se aplikují přímo. Editory jsou používány k úpravám elementů. Ve vývojovém prostředí Eclipse je to například editor Java tříd nebo HTML. Editory mohou mít kompletaci kódu, podporu zpět/vpřed apod. Pro uložení změn se běžně používá funkce save.

Eclipse je postavem nad OSGI framework (Equinox). Díky tomuto frameworku mohou být pluginy (v OSGI nazývané bundle) nahrávány dynamicky. Díky těmto pluginům můžete rozšířit Eclipse IDE nebo aplikaci postavenou na Eclipse RCP.

Eclipse architektura[editovat | editovat zdroj]

Nejdůležitější charakteristikou z hlediska architektury je plugin architektura. Eclipse IDE je postaveno jako množství pluginů, které jsou na sobě navzájem závislé. Pluginy jsou nejmenší samostatná jednotka v Eclipse, kterou můžeme samostatně instalovat. Každý plugin může definovat tzv. extension points. Tyto “rozšiřující body“ definují možnost rozšiřitelnosti pluginu. Toto rozšíření může být například nějaká funkcionalita nebo podpora nápovědy. Použité extensions a deklarované extension points jsou popsány v plugin.xml, ve kterém má plugin uloženu svou vlastní konfiguraci.

Jak je vidět z předchozího obrázku Eclipse RCP obsahuje Eclipse runtime, SWT, JFace, Workbench a další předpoklady pro WorkBench, jako je například podpora pro XML.

Hlavní komponenty RCP aplikace[editovat | editovat zdroj]

Eclipse RCP aplikace potřebuje:

  • Hlavní aplikaci – RCP hlavní aplikační třída implementuje rozhraní IApplication. Eclipse očekává, že aplikační třída je definována přes extension point org.eclipse.core.runtime.application.
  • Perspektiva – Perspektiva dědí z org.eclipse.ui.perspective
  • Workbench Advisor – neviditelná komponenta, která kontroluje viditelnost komponent, jako jsou menu, toolbary, perspektivy apod.

Všechny pluginy musí obsahovat soubor nazvaný plugin.xml. Minimální požadavky na pluginy k vytvoření a spuštění aplikace jsou pluginy "org.eclipse.core.runtime" a "org.eclipse.ui".

Aplikace versus produkt[editovat | editovat zdroj]

K tomu abychom mohli spustit Eclipse RCP program potřebujeme definovat aplikaci. Aplikace je něco jako main metoda ve standardním Java programu. Pokud se tato aplikace zavře, celý program je ukončen. V Eclipse terminologii je produkt všechno co je distribuováno s aplikací. Patří tam ikony, grafika, další pluginy, externí knihovny apod.

Důležité soubory[editovat | editovat zdroj]

Konfigurace pluginu je uložena ve dvou souborech:

  • MANIFEST.MF je manifest pocházející z OSGI
  • plugin.xml obsahuje další konfigurace, které jsou specifické pro Eclipse (nástavba nad OSGI). Jako příklad mohou posloužit už zmíněné extension points.

Navíc existuje „.project“ soubor, který obsahuje popis projektu. Rozhraní poskytuje editor pro úpravu těchto souborů. Díky němu nemusíme procházet nepřehledné XML a můžeme si většinu konfigurace „naklikat“.

Grafika[editovat | editovat zdroj]

Eclipse RCP používá pro návrh grafických prvků knihovny SWT a JFace. SWT bylo navrženo, aby umožnilo nativní vzhled aplikací na jednotlivých systémech a aplikace tudíž zapadne do stylu, ve kterém je uživatel zvyklý pracovat. Knihovny JFace poskytují nadstandardní grafické prvky, jako jsou například wizardy, různé typy viewerů apod. Tyto dvě knihovny poskytují komplexní základnu pro tvorbu grafického uživatelského rozhraní. Obsahují také podporu pro tvorbu mnoha typu menu jako kromě základních i tool bar a cool bar. V těchto knihovnách je také obsažena podpora pro technologii Drag&Drop. Detailní popis SWT a JFace je možno najít v knize SWT JFace in Action(1). Neobsahuje žádnou podporu pro nestandardní návrhy GUI pomocí XML nebo CSS. V dokumentaci se mi nepodařilo objevit podporu pro změny stylu GUI za běhu aplikace, jelikož Eclipse RCP nabízí pouze jeden finální vzhled aplikace. Další důležitou částí je podpora pro práci s externími datovými typy, jako jsou HTML, XML a další běžně užívané typy souboru. Platforma obsahuje základní XML editor. Při vytváření nového projektu v Eclipse RCP můžeme vytvořit nový plugin s automaticky generovaným XML editorem s obarvováním textu. Platforma má vlastní docking systém. Ten nám umožňuje jednotlivá okna aplikace vyvinuté v Eclipse RCP seskupovat (dockovat) a nebo okno jednoduše vytáhnout ven, aby mohlo fungovat jako zcela samostatný prvek. Eclipse RCP neposkytuje žádnou nadstandardní podporu pro práci s kalendářem. Poslední, neméně důležitou částí této sekce je branding. Branding se dá zjednodušeně vysvětlit jako vyšperkování aplikace různými grafickými komponentami. Jelikož je Eclipse RCP určen na návrh graficky bohatých aplikací, má tato část nemalé využití. Kromě snad už standardní podpory splashscreen, umožňuje Eclipse RCP naklikat about dialog a welcome screen, který je tvořen HTML kódem. Poskytuje také možnost nastavit vlastní ikony jak pro spouštěcí soubor aplikace, tak pro jednotlivá okénka aplikace.

Proč Eclipse RCP?[editovat | editovat zdroj]

Mnoho lidí, kteří vyvinuli nebo vyvíjejí aplikace nad Eclipse RCP oceňují následující výhody:

  • možnost rychlého vývoje profesionálně vypadající aplikace
  • vyvinutá aplikace má nativní look-and-feel
  • multiplatformní aplikace
  • open-source systém
  • některé komponenty z Eclipse jsou použitelné i v dalších aplikacích (Help UI, Update manager...)

Literatura[editovat | editovat zdroj]

  1. M. Scarpino; S. Holder; Stanford Ng; L. Mihalkovic. SWT/JFace in action. Greenwich: Manning publications,2005. 468 s. ISBN 1-932394-27-3
  2. VOGEL, Lars. Vogella.de [online]. 2010-04-12 [cit. 2010-04-14]. Eclipse RCP - Tutorial (Eclipse 3.5). Dostupné z WWW: <https://web.archive.org/web/20080624014954/http://www.vogella.de/articles/richclientplatform/article.html>.
  3. VOGEL, Lars. Vogella.de [online]. 2009-12-30 [cit. 2010-04-14]. Eclipse Java IDE - Tutorial. Dostupné z WWW: <http://www.vogella.de/articles/RichClientPlatform/artic
  4. HYBLER, Michal. Porovnání frameworku pro tlustého klienta v Jave. Praha, 2008. 49 s. Bakalářská práce. Vysoká škola ekonomická.
  5. Wiki.eclipse.org [online]. c2010 [cit. 2010-04-14]. RCP FAQ. Dostupné z WWW: <http://wiki.eclipse.org/RCP_FAQ>.