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