package org.eclipse.emf.emfstore.client.ui.handlers; import org.eclipse.emf.emfstore.client.ui.controller.UICheckoutController; 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.emf.emfstore.server.model.ProjectInfo; import org.eclipse.emf.emfstore.server.model.versioning.HistoryInfo; import org.eclipse.emf.emfstore.server.model.versioning.PrimaryVersionSpec; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; /** * Handler for checking out a project. * * @author emueller * */ public class CheckoutRevisionHandler extends AbstractEMFStoreHandler { @Override public void handle() throws EmfStoreException { HistoryInfo historyInfo = requireSelection(HistoryInfo.class); PrimaryVersionSpec versionSpec = ModelUtil.clone(historyInfo.getPrimerySpec()); // TODO: remove HistoryBrowserView IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage(); if (activePage == null) { return; } if (!(activePage.getActivePart() instanceof HistoryBrowserView)) { return; } HistoryBrowserView view = (HistoryBrowserView) activePage.getActivePart(); ProjectInfo projectInfo = view.getProjectSpace().getProjectInfo(); // FIXME: eContainer call new UICheckoutController(getShell()).checkout(view.getProjectSpace().getUsersession().getServerInfo(), projectInfo, versionSpec); } }