Met de actieklassen kunt u gebruikersopdrachten onafhankelijk van de presentaties in de gebruikersinterface definiëren. Hiermee krijgt u de flexibiliteit om de presentatie van een actie te wijzigen in uw plugin, zonder dat u de code hoeft te wijzigen die in feite de opdracht uitvoert als deze eenmaal is gekozen. De bijdrageklassen worden gebruikt voor het beheren van de feitelijke gebruikersinterface-items die de opdrachten weergeven. U programmeert niet naar de bijdrageklassen, maar u kunt deze in een aantal van de workbench- en JFace-API's zien.
Een actie (IAction) geeft een opdracht weer die door de eindgebruiker kan worden gestart. De acties worden gekoppeld aan knoppen, menuopties en werkbalkitems.
Hoewel de acties niet zelf in de gebruikersinterface worden geplaatst, hebben de acties gebruikersinterface-georiënteerde eigenschappen, bijvoorbeeld voorgrondinfo, labeltekst en een afbeelding. Dit maakt het mogelijk voor andere klassen widgets te bouwen voor de presentatie van de actie.
Wanneer de gebruiker de actie in de gebruikersinterface start, wordt de uitvoermethode van de actie opgeroepen om het werk te doen. Een algemeen model in de uitvoermethode is het opvragen van informatie uit de workbenchselecties en het manipuleren van de objecten die zijn geselecteerd. Een ander algemeen model is het starten van een wizard of dialoogvenster als een actie is gekozen.
U moet de IAction-interface niet direct implementeren. In plaats hiervan plaatst u een subklasse onder de Action-klasse. Blader door de subklassen van deze klasse om de algemene patronen van acties te bekijken. De code hieronder implementeert de "About"-actie. Dit is een van de meer eenvoudige acties in de workbench.
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
Eerder zijn de workbenchinterfaces IViewActionDelegate en IEditorActionDelegate besproken. Deze interfaces worden gebruikt wanneer viewacties of editoracties aan de workbench worden geleverd. De workbenchactiegemachtigden worden met een verwijzing naar de bijbehorende view of editor geïnitialiseerd. Met deze kennis kan worden genavigeerd naar workbenchpagina's of -vensters waarbij selecties of andere gegevens worden geopend die vereist zijn voor het uitvoeren van de actie.
U implementeert uw eigen actieklassen wanneer u een opdracht in uw plugin wilt definiëren. Als u acties aan andere views en editors bijdraagt, implementeert u actiegemachtigden.
Een bijdrage-item (IContributionItem) vertegenwoordigt het gebruikersinterface-gedeelte van een actie. Meer specifiek geeft het een item weer dat geleverd is aan een gedeelde gebruikersinterfaceresource, bijvoorbeeld een menubalk of een werkbalk.
Voor de bijdrage-items is bekend hoe een specifieke SWT-widget wordt gevuld met het geschikte SWT-item dat de bijdrage weergeeft.
U hoeft zich geen zorgen te maken over het maken van een bijdrage-item wanneer u acties levert aan de workbench-gebruikersinterface. Dit wordt voor u uitgevoerd wanneer de workbench gebruikersinterface-items maakt voor de acties die u hebt gedefinieerd.
Een bijdragemanager (IContributionManager) geeft een verzameling bijdrage-items weer die in de gebruikersinterface worden gepresenteerd. U kunt bijdrage-items toevoegen en invoegen met behulp van de benoemde bijdrage-ID's om de items in de juiste volgorde te plaatsen. U kunt ook items op ID opzoeken en afzonderlijke items verwijderen.
Voor elke implementatie van IContributionManager is bekend hoe een specifieke SWT-widget met de items wordt gevuld. JFace levert de bijdragemanagers voor de menu's (IMenuManager), werkbalken (IToolBarManager) en statusregels (IStatusLineManager).
Als pluginontwikkelaar hoeft u deze interfaces niet te implementeren, maar u kunt de verwijzingen naar een aantal van deze managers in API-mehoden zien.