Egy kontextus segítségével befolyásolható, hogy egy adott pillanatban mely parancsok álljanak rendelkezésre a felhasználó számára. A kontextusok dinamikusabbak, mint a tevékenységek. Miközben a tevékenység a funkciók széles skáláját ábrázolja, amelyek az idő nagy részében a felhasználó rendelkezésére állnak, a kontextusok a felhasználó fókuszát írják le egy adott időpontban. A szöveg szerkesztése során a felhasználó rendelkezésére álló parancsok különbözhetnek a Java szöveg szerkesztése vagy a csomagböngészőben lévő csomag böngészése során rendelkezésre állóktól.
A kontextusok az org.eclipse.ui.contexts kiterjesztési pontban kerülnek megadásra. Tartsa szem előtt az alábbi kontextust, amely a szöveg szerkesztéséhez van megadva:
<extension point="org.eclipse.ui.contexts"> <context name="%context.editingText.name" description="%context.editingText.description" id="org.eclipse.ui.textEditorScope" parentId="org.eclipse.ui.contexts.window"> </context>A kontextusokhoz hozzá van rendelve egy név és leírás, amelyet a felhasználó kontextusával kapcsolatos információk megjelenítésekor használ a rendszer. A kontextus azonosítóját a rendszer az UI kiegészítések - mint például egy adott kontextus parancsai - kötésekor használja.
A kontextusok hierarchikus jellegűek. Ha a kontextus aktív, akkor a kontextusban és a szülőkontextusban rendelkezésre álló parancsok is rendelkezésre állnak. Ez a kontextus szintjeinek megadásakor hasznos, amelyek a nagyon általános helyzetektől a speciális kontextusokig terjednek. A fenti kontextus definícióban figyelje meg, hogy egy szülőazonosító van hozzárendelve a kontextushoz:
<context name="%context.editingText.name" description="%context.editingText.description" id="org.eclipse.ui.textEditorScope" parentId="org.eclipse.ui.contexts.window"> </context>A szülőkontextus az ablakban dolgozás általánosabb kontextusát adja meg. A szülő az ablakban vagy párbeszédablakban dolgozás még általánosabb kontextusát adja meg.
<context name="%context.window.name" description="%context.window.description" id="org.eclipse.ui.contexts.window" parentId="org.eclipse.ui.contexts.dialogAndWindow"> </context> <context name="%context.dialogAndWindow.name" description="%context.dialogAndWindow.description" id="org.eclipse.ui.contexts.dialogAndWindow"> </context>
Eddig a kontextusok hierarchiáját adtuk meg. A kontextus akkor válik hasznossá, ha másik UI kiegészítés leírásában hivatkoznak rá. A kontextusok legáltalánosabb használata a billentyűkombinációk. Ha a kontextus hozzá van rendelve egy billentyűkombinációhoz, akkor a billentyűkombináció csak akkor lesz aktív, ha a felhasználó ebben a kontextusban van. Az alábbi leírónyelv például a gyökér párbeszédablakot és az ablakkontextust a billentyűkombináció kontextusaként adja meg:
<keyBinding commandId="org.eclipse.ui.edit.cut" contextId="org.eclipse.ui.contexts.dialogAndWindow" keySequence="M1+X" keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration"> </keyBinding>
A munkaterület kontextus támogatás egy alkalmazás programozási felületet is magában foglal a megadott kontextusok kezeléséhez és feltételek megadásához, amely alatt egy adott kontextusnak engedélyezettnek kell lennie. A legtöbb bedolgozót nem befolyásolja ez az API, de új kontextusokat megadó speciális nézetek vagy szerkesztők megadásakor hasznos.
A kontextusok munkaterületen kezelésének kezdőpontja az IWorkbenchContextSupport. A bedolgozók a kontextustámogatást lekérhetik a munkaterületről.
IWorkbenchContextSupport workbenchContextSupport = PlatformUI.getWorkbench().getContextSupport();A munkaterület kontextus támogatás API segítségével hozzáadható vagy eltávolítható azon feltételeket leíró EnabledSubmission, amelyek hatására egy adott kontextus engedélyezetté válik. A feltételek olyan részt tartalmaznak, mint például az aktív rész vagy aktív parancsértelmező. A munkaterület támogatás hozzáférést biztosít az IContextManager elemhez.
IContextManager contextManager = workbenchContextSupport.getContextManager();
IContextManager megad egy protokollt az összes megadott vagy engedélyezett kontextusazonosító lekéréséhez, valamint a társított IContext adott azonosítóhoz lekéréshez. Ezen objektumok átvizsgálhatják a kontextus definícióját az alkalmazás programozási felületen, mint például a szülőkontextus azonosítójának, nevének vagy azonosítójának megszerzése. A figyelők regisztrálhatók a kontextuskezelőn vagy magán a kontextusokon az adott kontextus definíciójának vagy a kontextuskezelő módosításának észlelése érdekében. További információkért tekintse meg az org.eclipse.ui.contexts csomagot.