Bug 303322 Enable view toolbars and menus
examples/org.eclipse.e4.demo.contacts/src/org/eclipse/e4/demo/contacts/handlers/SaveHandler.java
return dirtyable.isDirty();
	}
	public void execute(
			IEclipseContext context, @Optional IStylingEngine engine,
			@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
			@Named(IServiceConstants.ACTIVE_PART) final MContribution contribution)
			throws InvocationTargetException, InterruptedException {
		final IEclipseContext pmContext = EclipseContextFactory.create(context,
				null);
		ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
		dialog.open();
		
		ThemeUtil.applyDialogStyles(engine, dialog.getShell());
		
		dialog.run(true, true, new IRunnableWithProgress() {
			public void run(IProgressMonitor monitor)
					throws InvocationTargetException, InterruptedException {
				pmContext.set(IProgressMonitor.class.getName(), monitor);
				Object clientObject = contribution.getObject();
				ContextInjectionFactory.invoke(clientObject, "doSave", 
						pmContext, null);
			}
		});
		
		if (pmContext instanceof IDisposable) {
			((IDisposable) pmContext).dispose();
		}
	}
}