Komento on käyttäjän toiminnon esittely tunnuksen mukaan. Komentojen avulla esitellään semanttiset toiminnot niin, että toimintojoukoissa ja muokkausohjelmissa määritetyt toiminnon toteutukset voivat liittää itsensä tiettyyn semanttiseen komentoon. Koska komento on erotettu toiminnon toteutuksesta, monta lisäosaa voi määrittää toimintoja, jotka toteuttavat saman semanttisen komennon. Komento liittyy tiettyyn näppäinsidontaan.
Työympäristö määrittää monia yleisiä komentoja plugin.xml-tiedostossaan, ja lisäosien suositellaan liittävän omat toimintonsa näihin komentoihin, kun se on järkevää. Tällä tavalla eri lisäosissa toteutetuilla merkitykseltään samankaltaisilla komennoilla on sama näppäinsidonta.
Komennot määritetään org.eclipse.ui.commands-laajennuspisteen avulla. Seuraava esimerkki on työympäristön merkinnöistä:
<extension point="org.eclipse.ui.commands"> ... <command name="%command.save.name" description="%command.save.description" categoryId="org.eclipse.ui.category.file" id="org.eclipse.ui.file.save"> </command> ...
Komennon määritys määrittää toiminnon nimen (name), kuvauksen (description) ja tunnuksen (id). Se määrittää myös komennon luokan tunnuksen, jonka avulla komennot ryhmitellään oletusasetusten valintaikkunassa. Luokat määritetään myös org.eclipse.ui.commands -laajennuspisteessä:
... <category name="%category.file.name" description="%category.file.description" id="org.eclipse.ui.category.file"> </category> ...
Huomaa, että komennolle ei ole määritetty toteutusta. Komennosta tulee konkreettinen vasta sitten, kun lisäosa liittää toimintonsa komennon tunnukseen.
Toiminnot voi liittää komentoihin koodissa tai toimintojoukkojen osalta plugin.xml-tiedostossa. Valinta vaihtelee sen mukaan, missä toiminto on määritetty.
Koodissa eritellyt toiminnot voi liittää myös toiminnon määritykseen IAction-käytännön avulla. Tämä tehdään tavallisesti toiminnon luonnin yhteydessä. SaveAction käyttää tätä tekniikkaa alustaessaan itsensä.
public SaveAction(IWorkbenchWindow window) { ... setText... setToolTipText... setImageDescriptor... setActionDefinitionId("org.eclipse.ui.file.save"); }
(Huomautus: metodin nimi setActionDefinitionID voisi paremmin olla setCommandID. Metodin nimi heijastaa näppäinsidontojen alkuperäistä toteutusta ja käyttää vanhentunutta terminologiaa.)
Kutsulla setActionDefinitionID toteutustoiminto (SaveAction) liitetään komennon tunnukseen, jota käytettiin komennon määrityksen merkinnöissä. Kannattaa määrittää toiminnon määritysten vakiot niin, että niihin voi helposti viitata koodissa.
Jos määrität toiminnon toimintojoukossa, tavallisesti toimintoa ei tarvitse eritellä itse. Työympäristö tekee sen käyttäjän puolesta, kun käyttäjä toteuttaa toiminnon valikosta tai näppäimistöstä. Tässä tapauksessa toiminnon voi liittää komennon tunnukseen XML-merkinnöissä. Seuraavassa esimerkissä on esitetty toimintojoukon hypoteettiset merkinnät:
<extension point = "org.eclipse.ui.actionSets"> <actionSet id="com.example.actions.actionSet" label="Example Actions" visible="true"> <action id="com.example.actions.action1" menubarPath="additions" label="Example Save Action" class="org.example.actions.ExampleActionDelegate" definitionID="org.eclipse.ui.file.save"> </action> ... </actionSet> </extension>
Määritteen definitionID avulla esitellään toiminnon komennon tunnus.
Kumpaakin tekniikkaa käytettäessä toiminnon liittäminen komennon tunnukseen saa komennolla org.eclipse.ui.file.save määritettävät näppäinsidonnat toteuttamaan toiminnon tarvittaessa.
Seuraavaksi tarkastellaan, miten nämä näppäinsidonnat määritetään.