[collab/git] make an API for current git branch status presenter

GitOrigin-RevId: c494d5daac991cb4fc8486c5662a98edad81eb90
This commit is contained in:
Ivan Semenov
2024-06-19 16:48:57 +02:00
committed by intellij-monorepo-bot
parent 1e89d12557
commit cb480552af
3 changed files with 23 additions and 16 deletions

View File

@@ -25,7 +25,6 @@ import javax.swing.Icon
/**
* Supplies a branch presentation to [git4idea.ui.toolbar.GitToolbarWidgetAction]
*/
@ApiStatus.Internal
interface GitCurrentBranchPresenter {
companion object {
private val EP_NAME = ExtensionPointName<GitCurrentBranchPresenter>("Git4Idea.gitCurrentBranchPresenter")
@@ -37,16 +36,24 @@ interface GitCurrentBranchPresenter {
fun getPresentation(repository: GitRepository): Presentation?
data class Presentation(
val icon: Icon?,
val text: @Nls String,
val description: @Nls String?,
val syncStatus: GitBranchSyncStatus = GitBranchSyncStatus.SYNCED
)
interface Presentation {
val icon: Icon?
val text: @Nls String
val description: @Nls String?
val syncStatus: GitBranchSyncStatus
}
@ApiStatus.Internal
data class PresentationData(
override val icon: Icon?,
override val text: @Nls String,
override val description: @Nls String?,
override val syncStatus: GitBranchSyncStatus = GitBranchSyncStatus.SYNCED,
) : Presentation
}
private fun getDefaultPresentation(repository: GitRepository): GitCurrentBranchPresenter.Presentation {
return GitCurrentBranchPresenter.Presentation(
return GitCurrentBranchPresenter.PresentationData(
repository.calcIcon(),
calcText(repository),
repository.calcTooltip(),