1 package org
.spearce
.egit
.ui
.internal
.actions
;
3 import java
.util
.ArrayList
;
5 import org
.eclipse
.core
.resources
.IProject
;
6 import org
.eclipse
.core
.resources
.IResource
;
7 import org
.eclipse
.jface
.dialogs
.MessageDialog
;
8 import org
.eclipse
.team
.internal
.ui
.actions
.TeamAction
;
9 import org
.spearce
.egit
.core
.project
.RepositoryMapping
;
10 import org
.spearce
.jgit
.lib
.Repository
;
12 public abstract class RepositoryAction
extends TeamAction
{
14 * @return repository for current project, or null
16 protected Repository
getRepository() {
17 IResource
[] selectedResources
= getSelectedResources();
19 ArrayList
<IProject
> projects
= new ArrayList
<IProject
>();
21 for (IResource resource
: selectedResources
) {
22 IProject project
= resource
.getProject();
23 if (!projects
.contains(project
))
24 projects
.add(project
);
27 RepositoryMapping mapping
= null;
28 for (IProject project
: projects
) {
29 RepositoryMapping repositoryMapping
= RepositoryMapping
.getMapping(project
);
31 mapping
= repositoryMapping
;
32 else if (mapping
.getRepository() != repositoryMapping
.getRepository()) {
33 MessageDialog
.openError(getShell(), "Multiple Repositories Selection", "Cannot perform reset on multiple repositories simultaneously.\n\nPlease select items from only one repository.");
37 if (mapping
== null) {
38 MessageDialog
.openError(getShell(), "Cannot Find Repository", "Could not find a repository associated with this project");
42 final Repository repository
= mapping
.getRepository();