Med handlingsklassene kan du definere brukerkommandoer uavhengig av hvordan de presenteres i brukergrensesnittet. Dette gjør det mulig å endre presentasjonen av en handling i plugin-modulen uten å endre koden som ligger bak kommandoen, når denne er valgt. Bidragsklassene blir brukt til å styre de faktiske brukergrensesnittelementene som representerer kommandoene. Du programmerer ikke til bidragsklassene, men du ser dem i deler av APIen for arbeidsbenken og JFace.
En handling (IAction) representerer en kommando som en sluttbruker utløser. Handlinger er vanligvis tilknyttet knapper, menypunkter og elementer på verktøylinjer.
Selv om handlinger ikke plasserer seg selv i brukergrensesnittet, har de egenskaper som er brukergrensesnittorienterte, for eksempel verktøytips, etikettekst og bilde. Dette gjør det mulig for andre klasser å opprette widgeter for presentasjonen av handlingen.
Når brukeren utløser handlingen i brukergrensesnittet, aktiveres handlingens kjøremetode slik at arbeidet utføres. En vanlig mønster i kjøremetoden er å sende forespørsel til arbeidsbenkvalg og manipulere de valgte objektene. Et annet vanlig mønster er å starte en veiviser eller en dialogboks når det er valgt en handling.
Du må ikke implementere grensesnittet IAction direkte. I stedet bør du bruke en subklasse for handlingsklassen. Ved å se gjennom subklassene for denne klassen får du et innblikk i vanlige mønstre for handlinger. Koden nedenfor implementerer handlingen "About". Dette er en av de enklere handlingene i arbeidsbenken.
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
Tidligere har vi sett på arbeidsbenkgrensesnittene IViewActionDelegate og IEditorActionDelegate. Disse grensesnittene brukes til å legge til visningshandlinger eller redigeringsprogramhandlinger i arbeidsbenken. Delegatene for arbeidsbenkhandlingen initialiseres med en referanse til den tilknyttede visningen eller redigeringsprogrammet. Dette gjør det mulig for delegatene å navigere til siden eller vinduet for arbeidsbenken og få tilgang til valg eller annen informasjon som trengs for å utføre handlingen.
Du kan implementere dine egne handlingsklasser når du vil definere en kommando i plugin-modulen. Hvis du bidrar med handlinger i andre visninger eller redigeringsprogrammer, må du implementere handlingsdelegater.
Et bidragselement (IContributionItem) representerer den delen av en handling som utgjør brukergrensesnitt. Mer spesifikt representerer det et element som er oppgitt i en felles brukergrensesnittressurs, for eksempel i en meny eller en verktøylinje.
Bidragselementer vet hvordan en bestemt SWT-widget skal fylles med riktig SWT-element som representerer bidraget.
Du trenger ikke å opprette bidragselementer når du oppgir handlinger i arbeidsbenkbrukergrensesnittet. Dette blir gjort for deg når arbeidsbenken oppretter brukergrensesnittelementer for handlingene som du har definert.
En bidragsstyrer (IContributionManager) representerer en samling av bidragselementer som skal presenteres i brukergrensesnittet. Du kan legge til og sette inn bidragselementer med navngitte bidrags-IDer for å legge elementene i riktig rekkefølge. Du kan også finne elementer etter ID og fjerne enkeltelementer.
Alle implementeringer av IContributionManager vet hvordan de skal fylle en bestemt SWT-widget med elementer. JFace inneholder bidragsstyrere for menyer (IMenuManager), verktøylinjer (IToolBarManager) og statuslinjer (IStatusLineManager).
Som utvikler av plugin-moduler trenger du ikke å implementere disse grensesnittene, men du vil se referanser til noen av disse styrerne i API-metoder.