Il punto di estensione org.eclipse.ui.bindings
viene utilizzato per dichiarare binding e schemi. Gli schemi sono
insiemi di uno o più binding. Un binding è un'associazione tra un determinato gruppo di condizioni, alcune immissioni dell'utente e un
comando in trigger.
Tutti i binding richiedono un trigger di qualche tipo, un contesto in cui essere attivi e uno schema al quale appartengono. Se non si è
sicuri del contesto da selezionare, lasciarlo vuoto. Il valore predefinito del contesto sarà "org.eclipse.ui.contexts.window"
. Questo contesto indica che il binding si applica a tutte le finestre principali Eclipse. Quando il contesto diventa attivo, anche il
binding diventa attivo. I binding per i contesti secondari sovrascriveranno i binding dei contesti principali. Per ulteriori
informazioni sui contesti, fare riferimento al punto di estensione org.eclipse.ui.contexts
.
Se un binding non definisce un identificativo di comando, allora si tratta di un indicatore di eliminazione. In questo caso, se si verificano tutte le condizioni, verranno annullati tutti i binding con lo stesso trigger nello stesso contesto. Questo meccanismo può essere utilizzato, ad esempio, per modificare un binding in una particolare piattaforma.
Uno dei tipi di binding è l'associazione di tasti, binding key
(ovvero una scelta rapida da tastiera). Ad esempio,
l'associazione di Ctrl+C
a Copia
è un binding di tipo key
. Il trigger di un'associazione ai tasti
è una sequenza di tasti premuti.
Uno schema è un gruppo di questi binding in un insieme che può essere selezionato dall'utente finale. Ad esempio, un utente può scegliere di utilizzare lo schema predefinito, ma può anche utilizzare uno schema in stile Emacs o sintetico.
<!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>
Uno schema è un raggruppamento di binding che può essere selezionato dall'utente finale.
Gli schemi possono ereditare i binding da uno schema principale. Questo allo scopo di semplificare la creazione di insiemi di binding personalizzati da parte degli sviluppatori di plugin. Un binding attivo definito in uno schema secondario sovrascriverà sempre un binding attivo in uno schema principale, se presentano lo stesso trigger. Questa tecnica viene utilizzata per fornire lo schema Emacs nel 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>
Un binding tra immissioni da tastiera e il trigger di un comando.
la sequenza di tasti di questo binding. Una sequenza di tasti è costituita da una o più combinazioni di tasti. Le combinazioni di tasti
sono separate da spazi. Le combinazioni di tasti sono costituite da uno o più tasti premuti contemporaneamente. Le combinazioni sono
rappresentate da zero o più tasti di modifica e da un altro tasto. I tasti sono separati dal carattere +
.
I tasti di modifica sono M1
, M2
, M3
, M4
,
ALT
, COMMAND
, CTRL
e SHIFT
. I tasti di modifica "M" sono un modo indipendente dalla
piattaforma di rappresentare i tasti, e sono generalmente preferiti. M1
corrisponde al tasto COMMAND
su MacOS
X ed al tasto CTRL
sulla maggior parte delle altre piattaforme. M2
è il tasto SHIFT
(Maiusc). M3
corrisponde al tasto Option
su MacOS X e al tasto ALT
sulla maggior parte delle altre piattaforme. M4
corrisponde al tasto CTRL
su MacOS X e non è definito sulle altre piattaforme.
Il tasto effettivo viene generalmente specificato come carattere ASCII, in maiuscolo. Ad esempio, F
o
,
sono esempi di tasti di questo tipo. Tuttavia esistono alcuni tasti speciali, che non possono essere rappresentati da un
carattere ASCII stampabile. Di seguito è riportato un elenco dei tasti speciali in uso: 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
e VT
.
Sono anche utilizzati nomi alternativi per alcuni tasti speciali comuni. Ad esempio, vengono accettati sia
ESC
che ESCAPE
, mentre CR
, ENTER
e RETURN
sono considerati uguali.
È fortemente consigliato di mantenere una sequenza di tasti breve. Uno o due tasti sono sufficienti. Utilizzare i contesti per assegnare alla sequenza di tasti significati diversi in parti diverse dell'applicazione. Al massimo, non dovrebbe essere utilizzata una sequenza di tasti contenente più di quattro tasti.
org.eclipse.ui.contexts
. Se non è specificato, il valore predefinito è org.eclipse.ui.contexts.window
.l'identificativo del comando da eseguire quando si attiva il trigger del binding.
Se non viene specificato alcun identificativo di comando, questo è un indicatore di eliminazione. Questo indica che tutti i binding nello stesso contesto con la stessa sequenza, piattaforma e locale diventeranno non attivi quando questo binding diventa attivo. Se non viene specificata la piattaforma o la locale per un'eliminazione, questa risulta valida per tutte le piattaforme o locali.
SWT.getPlatform()
. Ad esempio, le seguenti stringhe sono considerate valide: win32
, gtk
,
motif
, carbon
e photon
.Locale.toString()
. Ad
esempio, "it"
o "it_IT"
sono entrambi validi.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Un nome e un valore di parametro devono essere passati al comando al momento dell'esecuzione. Questo consente al comando di essere qualificato. Ad esempio, un comando "Mostra vista" potrebbe accettare l'id vista come parametro.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Valore predefinito"
description=
"Default shortcuts for Eclipse"
id=
"default"
/>
</extension>
Non esiste alcuna API pubblica per la definizione dei binding. Per cercare di raggiungere una stabilità per gli utenti, i binding sono
definiti solo tramite i punti di estensione. Per un'applicazione RCP, dovrebbe essere possibile sovrascrivere questo comportamento in
WorkbenchAdvisor
.
Per attivare i binding, è necessario aver definito un comando. Per il funzionamento corretto dei binding, il comando deve essere un gestore attivo. I gestori possono essere registrati tramite programma; fare riferimento al punto di estensione org.eclipse.ui.handlers.
Copyright (c) 2005 IBM Corporation e altri.
Tutti i diritti riservati. Questo programma e il materiale di accompagnamento sono
disponibili secondo i termini della Eclipse Public License v1.0 che sono distribuiti con il prodotto, e disponibili all'indirizzo
http://www.eclipse.org/legal/epl-v10.html