Už jsme viděli některé způsoby, kterými pracovní plocha umožňuje uživatelům kontrolovat vzhled funkčnosti modulů plug-in. Pohledy mohou být skryty nebo zobrazeny pomocí nabídky Okno >Zobrazit pohled. Akční sady mohou být skryty nebo zobrazeny pomocí nabídky Okno >Přizpůsobit perspektivu.... Tyto vlastnosti pomáhají uživateli organizovat pracovní plochu.
Perspektivy poskytují další vrstvu organizace uvnitř okna pracovní plochy. Uživatelé mohou přepínat mezi perspektivami, jak se přesunují mezi úlohami. Perspektiva definuje kolekci pohledů, rozvržení pro pohledy a viditelnou akční sadu, která by měla být použita, když uživatel poprvé otevře perspektivu.
Perspektivy jsou implementovány pomocí IPerspectiveFactory. Od implementátorů IPerspectiveFactory se očekává nakonfigurování IPageLayout s informací, která popisuje perspektivu a její rozvržení stránky perspektivy.
Jedním z hlavních úkolů IPageLayout je popsat umístění editoru a pohledů v okně pracovní plochy. Všimněte si, že tato rozvržení jsou jiná než třída Rozvržení v SWT. I když IPageLayout a Layout řeší podobný problém (formátování a umístění prvků ve větší oblasti), nemusíte rozumět rozvržením SWT, abyste dodali rozvržení stránky perspektivy.
Rozvržení stránky perspektivy je inicializováno s jednou oblastí pro zobrazení editoru. Továrna perspektivy je odpovědná za přidání dalších pohledů, relativně k editoru. Pohledy jsou přidány k rozvržení relativně (nahoru, dolů, vlevo, vpravo) k jiné části. Zástupné symboly (prázdné místo) mohou být také přidány pro položky, které nejsou na začátku zobrazeny.
Chcete-li zorganizovat související pohledy a zmenšit nepořádek, můžete použít IFolderLayout pro seskupení pohledů do složek opatřených kartami. Například Perspektiva prostředků umístí navigátor prostředků dovnitř složky v levém horním rohu pracovní plochy. Zástupné symboly jsou obvykle použity s rozvržením složky. Perspektiva prostředku definuje zástupný symbol pro pohled záložek ve stejné složce, jako navigátor prostředků. Pokud uživatel zobrazí pohled Záložky, objeví se ve stejné složce s navigátorem, s kartou pro každý pohled.
IPageLayout vám také umožňuje definovat dostupné akce a zástupce uvnitř perspektivy.
Další hodnotnou službou poskytovanou perspektivami a IPageLayout je pomoc při navigaci mezi editorem a jeho souvisejícími pohledy. Pohledy obvykle považujeme za pomoc uživateli nalézt objekty pro práci s editory. Konverzní operace je však také užitečná: uživatel pracující s objektem v editoru může potřebovat navigovat k tomuto objektu uvnitř pohledu. Může se to provést pomocí nabídky pracovní plochy Navigovat > Zobrazit v. Tento příkaz umožňuje uživateli přeskočit na jeden z libovolného množství pohledů v kontextu aktuálně upravovaného (nebo vybraného) objektu. Například uživatel upravující soubor si může přát přejít na tento soubor v navigátoru prostředků.
Architektura modulu plug-in pracovní plochy umožňuje vývojářům přispívat pohledy a editory v jiných modulech plug-in, které dokonce jeden o druhém neví. Implementací podpory pro "show in" může váš pohled nebo editor podporovat pohodlnou navigaci do nebo z pohledů a editorů přispěných jinými moduly plug-in.
Tato navigace umožňuje uživatelům přesunovat se rychleji mezi pohledy a snadněji otevřít pohled, který není obvykle zobrazen v konkrétní perspektivě. Například uživatel pracující v perspektivě Java může použít Navigovat > Zobrazit v k prohlídce aktuálně upravovaného souboru Java v pohledu Navigátor.
Pokud chcete umožnit uživatelům použití Navigovat > Zobrazit v z vašeho editoru nebo pohledu k přechodu do jiného pohledu, musíte implementovat IShowInSource. Vaše část může dodat svůj IShowInSourcepřímo pomocí protokolu (getShowInSource()), nebo jako adaptér. IShowInSourceumožňuje vaší části dodávat kontext (ShowInContext), který používá cíl k rozhodnutí, jak zdroj zobrazit. Kontext zobrazení pro editor je obvykle jeho vstupní prvek. Pro pohled je kontext obvykle jeho výběr. Výběr a vstupní prvek jsou poskytnuty v ShowInContext, aby přidali pro cíl flexibilitu při určení, jak zdroj zobrazit.
Předvolený kontext pro editory je poskytnut, takže se váš editor může účastnit zobrazování typu "show-in" bez jakéhokoliv speciálního kódování. Pro editory jsou vstupní prvek a výběr použity k vytvoření příslušného kontextu.
Pro pohledy, IShowInSource musí být implementován pohledem, k nabídnutí funkčnosti Navigovat > Zobrazit v.
Musíte implementovat IShowInTarget, pokud chcete, aby byl váš pohled platným cílem pro operaci "show in". Cíl je odpovědný za zobrazení daného kontextu způsobem odpovídajícím jeho prezentaci. Například pohled Navigátor rozbaluje svůj strom k výběru zobrazení prostředku zadaného v kontextu.
Cíl by měl nejprve zkontrolovat výběr v ShowInContext, při rozhodování, co zobrazit, protože se jedná o konkrétnější informaci. Měl by zobrazit vstupní prvek pouze, pokud není označen žádný výběr.
Jak se určí seznam dostupných cílů? Dostupné cíle pro vaši perspektivu můžete specifikovat v IPageLayout. Připomeňme si, že navigace "show in" (zobrazit v) může otevřít pohled, který ještě není přítomen v perspektivě. PomocíIPageLayout.addShowInPart, můžete určit platný cíl pro "show in" pomocí ID. Tímto způsobem mohou být zavedeny platné cíle bez zbytečného vytváření jakýchkoliv pohledů.