Kontextusok

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.

Kontextus megadása

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.

Kontextushierarchiák

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>

Kiegészítés hozzárendelése egy kontextushoz

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>

Kontextus API használata

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.