/******************************************************************************* * Copyright (c) 2007 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.team.internal.ui.synchronize.actions; import java.lang.reflect.InvocationTargetException; import org.eclipse.compare.structuremergeviewer.IDiffElement; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.team.internal.core.subscribers.WorkingSetFilteredSyncInfoCollector; import org.eclipse.team.internal.ui.Utils; import org.eclipse.team.internal.ui.synchronize.SubscriberParticipantPage; import org.eclipse.team.ui.synchronize.ISynchronizePage; import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration; import org.eclipse.team.ui.synchronize.SynchronizeModelAction; import org.eclipse.team.ui.synchronize.SynchronizeModelOperation; public class RestoreRemovedItemsAction extends SynchronizeModelAction { public RestoreRemovedItemsAction(ISynchronizePageConfiguration configuration) { super(null, configuration); Utils.initAction(this, "action.restoreRemovedFromView."); //$NON-NLS-1$ } @Override protected SynchronizeModelOperation getSubscriberOperation( ISynchronizePageConfiguration configuration, IDiffElement[] elements) { return new SynchronizeModelOperation(configuration, elements) { @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { restoreRemovedItems(); } @Override protected boolean canRunAsJob() { return false; } /** * Remove the sync info contained in the given set from the view. * @param set the sync info set */ private void restoreRemovedItems() { ISynchronizePage page = getConfiguration().getPage(); if (page instanceof SubscriberParticipantPage) { WorkingSetFilteredSyncInfoCollector collector = ((SubscriberParticipantPage)page).getCollector(); collector.reset(); } } }; } @Override public boolean isEnabled(){ return true; } /* (non-Javadoc) * @see org.eclipse.team.ui.synchronize.SynchronizeModelAction#needsToSaveDirtyEditors() */ @Override protected boolean needsToSaveDirtyEditors() { return false; } }