Koppelingen

org.eclipse.ui.bindings

3.1

Het extensiepunt org.eclipse.ui.bindings wordt gebruikt voor het declareren van koppelingen (bindings) en schema's. Schema's zijn verzamelingen van een of meer koppelingen. Een koppeling is een toewijzing tussen een bepaalde groep voorwaarden, een bepaalde gebruikersinvoer en een opdracht die wordt geactiveerd.

Alle koppelingen hebben een bepaalde trigger, een context waarin zij actief zijn en een schema waarbinnen zij bestaan, nodig. Als u niet zeker weet welke context u moet kiezen, laat u deze leeg. De standaardcontext is "org.eclipse.ui.contexts.window". De selectie van deze context betekent dat de koppeling van toepassing is in elk hoofdvenster van Eclipse. Wanneer de context actief wordt, wordt ook de koppeling actief. Koppelingen van onderliggende contexten vervangen de koppelingen van de bovenliggende contexten. Zie het extensiepunt org.eclipse.ui.contexts voor meer informatie over context.

Als een koppeling geen opdracht-ID definieert, gaat het om een merkteken voor wissen. Dit betekent dat, wanneer wordt voldaan aan de voorwaarden, de koppelingen met dezelfde trigger in dezelfde context worden geannuleerd. Dit mechanisme kan bijvoorbeeld worden gebruikt voor het wijzigen van een koppeling op een bepaald platform.

Een van de bindingstypen is een toetskoppeling (i.e. een sneltoetscombinatie). Bijvoorbeeld het koppelen van Ctrl+C aan Kopiëren wordt beschouwd als een toetskoppeling. De trigger voor een toetskoppeling is een reeks toetsaanslagen.

Een schema is een groep van deze koppelingen in een set die kan worden geselecteerd door de eindgebruiker. Een gebruiker wil bijvoorbeeld niet alleen het standaardschema gebruiken, maar ook een schema in de Emacs- of de Brief-stijl.

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

Een schema is een groep koppelingen waarvoor geldt dat de eindgebruiker kan kiezen deze te gebruiken.

De schema's kunnen koppelingen overnemen van een bovenliggend schema. Hiermee wordt het gemakkelijker voor pluginontwikkelaars om aangepaste koppelingensets te maken. Een actieve koppeling die gedefinieerd is in een afgeleid schema, vervangt altijd de koppeling in het bovenliggende schema als voor beide dezelfde trigger is gedefinieerd. Deze techniek wordt gebruikt om het Emacs-schema te voorzien in de 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>

De koppeling tussen een bepaalde invoer via het toetsenbord en het initiëren van een opdracht.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

id    CDATA #IMPLIED

value CDATA #IMPLIED>

Een parameternaam en -waarde moeten bij de verwerking aan de opdracht worden doorgegeven. Op deze manier wordt de opdracht gekwalificeerd. Bijvoorbeeld de opdracht "View afbeelden" kan het view-id als parameter accepteren.



<extension point=

"org.eclipse.ui.bindings"

>

<key sequence=

"M2+F5"

commandId=

"commandId"

schemeId=

"default"

contextId=

"windows"

/>

<scheme name=

"Standaard"

description=

"Standaardsnelkoppelingen in Eclipse"

id=

"default"

/>

</extension>

Er is geen openbare API voor het definiëren van koppelingen. Ten behoeve van de stabiliteit voor de gebruiker worden de koppelingen alleen gedefinieerd door middel van extensiepunten. Als u een RCP-toepassing gebruikt, kunt u dit gedrag in de WorkbenchAdvisor uitschakelen.

Om de bindingen te laten functioneren moet u een opdracht definiëren. De binding werkt alleen als de opdracht een actief afhandelingsroutine heeft. De afhandelingsroutines kunnen programma-matig worden geregistreerd; zie het extensiepunt org.eclipse.ui.handlers.