diff options
author | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:01:23 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:01:23 -0700 |
commit | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (patch) | |
tree | 2f4cc6d69645bd460aa253fdecb606d764fbd25d /plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java | |
parent | 02cf98d65c798d368fcec43ed64a001d513bdd4f (diff) | |
download | idea-1aa2e09bdbd413eacb677e9fa4b50630530d0656.tar.gz |
Snapshot idea/138.1696 from git://git.jetbrains.org/idea/community.git
Change-Id: I50c97b83a815ce635e49a38380ba5b8765e4b16a
Diffstat (limited to 'plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java')
-rw-r--r-- | plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java b/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java index d38bc7bfc6a7..d6282ebe8786 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgAbstractGlobalAction.java @@ -29,7 +29,9 @@ import org.zmlx.hg4idea.util.HgUtil; import javax.swing.*; import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; abstract class HgAbstractGlobalAction extends AnAction { @@ -48,12 +50,17 @@ abstract class HgAbstractGlobalAction extends AnAction { if (project == null) { return; } - VirtualFile file = event.getData(CommonDataKeys.VIRTUAL_FILE); - HgRepositoryManager repositoryManager = HgUtil.getRepositoryManager(project); - HgRepository repo = file != null ? repositoryManager.getRepositoryForFile(file): HgUtil.getCurrentRepository(project); + VirtualFile[] files = event.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY); + final HgRepositoryManager repositoryManager = HgUtil.getRepositoryManager(project); List<HgRepository> repositories = repositoryManager.getRepositories(); if (!repositories.isEmpty()) { - execute(project, repositories, repo); + List<HgRepository> selectedRepositories = (files == null || files.length == 0) + ? + Collections.singletonList(HgUtil.getCurrentRepository(project)) + : HgActionUtil.collectRepositoriesFromFiles(repositoryManager, + Arrays.asList(files)); + + execute(project, repositories, selectedRepositories); } } @@ -66,7 +73,7 @@ abstract class HgAbstractGlobalAction extends AnAction { protected abstract void execute(@NotNull Project project, @NotNull Collection<HgRepository> repositories, - @Nullable HgRepository selectedRepo); + @NotNull List<HgRepository> selectedRepositories); public static void handleException(@Nullable Project project, @NotNull Exception e) { handleException(project, "Error", e); @@ -102,16 +109,4 @@ abstract class HgAbstractGlobalAction extends AnAction { return true; } - @Nullable - public static HgRepository getSelectedRepositoryFromEvent(AnActionEvent e) { - final DataContext dataContext = e.getDataContext(); - final Project project = CommonDataKeys.PROJECT.getData(dataContext); - if (project == null) { - return null; - } - VirtualFile file = e.getData(CommonDataKeys.VIRTUAL_FILE); - HgRepositoryManager repositoryManager = HgUtil.getRepositoryManager(project); - return file != null ? repositoryManager.getRepositoryForFile(file) : HgUtil.getCurrentRepository(project); - } - } |