Binding

org.eclipse.ui.bindings

3.1

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.



<!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>

Un binding tra immissioni da tastiera e il trigger di un comando.



<!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.