public final void dispose() {
final IActionDelegate delegate = getDelegate();
if (delegate instanceof IWorkbenchWindowActionDelegate) {
final IWorkbenchWindowActionDelegate workbenchWindowDelegate = (IWorkbenchWindowActionDelegate) delegate;
workbenchWindowDelegate.dispose();
} else if (delegate instanceof IActionDelegate2) {
final IActionDelegate2 delegate2 = (IActionDelegate2) delegate;
delegate2.dispose();
}
}