package org.eclipse.emf.emfstore.client.ui.handlers; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.emf.emfstore.client.ui.util.EMFStoreMessageDialog; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.swt.widgets.Shell; public abstract class AbstractEMFStoreUIController { protected Shell shell; private ProgressMonitorDialog progressDialog; public AbstractEMFStoreUIController(Shell shell) { setShell(shell); } public Shell getShell() { return shell; } public void setShell(Shell shell) { this.shell = shell; } protected ProgressMonitorDialog openProgress() { progressDialog = new ProgressMonitorDialog(getShell()); progressDialog.open(); progressDialog.setCancelable(true); return progressDialog; } protected void closeProgress() { if (progressDialog != null) { progressDialog.close(); } } protected IProgressMonitor getProgressMonitor() { if (progressDialog != null) { return progressDialog.getProgressMonitor(); } return new NullProgressMonitor(); } protected boolean confirmationDialog(String message) { MessageDialog dialog = new MessageDialog(null, "Confirmation", null, message, MessageDialog.QUESTION, new String[] { "Yes", "No" }, 0); return dialog.open() == Dialog.OK; } public void handleException(Exception exception) { EMFStoreMessageDialog.showExceptionDialog(exception); closeProgress(); } }