diff --git a/plugins/tasks/tasks-core/resources/META-INF/plugin.xml b/plugins/tasks/tasks-core/resources/META-INF/plugin.xml
index c4f121aa1b7d..d9083d968710 100644
--- a/plugins/tasks/tasks-core/resources/META-INF/plugin.xml
+++ b/plugins/tasks/tasks-core/resources/META-INF/plugin.xml
@@ -144,7 +144,6 @@
-
diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/vcs/VcsOpenTaskPanel.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/vcs/VcsOpenTaskPanel.java
index 769004ac702a..ebaa8326626d 100644
--- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/vcs/VcsOpenTaskPanel.java
+++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/vcs/VcsOpenTaskPanel.java
@@ -21,11 +21,13 @@ import com.intellij.openapi.ui.ComboBox;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.ValidationInfo;
import com.intellij.openapi.vcs.VcsTaskHandler;
+import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.tasks.LocalTask;
import com.intellij.tasks.Task;
import com.intellij.tasks.TaskManager;
import com.intellij.tasks.config.TaskSettings;
import com.intellij.tasks.impl.TaskManagerImpl;
+import com.intellij.tasks.impl.TaskUtil;
import com.intellij.tasks.ui.TaskDialogPanel;
import com.intellij.ui.ColoredListCellRenderer;
import com.intellij.ui.components.JBCheckBox;
@@ -59,11 +61,13 @@ public class VcsOpenTaskPanel extends TaskDialogPanel {
private VcsTaskHandler myVcsTaskHandler;
private static final String START_FROM_BRANCH = "start.from.branch";
private final TaskManagerImpl myTaskManager;
+ private final Project myProject;
private final LocalTask myPreviousTask;
public VcsOpenTaskPanel(Project project, Task task) {
myTaskManager = (TaskManagerImpl)TaskManager.getManager(project);
+ myProject = project;
myPreviousTask = myTaskManager.getActiveTask();
ActionListener listener = new ActionListener() {
@Override
@@ -199,6 +203,11 @@ public class VcsOpenTaskPanel extends TaskDialogPanel {
if (myCreateChangelist.isSelected()) {
myTaskManager.createChangeList(localTask, myChangelistName.getText());
}
+ else {
+ ChangeListManager changeListManager = ChangeListManager.getInstance(myProject);
+ String comment = TaskUtil.getChangeListComment(localTask);
+ changeListManager.editComment(changeListManager.getDefaultListName(), comment);
+ }
if (myCreateBranch.isSelected()) {
VcsTaskHandler.TaskInfo branchFrom = (VcsTaskHandler.TaskInfo)myBranchFrom.getSelectedItem();
Runnable createBranch = () -> myTaskManager.createBranch(localTask, myPreviousTask, myBranchName.getText(), branchFrom);
diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCommitMessageProvider.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCommitMessageProvider.java
deleted file mode 100644
index 2e27adb56ece..000000000000
--- a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCommitMessageProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2000-2017 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.tasks.impl;
-
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.vcs.changes.LocalChangeList;
-import com.intellij.openapi.vcs.changes.ui.CommitMessageProvider;
-import com.intellij.tasks.LocalTask;
-import com.intellij.tasks.TaskManager;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * @author Dmitry Avdeev
- */
-public class TaskCommitMessageProvider implements CommitMessageProvider {
-
- @Nullable
- @Override
- public String getCommitMessage(LocalChangeList forChangelist, Project project) {
- LocalTask task = TaskManager.getManager(project).getAssociatedTask(forChangelist);
- if (task == null) return null;
- return TaskUtil.getChangeListComment(task, true);
- }
-}
diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/vcs/TaskVcsTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/vcs/TaskVcsTest.java
index 586778d7007b..b47043ba56b1 100644
--- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/vcs/TaskVcsTest.java
+++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/vcs/TaskVcsTest.java
@@ -34,7 +34,10 @@ import com.intellij.openapi.vcs.impl.projectlevelman.AllVcses;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.tasks.*;
import com.intellij.tasks.actions.OpenTaskDialog;
-import com.intellij.tasks.impl.*;
+import com.intellij.tasks.impl.LocalTaskImpl;
+import com.intellij.tasks.impl.TaskChangelistSupport;
+import com.intellij.tasks.impl.TaskCheckinHandlerFactory;
+import com.intellij.tasks.impl.TaskManagerImpl;
import com.intellij.testFramework.fixtures.CodeInsightFixtureTestCase;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
@@ -449,36 +452,44 @@ public class TaskVcsTest extends CodeInsightFixtureTestCase {
myTaskManager.getState().shelveChanges = true;
LocalTaskImpl task = new LocalTaskImpl("id", "summary");
- OpenTaskDialog dialog = new OpenTaskDialog(getProject(), task);
- try {
- dialog.createTask();
- assertEquals(dumpChangeListManager(), activeTask.getSummary(), activeTask.getShelfName());
+ runOpenTaskDialog(task);
- List lists = ShelveChangesManager.getInstance(getProject()).getShelvedChangeLists();
- assertTrue(lists.stream().anyMatch(list -> list.DESCRIPTION.equals(activeTask.getShelfName())));
+ assertEquals(dumpChangeListManager(), activeTask.getSummary(), activeTask.getShelfName());
- assertEmpty(myChangeListManager.getDefaultChangeList().getChanges());
- myTaskManager.activateTask(activeTask, true);
- Collection changes = myChangeListManager.getDefaultChangeList().getChanges();
- assertNotEmpty(changes);
- }
- finally {
- dialog.close(DialogWrapper.OK_EXIT_CODE);
- }
- UIUtil.dispatchAllInvocationEvents();
+ List lists = ShelveChangesManager.getInstance(getProject()).getShelvedChangeLists();
+ assertTrue(lists.stream().anyMatch(list -> list.DESCRIPTION.equals(activeTask.getShelfName())));
+
+ assertEmpty(myChangeListManager.getDefaultChangeList().getChanges());
+ myTaskManager.activateTask(activeTask, true);
+ Collection changes = myChangeListManager.getDefaultChangeList().getChanges();
+ assertNotEmpty(changes);
}
public void testAssociatedChangelist() {
- ChangeListManager changeListManager = ChangeListManager.getInstance(getProject());
- LocalChangeList changeList = changeListManager.getDefaultChangeList();
+ LocalChangeList changeList = myChangeListManager.getDefaultChangeList();
assertNotNull(changeList);
assertEquals(myTaskManager.getActiveTask(), myTaskManager.getAssociatedTask(changeList));
LocalTaskImpl bond = new LocalTaskImpl("007", "Bond");
TestRepository repository = new TestRepository();
repository.setShouldFormatCommitMessage(true);
bond.setRepository(repository);
- myTaskManager.activateTask(bond, false);
- assertEquals("007 Bond", new TaskCommitMessageProvider().getCommitMessage(changeList, getProject()));
+
+ myTaskManager.getState().createChangelist = false;
+ runOpenTaskDialog(bond);
+ assertEquals(1, bond.getChangeLists().size());
+ assertEquals(changeList.getId(), bond.getChangeLists().get(0).id);
+ assertEquals("007 Bond", myChangeListManager.getDefaultChangeList().getComment());
+ }
+
+ private void runOpenTaskDialog(LocalTaskImpl task) {
+ OpenTaskDialog dialog = new OpenTaskDialog(getProject(), task);
+ try {
+ dialog.createTask();
+ }
+ finally {
+ dialog.close(DialogWrapper.OK_EXIT_CODE);
+ }
+ UIUtil.dispatchAllInvocationEvents();
}
@Override