| package com.intellij.openapi.vcs.actions; |
| |
| import com.intellij.openapi.actionSystem.AnAction; |
| import com.intellij.openapi.actionSystem.DataContext; |
| import com.intellij.openapi.actionSystem.DefaultActionGroup; |
| import com.intellij.openapi.extensions.ExtensionPointName; |
| import com.intellij.openapi.project.Project; |
| import com.intellij.openapi.vcs.AbstractVcs; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| import java.util.List; |
| |
| /** |
| * @author Roman.Chernyatchik |
| */ |
| public interface VcsQuickListContentProvider { |
| ExtensionPointName<VcsQuickListContentProvider> EP_NAME = ExtensionPointName.create("com.intellij.vcsPopupProvider"); |
| |
| /** |
| * Allows to customise VCS actions popup for both custom VCS and general list |
| * @param project Project |
| * @param activeVcs Active vcs for current file. Null if context doesn't contain file or vcs is unknown |
| * @param dataContext Context |
| * @return actions list or null if do nothing |
| */ |
| @Nullable |
| List<AnAction> getVcsActions(@Nullable final Project project, |
| @Nullable final AbstractVcs activeVcs, |
| @Nullable final DataContext dataContext); |
| |
| /** |
| * Allows to customise VCS actions popup if project isn't in VCS |
| * @param project Project |
| * @param dataContext Context |
| * @return actions list or null if do nothing |
| */ |
| @Nullable |
| List<AnAction> getNotInVcsActions(@Nullable final Project project, |
| @Nullable final DataContext dataContext); |
| |
| /** |
| * @param activeVcs Active vcs for current file |
| * @param dataContext Context |
| * @return True if replace general actions with actions specified in getVcsActions() method. Otherwise |
| * custom actions will be inserted in general popup. Usually should be false. |
| */ |
| boolean replaceVcsActionsFor(@NotNull final AbstractVcs activeVcs, |
| @Nullable final DataContext dataContext); |
| } |