Punkt rozszerzenia org.eclipse.ui.bindings
jest używany do deklarowania powiązań i schematów. Schematy są zbiorami zawierającymi co najmniej jedno powiązanie. Powiązanie
jest odwzorowaniem między określoną grupą warunków, danymi wejściowymi użytkownika i wyzwalaną komendą.
Wszystkie powiązania wymagają określonego rodzaju wyzwalacza, kontekstu w którym są aktywowane, oraz schematu, w którym istnieją. Jeśli
nie jest się pewnym, który kontekst należy wybrać, nie należy podawać żadnej wartości. Domyślnie zostanie użyty kontekst "org.eclipse.ui.contexts.window"
. Ten kontekst oznacza, że powiązanie będzie stosowane w dowolnym oknie głównym środowiska Eclipse. Po aktywowaniu kontekstu jest również aktywowane powiązanie. Powiązania z kontekstów potomnych przesłaniają powiązania z kontekstów nadrzędnych. Więcej informacji o kontekstach można znaleźć w dokumentacji punktu rozszerzenia org.eclipse.ui.contexts
.
Powiązanie, które nie definiuje identyfikatora komendy, jest znacznikiem usuwania. To oznacza, że jeśli wszystkie warunki zostały spełnione, zostaną anulowane wszystkie powiązania z tym samym wyzwalaczem w tym samym kontekście. Ten mechanizm może być używany na przykład do zmiany powiązania dla wybranej platformy.
Jednym z typów powiązań jest powiązanie typu key
(tzn. skrót klawiaturowy). Na przykład powiązanie klawiszy Ctrl+C
z komendą Kopiuj
jest uznawane za powiązanie typu key
. Wyzwalaczem dla powiązania typu key jest sekwencja naciśnięć klawiszy.
Schemat jest zbiorem tych powiązań, który może zostać wybrany przez użytkownika końcowego. Na przykład użytkownik może używać schematu domyślnego, ale może również używać schematu edytora Emacs lub 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>
Schemat jest grupą powiązań, która może być wybierana i używana przez użytkownika końcowego.
Schematy mogą dziedziczyć powiązania ze schematu nadrzędnego. Ma to na celu ułatwienie programistom modułów dodatkowych tworzenie dostosowanych zbiorów powiązań. Aktywne powiązanie zdefiniowane w schemacie potomnym zawsze przesłania aktywne powiązanie w schemacie nadrzędnym, jeśli mają one taki sam wyzwalacz. Ta technika jest używana, aby udostępnić schemat edytora Emacs w środowisku roboczym.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
Powiązanie między danymi wprowadzanymi za pomocą klawiatury a wyzwalaniem komendy.
sekwencja klawiszy dla tego powiązania. Ta sekwencja klawiszy powinna składać się z co najmniej jednego naciśnięcia klawisza. Poszczególne naciśnięcia klawiszy
są rozdzielane spacjami. Naciśnięcia klawiszy oznaczają tu jeden lub więcej klawiszy naciśniętych i przytrzymanych jednocześnie. Powinno to obejmować zero lub więcej klawiszy modyfikujących oraz jeden inny klawisz. Klawisze należy rozdzielać znakiem +
.
Rozpoznawane klawisze modyfikujące to: M1
, M2
, M3
, M4
, ALT
, COMMAND
, CTRL
i SHIFT
.
Klawisze modyfikujące o oznaczeniu "M" są niezależnym od platformy sposobem reprezentowania klawiszy i są ogólnie preferowane. Kod M1
oznacza klawisz COMMAND
w systemie operacyjnym MacOS X i klawisz CTRL
w większości pozostałych platform. Kod M2
oznacza klawisz SHIFT
. Kod
M3
oznacza klawisz Option
w systemie operacyjnym MacOS X i klawisz ALT
w większości pozostałych platform. Kod
M4
oznacza klawisz CTRL
w systemie operacyjnym MacOS X i pozostaje niezdefiniowany dla pozostałych platform.
Rzeczywisty klawisz jest zwykle określany jako znak wielkiej litery w kodzie ASCII. Na przykład znaki F
lub ,
są przykładami takich klawiszy. Istnieją jednak wybrane klawisze specjalne, które nie mają drukowalnej reprezentacji w kodzie ASCII. Oto lista aktualnych klawiszy specjalnych: 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
i VT
.
Zrozumiałe są również alternatywne nazwy dla wybranych ogólnych klawiszy specjalnych. Na przykład akceptowane są zarówno łańcuchy ESC
i ESCAPE
oraz CR
, ENTER
i RETURN
, które oznaczają to samo.
Zaleca się stanowczo stosowanie krótkich sekwencji klawiszy. Jeden lub dwa klawisze w sekwencji powinny spełnić wymagania użytkownika. Aby nadać sekwencjom klawiszy różne znaczenia w różnych częściach aplikacji użytkownika, należy używać kontekstów. Nie należy używać sekwencji klawiszy, która zawiera więcej niż cztery kombinacje klawiszy.
org.eclipse.ui.contexts
. Jeśli ten parametr nie zostanie określony, domyślnie zostanie zastosowany kontekst org.eclipse.ui.contexts.window
.identyfikator komendy, która powinna zostać wykonana po wyzwoleniu tego powiązania.
Jeśli identyfikator komendy nie zostanie określony, to jest to znacznik usuwania. Oznacza to, że wszystkie powiązania w tym samym kontekście z tą samą sekwencją, platformą i lokalizacją staną się nieaktywne, gdy to powiązanie zostanie aktywowane. Jeśli platforma lub ustawienia narodowe do usunięcia nie zostały określone, oznacza to, że powiązanie jest zgodne z dowolną platformą lub dowolnymi ustawieniami narodowymi.
SWT.getPlatform()
. Na przykład następujące łańcuchy są uznawane za poprawne: win32
, gtk
, motif
, carbon
i photon
.Locale.toString()
. Na przykład kody "en"
lub "en_CA"
są rozpoznawane tak samo.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Nazwa parametru i wartość, które powinny zostać przekazane do komendy podczas jej wykonywania. Umożliwia to pewną kwalifikację komendy. Na przykład komenda Pokaż widok może akceptować identyfikator widoku jako parametr.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Domyślnie"
description=
"Domyślne skróty dla platformy Eclipse"
id=
"default"
/>
</extension>
Nie istnieje publiczny interfejs API do definiowania powiązań. Aby spróbować zapewnić użytkownikowi stabilność, powiązania są definiowane tylko przez punkty rozszerzenia. W
przypadku aplikacji RCP powinna istnieć możliwość przesłonięcia tego zachowania w klasie doradcy środowiska roboczego
.
Aby powiązania mogły działać, musi zostać zdefiniowana komenda. Aby powiązania mogły działać, komenda musi mieć aktywną procedurę obsługi. Procedury obsługi są rejestrowane programowo - szczegółowe informacje można znaleźć w dokumentacji punktu rozszerzenia org.eclipse.ui.handlers.
Copyright (c) 2005 IBM Corporation i inne podmioty.
Wszelkie prawa zastrzeżone. Program ten oraz towarzyszące mu materiały są udostępniane na warunkach
licencji EPL (Eclipse Public License), wersja 1.0, dołączonej do nich i
dostępnej pod adresem http://www.eclipse.org/legal/epl-v10.html.