Handlingssettet readme-verktøy definerer også målskiftende handlinger. Handlingen vises så lenge readme-handlingen vises, men aktiveres bare når en visning eller et redigeringsprogram som implementerer handlingen, er aktiv. Når du bruker handlingssett til å definere målskiftende handlinger, opprettes handlingene i handlingssettkodetypen og ikke i koden. Følgende er hentet fra handlingssettdefinisjonen for readme-verktøyet:
<extension point = "org.eclipse.ui.actionSets">
<actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
label="%ActionSet.name"
visible="true">
...
<action id="org_eclipse_ui_examples_readmetool_readmeRetargetAction"
menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
toolbarPath="readme"
label="%ReadmeRetargetAction.label"
tooltip="%ReadmeRetargetAction.tooltip"
helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
icon="icons/ctool16/openbrwsr.png"
retarget="true">
</action>
<action id="org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction"
menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
toolbarPath="readme"
label="%ReadmeRelabelRetargetAction.label"
tooltip="%ReadmeRelabelRetargetAction.tooltip"
helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
icon="icons/ctool16/openbrwsr.png"
retarget="true"
allowLabelUpdate="true">
</action>
...
Målskiftende handlinger angis ved hjelp av attributtet retarget="true". Dette oppretter en RetargetAction i handlingssettet. Merk at de målskiftende handlingene ikke angir en implementeringsklasse (class) ettersom det er opp til hver enkelt visning eller redigeringsprogram i plugin-modulen å definere en behandler som implementerer hver handling. Hvis allowLabelUpdate er "true", opprettes i stedet en LabelRetargetAction.
De målskiftende handlingene vises på vindusmenyen når readme-handlingssettet vises. De vil imidlertid ikke bli aktivert hvis redigeringsprogrammet eller disposisjonsvisningen for readme-verktøyet ikke er aktivert.

Hva skal redigeringsprogrammet og visningen gjøre? Nok en gang likner klientsiden på registrering av en behandler for arbeidsbenken eller en målskiftende handling for et redigeringsprogram. Handlings-IDen som er angitt i kodetypen, må brukes ved registrering av en global handlingsbehandler.
ReadmeEditorActionBarContributor håndterer dette for redigeringsprogrammet. Først definerer den behandlere for handlingene.
public ReadmeEditorActionBarContributor() {
...
handler4 = new EditorAction(MessageUtil.getString("Editor_Action4"));
handler5 = new EditorAction(MessageUtil.getString("Editor_Action5"));
handler5.setToolTipText(MessageUtil.getString("Readme_Editor_Action5"));
...
}
Behandlerene registreres samtidig som behandlerene for de målskiftende handlingene ble registrert for redigeringsprogrammet.
public void init(IActionBars bars, IWorkbenchPage page) {
...
bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_RETARGET4, handler4);
bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_LABELRETARGET5, handler5);
...
}
Husk at handlingslinjebidragsytere deles mellom ulike forekomster av det samme redigeringsprogrammet. Dette betyr at behandlere må underrettes hvis det aktive redigeringsprogrammet for ReadmeEditorActionBarContributor endres.
public void setActiveEditor(IEditorPart editor) {
...
handler4.setActiveEditor(editor);
handler5.setActiveEditor(editor);
...
}
Det er det hele for redigeringsprogrammet. Disse handlingene skal aktiveres når redigeringsprogrammet aktiveres.
Merk at etiketten for den første målskiftende handlingen ("Editor Action 4") ikke ble brukt siden handlingssettets XML-kodetype ikke anga allowLabelUpdate.
ReadmeContentOutlinePage definerer sine behandlere samme sted som behandlere for redigeringsprogrammets målskiftende handlinger ble definert:
public void createControl(Composite parent) {
...
action = new OutlineAction(MessageUtil.getString("Outline_Action4"));
getSite().getActionBars().setGlobalActionHandler(
IReadmeConstants.ACTION_SET_RETARGET4,
action);
action = new OutlineAction(MessageUtil.getString("Outline_Action5"));
action.setToolTipText(MessageUtil.getString("Readme_Outline_Action5"));
getSite().getActionBars().setGlobalActionHandler(
IReadmeConstants.ACTION_SET_LABELRETARGET5,
action);
}
Handlingen med den nye etiketten skal vises når innholdsdisposisjonen er aktiv.
