/***************************************************************************** * Copyright (c) 2006-2013, Cloudsmith Inc. * The code, documentation and other materials contained herein have been * licensed under the Eclipse Public License - v 1.0 by the copyright holder * listed above, as the Initial Contributor under such license. The text of * such license is available at www.eclipse.org. *****************************************************************************/ package org.eclipse.buckminster.ui.actions; import org.eclipse.buckminster.core.cspec.model.CSpec; import org.eclipse.buckminster.core.cspec.model.ComponentIdentifier; import org.eclipse.buckminster.core.metadata.StorageManager; import org.eclipse.buckminster.core.metadata.WorkspaceInfo; import org.eclipse.buckminster.core.metadata.model.Resolution; import org.eclipse.buckminster.ui.Messages; import org.eclipse.buckminster.ui.UiUtils; import org.eclipse.core.runtime.CoreException; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; public class DisconnectChosenCSpecAction extends AbstractChosenCSpecAction { @Override protected void run(CSpec cspec, IWorkbenchWindow wbWin) { IWorkbenchPage page = wbWin.getActivePage(); if (page == null) return; try { ComponentIdentifier wanted = cspec.getComponentIdentifier(); for (Resolution res : WorkspaceInfo.getAllResolutions()) { ComponentIdentifier cid = res.getCSpec().getComponentIdentifier(); if (wanted.matches(cid)) { res.remove(StorageManager.getDefault()); } } } catch (CoreException e) { UiUtils.openError(page.getWorkbenchWindow().getShell(), Messages.unable_to_open_editor, e); } } }