package org.eclipse.emf.emfstore.client.ui.controller;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.emfstore.client.model.ProjectSpace;
import org.eclipse.emf.emfstore.client.model.WorkspaceManager;
import org.eclipse.emf.emfstore.client.ui.handlers.AbstractEMFStoreUIController;
import org.eclipse.emf.emfstore.client.ui.util.EMFStoreMessageDialog;
import org.eclipse.emf.emfstore.client.ui.views.historybrowserview.HistoryBrowserView;
import org.eclipse.emf.emfstore.common.model.util.ModelUtil;
import org.eclipse.emf.emfstore.server.exceptions.EmfStoreException;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
public class UIShowHistoryController extends AbstractEMFStoreUIController {
private ProjectSpace projectSpace;
private final EObject modelElement;
/**
* Constructor.
*
* @param shell the parent {@link Shell}
* @param projectSpace the {@link ProjectSpace} the <code>modelElement</code> is contained in
* @param modelElement the model element whose history should be queried
*/
public UIShowHistoryController(Shell shell, ProjectSpace projectSpace, EObject modelElement) {
super(shell);
this.projectSpace = projectSpace;
this.modelElement = modelElement;
}
public void showHistory() throws EmfStoreException {
if (projectSpace == null) {
projectSpace = WorkspaceManager.getInstance().getCurrentWorkspace()
.getProjectSpace(ModelUtil.getProject(modelElement));
}
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
HistoryBrowserView historyBrowserView = null;
String viewId = "org.eclipse.emf.emfstore.client.ui.views.historybrowserview.HistoryBrowserView";
try {
historyBrowserView = (HistoryBrowserView) page.showView(viewId);
} catch (PartInitException e) {
EMFStoreMessageDialog.showExceptionDialog(e);
}
if (historyBrowserView != null) {
historyBrowserView.setInput(projectSpace, modelElement);
}
}
}