~piastucki/bzr-eclipse/resource-delete-hook

« back to all changes in this revision

Viewing changes to org.vcs.bazaar.eclipse.ui/src/org/vcs/bazaar/eclipse/ui/actions/AddAction.java

  • Committer: Piotr Piastucki
  • Date: 2013-06-11 18:05:50 UTC
  • mfrom: (297.1.1 bzr-eclipse-pp)
  • Revision ID: piotr_piastucki-20130611180550-ip8izfw7jxdw8g2c
MergeĀ lp:~piastucki/bzr-eclipse/shelve-unknown-files

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
package org.vcs.bazaar.eclipse.ui.actions;
5
5
 
6
6
import java.lang.reflect.InvocationTargetException;
7
 
import java.util.Arrays;
8
 
import java.util.List;
9
 
import java.util.Map;
10
 
import java.util.Set;
11
7
 
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;
26
15
 
27
16
/**
28
17
 * @author Guillermo Gonzalez
41
30
        @Override
42
31
    protected void execute(IAction action) throws BazaarException, InvocationTargetException, InterruptedException {
43
32
                run(new IRunnableWithProgress() {
44
 
 
45
33
                        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
46
 
                                try {
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));
53
 
                                        } else {
54
 
                                                // associate the resources with their respective
55
 
                                                // RepositoryProvider
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));
64
 
                                                }
65
 
                                        }
66
 
                                } catch (CoreException e) {
67
 
                                        // FIXME: exception handling
68
 
                                        EclipseBazaarUI.log(e.getMessage(), e);
69
 
                                        throw new InvocationTargetException(e);
70
 
                                } finally {
71
 
                                        monitor.done();
72
 
                                }
 
34
                                new AddOperation(getSelectedResources(), false).run(monitor);
73
35
                        }
74
36
                }, false /* no cancelable */, PROGRESS_DIALOG);
75
37
        }
76
38
 
77
39
        @Override
78
40
        protected boolean isEnabledForManagedResources() {
79
 
                if (getSelectedProjects().length == 1) {
 
41
                if (getSelectedProjects().length > 0 || getSelectedResources(IResource.FOLDER).length > 0) {
80
42
                        return true;
81
43
                }
82
44
                return false;