Vazby

org.eclipse.ui.bindings

3.1

Bod rozšíření org.eclipse.ui.bindings se používá k deklarování vazeb a schémat. Schémata představují sady několika vazeb, přičemž v sadě může být i vazba jediná. Vazba představuje mapování mezi určitou skupinou podmínek, nějakým uživatelským vstupem a spuštěným příkazem.

Všechny vazby vyžadují nějaký spouštěč, dále kontext, ve kterém jsou aktivní, a schéma, ve kterém se vyskytují. Pokud si nejste jisti tím, jaký kontext vybrat, ponechte jej nevyplněný. Standardně se použije kontext "org.eclipse.ui.contexts.window". Tento kontext znamená, že vazba bude použita v libovolném hlavním okně platformy Eclipse. Když se kontext stane aktivním, zaktivuje se i vazba. Vazby z podřízených kontextů potlačí vazby z nadřazených kontextů. Další informace o kontextech najdete pod bodem rozšíření org.eclipse.ui.contexts.

Pokud vazba nedefinuje identifikátor příkazu, pak se jedná o značku odstranění. To znamená, že při splnění všech podmínek zruší veškeré vazby se stejným spouštěčem ve stejném kontextu. Tento mechanizmus lze použít například pro změnu vazby na určité platformě.

Jedním typem vazby je vazba key (tj. klávesová zkratka). Například vazba mezi Ctrl+C a příkazem Copy se považuje za vazbu kláves key. Spouštěčem vazby kláves je konkrétní sekvence kláves.

Schéma představuje skupinu těchto vazeb na sadu, ze které si konečný uživatel může vybrat. Uživatel může například preferovat standardní schéma, ale stejně tak může dát přednost schématu ve stylu Emacs nebo Brief.

<!ELEMENT extension (scheme , key)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT scheme EMPTY>

<!ATTLIST scheme

id          CDATA #REQUIRED

name        CDATA #REQUIRED

description CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Schéma představuje seskupení vazeb, které může konečný uživatel volitelně používat.

Schémata mohou dědit vazby od nadřazených schémat. Vývojářům modulů plug-in se tak usnadní vytváření přizpůsobených sad vazeb. V případě, že mají stejný spouštěč, aktivní vazba definovaná v podřízeném schématu vždy potlačí aktivní vazbu v rodičovském schématu. Tato technika se používá pro poskytnutí schématu Emacs v rámci modulu Workbench.



<!ELEMENT key (parameter)>

<!ATTLIST key

sequence  CDATA #REQUIRED

schemeId  CDATA #REQUIRED

contextId CDATA "org.eclipse.ui.contexts.window"

commandId CDATA #IMPLIED

platform  CDATA #IMPLIED

locale    CDATA #IMPLIED>

Vazba mezi nějakým vstupem z klávesnice a spuštěním příkazu.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

id    CDATA #IMPLIED

value CDATA #IMPLIED>

Název a hodnota parametru k předání příkazu při jeho spuštění. Díky tomu je možné stejným způsobem kvalifikovat příkaz. Například příkaz "Zobrazit pohled" může přijmout ID pohledu jako svůj parametr.



<extension point=

"org.eclipse.ui.bindings"

>

<key sequence=

"M2+F5"

commandId=

"commandId"

schemeId=

"default"

contextId=

"windows"

/>

<scheme name=

"Default"

description=

"Výchozí zástupci pro platformu Eclipse"

id=

"default"

/>

</extension>

Neexistuje žádné veřejné rozhraní API pro definování vazeb. Kvůli dosažení stability pro jednotlivé uživatele jsou vazby definovány pouze prostřednictvím bodů rozšíření. Pokud máte aplikaci RCP, měli byste být schopni toto chování potlačit pomocí WorkbenchAdvisor.

Aby vazby mohly fungovat, musíte mít definován příkaz. Vazba ke svému fungování vyžaduje, aby příkaz měl aktivní popisovač. Popisovače lze registrovat v programu; viz bod rozšíření org.eclipse.ui.handlers.