vcs: decouple toolwindow UI from ChangesViewCommitWorkflowHandler

GitOrigin-RevId: 31b2d8cabaca87a1bccc7c36eb323b8a72612d45
This commit is contained in:
Aleksey Pivovarov
2022-07-11 11:22:44 +02:00
committed by intellij-monorepo-bot
parent 84a4df2dee
commit 21b85d02a8
9 changed files with 37 additions and 26 deletions

View File

@@ -121,7 +121,7 @@ abstract class AbstractCommonCheckinAction : AbstractVcsAction() {
}
val executor = getExecutor(project)
val workflowHandler = ChangesViewManager.getInstanceEx(project).commitWorkflowHandler
val workflowHandler = ChangesViewWorkflowManager.getInstance(project).commitWorkflowHandler
if (executor == null && workflowHandler != null) {
workflowHandler.run {
setCommitState(initialChangeList, included, isForceUpdateCommitStateFromContext())

View File

@@ -10,7 +10,7 @@ import com.intellij.openapi.actionSystem.ex.ActionUtil
import com.intellij.openapi.project.DumbAwareToggleAction
import com.intellij.openapi.vcs.FilePath
import com.intellij.openapi.vcs.ProjectLevelVcsManager
import com.intellij.openapi.vcs.changes.ChangesViewManager
import com.intellij.openapi.vcs.changes.ChangesViewWorkflowManager
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager.Companion.LOCAL_CHANGES
import com.intellij.vcs.commit.ChangesViewCommitWorkflowHandler
@@ -83,7 +83,7 @@ class ToggleChangesViewCommitUiAction : DumbAwareToggleAction() {
}
private fun AnActionEvent.getProjectCommitWorkflowHandler(): ChangesViewCommitWorkflowHandler? =
project?.let { ChangesViewManager.getInstanceEx(it).commitWorkflowHandler }
project?.let { ChangesViewWorkflowManager.getInstance(it).commitWorkflowHandler }
}
open class CommonCheckinProjectActionImpl : AbstractCommonCheckinAction() {

View File

@@ -1,16 +1,8 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.vcs.changes;
import com.intellij.vcs.commit.ChangesViewCommitWorkflowHandler;
import org.jetbrains.annotations.CalledInAny;
import org.jetbrains.annotations.Nullable;
public interface ChangesViewEx extends ChangesViewI {
void refreshImmediately();
@Nullable
@CalledInAny
ChangesViewCommitWorkflowHandler getCommitWorkflowHandler();
boolean isAllowExcludeFromCommit();
}

View File

@@ -280,7 +280,6 @@ public class ChangesViewManager implements ChangesViewEx,
}
}
@Override
@Nullable
public ChangesViewCommitWorkflowHandler getCommitWorkflowHandler() {
ChangesViewToolWindowPanel toolWindowPanel = myToolWindowPanel;

View File

@@ -0,0 +1,28 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.openapi.vcs.changes;
import com.intellij.openapi.components.Service;
import com.intellij.openapi.project.Project;
import com.intellij.vcs.commit.ChangesViewCommitWorkflowHandler;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@Service
public final class ChangesViewWorkflowManager {
@NotNull private final Project myProject;
@NotNull
public static ChangesViewWorkflowManager getInstance(@NotNull Project project) {
return project.getService(ChangesViewWorkflowManager.class);
}
public ChangesViewWorkflowManager(@NotNull Project project) {
myProject = project;
}
@Nullable
public ChangesViewCommitWorkflowHandler getCommitWorkflowHandler() {
return ((ChangesViewManager)ChangesViewManager.getInstance(myProject)).getCommitWorkflowHandler();
}
}

View File

@@ -17,9 +17,7 @@ package com.intellij.openapi.vcs.changes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.vcs.commit.ChangesViewCommitWorkflowHandler;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -58,12 +56,6 @@ class DummyChangesView implements ChangesViewEx {
public void refreshImmediately() {
}
@Nullable
@Override
public ChangesViewCommitWorkflowHandler getCommitWorkflowHandler() {
return null;
}
@Override
public boolean isAllowExcludeFromCommit() {
return false;

View File

@@ -23,12 +23,12 @@ import com.intellij.openapi.components.Service
import com.intellij.openapi.components.service
import com.intellij.openapi.project.Project
import com.intellij.openapi.vcs.changes.ChangesViewManager
import com.intellij.openapi.vcs.changes.ChangesViewWorkflowManager
import com.intellij.openapi.vcs.changes.ui.ChangesTree
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager
import com.intellij.openapi.wm.ToolWindowManager
import com.intellij.openapi.wm.ex.ToolWindowManagerListener
import com.intellij.ui.TreeActions
import com.intellij.util.containers.ContainerUtil
import java.awt.event.HierarchyEvent
import java.awt.event.MouseEvent
import java.util.*
@@ -84,7 +84,7 @@ class CommitSessionCollector(val project: Project) {
}
else if (activity == null) {
val changesViewManager = ChangesViewManager.getInstance(project) as ChangesViewManager
val commitUi = changesViewManager.commitWorkflowHandler?.ui ?: return
val commitUi = ChangesViewWorkflowManager.getInstance(project).commitWorkflowHandler?.ui ?: return
activity = CommitSessionCounterUsagesCollector.SESSION.started(project) {
listOf(
CommitSessionCounterUsagesCollector.FILES_TOTAL.with(commitUi.getDisplayedChanges().size),

View File

@@ -2,13 +2,13 @@
package com.intellij.vcs.commit
import com.intellij.openapi.project.Project
import com.intellij.openapi.vcs.changes.ChangesViewManager
import com.intellij.openapi.vcs.changes.ChangesViewModifier
import com.intellij.openapi.vcs.changes.ChangesViewWorkflowManager
import com.intellij.openapi.vcs.changes.ui.ChangesViewModelBuilder
class EditedCommitChangesViewModifier(private val project: Project) : ChangesViewModifier {
override fun modifyTreeModelBuilder(builder: ChangesViewModelBuilder) {
val workflowHandler = ChangesViewManager.getInstanceEx(project).commitWorkflowHandler ?: return
val workflowHandler = ChangesViewWorkflowManager.getInstance(project).commitWorkflowHandler ?: return
val editedCommit = workflowHandler.ui.editedCommit ?: return
val commitNode = EditedCommitNode(editedCommit)

View File

@@ -13,7 +13,7 @@ import com.intellij.openapi.vcs.VcsBundle
import com.intellij.openapi.vcs.VcsConfiguration
import com.intellij.openapi.vcs.VcsNotificationIdsHolder
import com.intellij.openapi.vcs.changes.ChangeListChange
import com.intellij.openapi.vcs.changes.ChangesViewManager
import com.intellij.openapi.vcs.changes.ChangesViewWorkflowManager
import com.intellij.openapi.vcs.changes.ui.ChangesListView
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.openapi.vfs.VirtualFile
@@ -103,7 +103,7 @@ class GitCommitLesson : GitLesson("Git.Commit", GitLessonsBundle.message("git.co
setRecentMessages(listOf(lastCommitMessage))
}
val commitWorkflowHandler: AbstractCommitWorkflowHandler<*, *> = ChangesViewManager.getInstanceEx(project).commitWorkflowHandler
val commitWorkflowHandler: AbstractCommitWorkflowHandler<*, *> = ChangesViewWorkflowManager.getInstance(project).commitWorkflowHandler
?: return@prepareRuntimeTask
commitWorkflowHandler.workflow.commitOptions.restoreState()
commitWorkflowHandler.setCommitMessage(lastCommitMessage)