4
4
package org.vcs.bazaar.eclipse.ui.actions;
6
6
import java.lang.reflect.InvocationTargetException;
7
import java.util.Arrays;
12
import org.eclipse.core.resources.IProject;
13
8
import org.eclipse.core.resources.IResource;
14
import org.eclipse.core.runtime.CoreException;
15
9
import org.eclipse.core.runtime.IProgressMonitor;
16
10
import org.eclipse.jface.action.IAction;
17
11
import org.eclipse.jface.operation.IRunnableWithProgress;
18
import org.eclipse.team.core.RepositoryProvider;
19
12
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
20
import org.vcs.bazaar.eclipse.CoreTexts;
21
import org.vcs.bazaar.eclipse.EclipseBazaarCore;
22
import org.vcs.bazaar.eclipse.core.commands.AddCommand;
23
import org.vcs.bazaar.eclipse.core.repository.BazaarTeamProvider;
24
13
import org.vcs.bazaar.eclipse.internal.core.BazaarException;
25
import org.vcs.bazaar.eclipse.ui.EclipseBazaarUI;
14
import org.vcs.bazaar.eclipse.ui.operations.AddOperation;
28
17
* @author Guillermo Gonzalez
42
31
protected void execute(IAction action) throws BazaarException, InvocationTargetException, InterruptedException {
43
32
run(new IRunnableWithProgress() {
45
33
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
47
IProject[] projects = getSelectedProjects();
48
if (projects.length == 1) {
49
IProject project = projects[0];
50
BazaarTeamProvider provider = (BazaarTeamProvider) RepositoryProvider.getProvider(project, EclipseBazaarCore.getProviderID());
51
AddCommand op = new AddCommand(provider.getBzrWorkspaceRoot(), Arrays.asList(projects));
52
op.run(EclipseBazaarCore.subProgressMonitorFor(monitor));
54
// associate the resources with their respective
56
Map<BazaarTeamProvider, List<IResource>> map = getProviderMapping(getSelectedResources());
57
Set<BazaarTeamProvider> keySet = map.keySet();
58
monitor.beginTask("", keySet.size() * 1000); //$NON-NLS-1$
59
monitor.setTaskName(CoreTexts.AddCommand_adding); //$NON-NLS-1$
60
for (BazaarTeamProvider provider : keySet) {
61
List<IResource> resources = map.get(provider);
62
AddCommand op = new AddCommand(provider.getBzrWorkspaceRoot(), resources);
63
op.run(EclipseBazaarCore.subProgressMonitorFor(monitor));
66
} catch (CoreException e) {
67
// FIXME: exception handling
68
EclipseBazaarUI.log(e.getMessage(), e);
69
throw new InvocationTargetException(e);
34
new AddOperation(getSelectedResources(), false).run(monitor);
74
36
}, false /* no cancelable */, PROGRESS_DIALOG);
78
40
protected boolean isEnabledForManagedResources() {
79
if (getSelectedProjects().length == 1) {
41
if (getSelectedProjects().length > 0 || getSelectedResources(IResource.FOLDER).length > 0) {