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.
<!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.
Sekvence kláves pro tuto vazbu. Tato sekvence kláves by se měla skládat z minimálně jednoho stisku klávesy. Jednotlivé stisky kláves jsou odděleny mezerou. Stisky kláves představují současný stisk jedné nebo několika kláves. Měl by to být nepovinný stisk jedné či několika kláves modifikátoru a jedné další klávesy. Tyto klávesy jsou odděleny znakem +
.
Rozpoznávají se klávesy modifikátoru M1
, M2
, M3
, M4
, ALT
, COMMAND
, CTRL
a SHIFT
. Klávesy modifikátoru "M" představují klávesy nezávislé na platformě a obecně se jim dává přednost. M1
představuje klávesu COMMAND
na systému MacOS X nebo klávesu CTRL
na většině ostatních platforem. M2
představuje klávesu SHIFT
. M3
je klávesou Option
na systému MacOS X nebo klávesou ALT
na většině ostatních platforem. M4
je klávesou CTRL
na systému MacOS X a na ostatních platformách není definována.
Vlastní klávesa je obecně jednoduše zadána jako znak ASCII, za použití velkých písmen. Příkladem takových kláves je F
nebo ,
. Existují však i speciální klávesy; jedná se o klávesy, pro které neexistuje vytisknutelný znak. Následuje seznam speciálních kláves používaných v současnosti: ARROW_DOWN
, ARROW_LEFT
, ARROW_RIGHT
, ARROW_UP
, BREAK
, BS
, CAPS_LOCK
, CR
, DEL
, END
, ESC
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, F13
, F14
, F15
, FF
, HOME
, INSERT
, LF
, NUL
, NUM_LOCK
, NUMPAD_0
, NUMPAD_1
, NUMPAD_2
, NUMPAD_3
, NUMPAD_4
, NUMPAD_5
, NUMPAD_6
, NUMPAD_7
, NUMPAD_8
, NUMPAD_9
, NUMPAD_ADD
, NUMPAD_DECIMAL
, NUMPAD_DIVIDE
, NUMPAD_ENTER
, NUMPAD_EQUAL
, NUMPAD_MULTIPLY
, NUMPAD_SUBTRACT
, PAGE_UP
, PAGE_DOWN
, PAUSE
, PRINT_SCREEN
, SCROLL_LOCK
, SPACE
, TAB
a VT
.
Pro běžné speciální klávesy lze použít i alternativní názvy. Například se současně akceptuje ESC
a ESCAPE
, nebo CR
, ENTER
a RETURN
.
Důrazně se také doporučuje používat co nejkratší sekvence kláves. Většinou by měla stačit jedna nebo dvě klávesy. Používejte kontexty a přiřazujte sekvencím kláves různé významy v různých částech aplikace. Ani v nejzazším případě byste neměli používat sekvence kláves obsahující více než čtyři klávesové úhozy.
org.eclipse.ui.contexts
. Pokud není zadán, standardně se použije org.eclipse.ui.contexts.window
.Identifikátor příkazu, který by se měl provést při spuštění této vazby.
Pokud není zadán žádný identifikátor příkazu, jedná se o značku odstranění. To znamená, že když se tato vazba aktivuje, jakákoli vazba ve stejném kontextu, se stejnou sekvencí, platformou a národním prostředím se stane neaktivní. Pokud platforma nebo národní prostředí v okamžiku odstraňování nejsou určeny, považuje se to za shodu s libovolnou platformou nebo národním prostředím.
SWT.getPlatform()
. Za platné jsou považovány například tyto řetězce: win32
, gtk
, motif
, carbon
a photon
.Locale.toString()
. Je možné použít např. "en"
nebo "en_CA"
. <!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.
Copyright (c) 2005 IBM Corporation a další.
Všechna práva vyhrazena.
Tento program a doprovodné materiály jsou zpřístupněny za podmínek licence Eclipse Public License
v1.0, která je součástí této distribuce a je k dispozici na adrese
http://www.eclipse.org/legal/epl-v10.html