diff --git a/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskManager.java b/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskManager.java index ff6cd945e1a6..cefdc0771cb6 100644 --- a/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskManager.java +++ b/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskManager.java @@ -88,7 +88,7 @@ public abstract class TaskManager { @Nullable public abstract LocalTask getAssociatedTask(LocalChangeList list); - public abstract void associateWithTask(LocalChangeList changeList, boolean withCurrent); + public abstract void trackContext(LocalChangeList changeList); public abstract void disassociateFromTask(LocalChangeList changeList); diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AssociateWithTaskAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AssociateWithTaskAction.java index ada08526e3a1..bb96e1b2ebd7 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AssociateWithTaskAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AssociateWithTaskAction.java @@ -66,7 +66,7 @@ public class AssociateWithTaskAction extends ToggleAction implements DumbAware { TaskManager manager = TaskManager.getManager(project); for (ChangeList list : lists) { if (list instanceof LocalChangeList) { - manager.associateWithTask((LocalChangeList)list, true); + manager.trackContext((LocalChangeList)list); } } } diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java index 7f0bf6db9876..81e01b705100 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java @@ -39,9 +39,15 @@ public class CreateChangelistAction extends BaseTaskAction { if (manager == null || !manager.isVcsEnabled()) { presentation.setText(getTemplatePresentation().getText()); presentation.setEnabled(false); - } else { - presentation.setText("Create changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'"); + } + else { presentation.setEnabled(true); + if (manager.getActiveTask().getChangeLists().size() == 0) { + presentation.setText("Create changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'"); + } + else { + presentation.setText("Add changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'"); + } } } } @@ -51,7 +57,8 @@ public class CreateChangelistAction extends BaseTaskAction { TaskManagerImpl manager = (TaskManagerImpl)getTaskManager(e); assert manager != null; LocalTask activeTask = manager.getActiveTask(); - String name = Messages.showInputDialog(getProject(e), "Changelist name:", "Create Changelist", null, manager.getChangelistName(activeTask), null); + String name = + Messages.showInputDialog(getProject(e), "Changelist name:", "Create Changelist", null, manager.getChangelistName(activeTask), null); if (name != null) { manager.createChangeList(activeTask, name); } diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/LocalTaskImpl.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/LocalTaskImpl.java index 5384f6c66695..ce6adf82a00d 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/LocalTaskImpl.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/LocalTaskImpl.java @@ -134,18 +134,19 @@ public class LocalTaskImpl extends LocalTask { } private void copy(Task issue) { + mySummary = issue.getSummary(); + myDescription = issue.getDescription(); + myComments = issue.getComments(); + myClosed = issue.isClosed(); myCreated = issue.getCreated(); if (Comparing.compare(myUpdated, issue.getUpdated()) < 0) { myUpdated = issue.getUpdated(); } - myPresentableName = issue.getPresentableName(); - mySummary = issue.getSummary(); - myClosed = issue.isClosed(); - myIssueUrl = issue.getIssueUrl(); myType = issue.getType(); - myDescription = issue.getDescription(); - myComments = issue.getComments(); + myPresentableName = issue.getPresentableName(); myCustomIcon = issue.getCustomIcon(); + myIssueUrl = issue.getIssueUrl(); + myRepository = issue.getRepository(); } public void setId(String id) { diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskChangelistSupport.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskChangelistSupport.java index 454376f724a3..3ea842ccf030 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskChangelistSupport.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskChangelistSupport.java @@ -20,15 +20,14 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import com.intellij.openapi.vcs.changes.LocalChangeList; import com.intellij.openapi.vcs.changes.ui.EditChangelistSupport; +import com.intellij.tasks.ChangeListInfo; +import com.intellij.tasks.LocalTask; import com.intellij.tasks.actions.OpenTaskDialog; import com.intellij.ui.EditorTextField; import com.intellij.ui.TextFieldWithAutoCompletionContributor; import com.intellij.util.Consumer; -import com.intellij.util.ui.UIUtil; -import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.awt.*; /** * @author Dmitry Avdeev @@ -51,66 +50,37 @@ public class TaskChangelistSupport implements EditChangelistSupport { TextFieldWithAutoCompletionContributor.installCompletion(document, myProject, completionProvider, false); } - public Consumer addControls(JPanel bottomPanel, @Nullable final LocalChangeList initial) { - if (initial == null || myTaskManager.getAssociatedTask(initial) == null) { - return addControlsForNotAssociatedChangelist(bottomPanel, initial); - } - else { - return addControlsForAssociatedChangelist(bottomPanel, initial); - } - } - - private Consumer addControlsForAssociatedChangelist(final JPanel bottomPanel, final LocalChangeList initial) { - final JCheckBox checkBox = new JCheckBox("Disassociate from task"); - checkBox.setMnemonic('A'); - checkBox.setSelected(false); - bottomPanel.add(Box.createHorizontalStrut(UIUtil.DEFAULT_HGAP)); - bottomPanel.add(checkBox); - return new Consumer() { - public void consume(LocalChangeList changeList) { - if (checkBox.isSelected()) { - myTaskManager.disassociateFromTask(changeList); - } - } - }; - } - - private Consumer addControlsForNotAssociatedChangelist(final JPanel bottomPanel, @Nullable final LocalChangeList initial) { - final JCheckBox checkBox = new JCheckBox("Associate with:"); - checkBox.setMnemonic('A'); + public Consumer addControls(JPanel bottomPanel, final LocalChangeList initial) { + final JCheckBox checkBox = new JCheckBox("Track context"); + checkBox.setMnemonic('t'); checkBox.setToolTipText("Reload context (e.g. open editors) when changelist is set active"); - - ButtonGroup group = new ButtonGroup(); - final JRadioButton withCurrent = new JRadioButton("current task"); - withCurrent.setMnemonic('c'); - group.add(withCurrent); - JRadioButton withNew = new JRadioButton("new task"); - withNew.setMnemonic('n'); - group.add(withNew); - - JPanel panel = new JPanel(new BorderLayout()); - panel.add(withCurrent, BorderLayout.NORTH); - panel.add(withNew, BorderLayout.SOUTH); - - bottomPanel.add(Box.createHorizontalStrut(UIUtil.DEFAULT_HGAP)); + checkBox.setSelected(initial == null ? + myTaskManager.getState().trackContextForNewChangelist : + myTaskManager.getAssociatedTask(initial) != null); bottomPanel.add(checkBox); - bottomPanel.add(Box.createHorizontalStrut(UIUtil.DEFAULT_HGAP)); - bottomPanel.add(panel); - - checkBox.setSelected(myTaskManager.getState().associateWithTaskForNewChangelist); - if (myTaskManager.getState().associateWithCurrentTaskForNewChangelist) { - withCurrent.setSelected(true); - } - else { - withNew.setSelected(true); - } - return new Consumer() { public void consume(LocalChangeList changeList) { - myTaskManager.getState().associateWithTaskForNewChangelist = checkBox.isSelected(); - myTaskManager.getState().associateWithCurrentTaskForNewChangelist = withCurrent.isSelected(); - if (checkBox.isSelected()) { - myTaskManager.associateWithTask(changeList, withCurrent.isSelected()); + if (initial == null) { + myTaskManager.getState().trackContextForNewChangelist = checkBox.isSelected(); + if (checkBox.isSelected()) { + myTaskManager.trackContext(changeList); + } + else { + myTaskManager.getActiveTask().addChangelist(new ChangeListInfo(changeList)); + } + } + else { + final LocalTask associatedTask = myTaskManager.getAssociatedTask(changeList); + if (checkBox.isSelected()) { + if (associatedTask == null) { + myTaskManager.trackContext(changeList); + } + } + else { + if (associatedTask != null) { + myTaskManager.removeTask(associatedTask); + } + } } } }; diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java index d6b3c79c5110..9e3b545cf7c7 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskManagerImpl.java @@ -651,7 +651,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe } private static LocalTaskImpl createDefaultTask() { - return new LocalTaskImpl(LocalTaskImpl.DEFAULT_TASK_ID, "Default task"); + return new LocalTaskImpl(LocalTaskImpl.DEFAULT_TASK_ID, "Default"); } public void disposeComponent() { @@ -790,19 +790,14 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe } @Override - public void associateWithTask(LocalChangeList changeList, final boolean withCurrent) { + public void trackContext(LocalChangeList changeList) { ChangeListInfo changeListInfo = new ChangeListInfo(changeList); - if (withCurrent) { - getActiveTask().addChangelist(changeListInfo); - } - else { - String changeListName = changeList.getName(); - LocalTaskImpl task = createLocalTask(changeListName); - task.addChangelist(changeListInfo); - addTask(task); - if (changeList.isDefault()) { - activateTask(task, false, false); - } + String changeListName = changeList.getName(); + LocalTaskImpl task = createLocalTask(changeListName); + task.addChangelist(changeListInfo); + addTask(task); + if (changeList.isDefault()) { + activateTask(task, false, false); } } @@ -846,13 +841,19 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe } public String getChangelistName(Task task) { - TaskRepository repository = task.getRepository(); - if (repository != null && myConfig.changelistNameFormat != null) { + if (task.isIssue() && myConfig.changelistNameFormat != null) { return TaskUtil.formatTask(task, myConfig.changelistNameFormat); } return task.getSummary(); } + public ChangeListAdapter getChangeListListener() { + if (ApplicationManager.getApplication().isUnitTestMode()) { + return myChangeListListener; + } + throw new UnsupportedOperationException(); + } + public static class Config { @Property(surroundWithTag = false) @@ -870,8 +871,7 @@ public class TaskManagerImpl extends TaskManager implements ProjectComponent, Pe public boolean clearContext = true; public boolean createChangelist = true; public boolean saveContextOnCommit = true; - public boolean associateWithTaskForNewChangelist = true; - public boolean associateWithCurrentTaskForNewChangelist = true; + public boolean trackContextForNewChangelist = false; public boolean markAsInProgress = false; public String changelistNameFormat = "{id} {summary}"; diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTest.java index 14d59daef6d6..c864123c5f67 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTest.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTest.java @@ -30,8 +30,8 @@ public class TaskManagerTest extends TaskManagerTestCase { } }; - myManager.addTaskListener(listener); - myManager.removeTaskListener(listener); + myTaskManager.addTaskListener(listener); + myTaskManager.removeTaskListener(listener); } public void testTaskSwitch() throws Exception { @@ -43,16 +43,16 @@ public class TaskManagerTest extends TaskManagerTestCase { count.set(count.get() + 1); } }; - myManager.addTaskListener(listener); - LocalTask localTask = myManager.createLocalTask("foo"); - myManager.activateTask(localTask, false, false); + myTaskManager.addTaskListener(listener); + LocalTask localTask = myTaskManager.createLocalTask("foo"); + myTaskManager.activateTask(localTask, false, false); assertEquals(1, count.get().intValue()); - LocalTask other = myManager.createLocalTask("bar"); - myManager.activateTask(other, false, false); + LocalTask other = myTaskManager.createLocalTask("bar"); + myTaskManager.activateTask(other, false, false); assertEquals(2, count.get().intValue()); - myManager.removeTaskListener(listener); + myTaskManager.removeTaskListener(listener); } public void testNotifications() throws Exception { @@ -83,13 +83,13 @@ public class TaskManagerTest extends TaskManagerTestCase { throw new Exception(); } }; - myManager.setRepositories(Collections.singletonList(repository)); + myTaskManager.setRepositories(Collections.singletonList(repository)); - myManager.updateIssues(null); + myTaskManager.updateIssues(null); assertNull(notificationRef.get()); - myManager.getIssues(""); + myTaskManager.getIssues(""); assertNotNull(notificationRef.get()); } @@ -97,7 +97,7 @@ public class TaskManagerTest extends TaskManagerTestCase { public void testSharedServers() throws Exception { TaskRepository repository = new YouTrackRepository(new YouTrackRepositoryType()); repository.setShared(true); - myManager.setRepositories(Collections.singletonList(repository)); + myTaskManager.setRepositories(Collections.singletonList(repository)); TaskProjectConfiguration configuration = ServiceManager.getService(getProject(), TaskProjectConfiguration.class); TaskProjectConfiguration state = configuration.getState(); @@ -106,14 +106,14 @@ public class TaskManagerTest extends TaskManagerTestCase { Element element = XmlSerializer.serialize(state); configuration.servers.clear(); - myManager.setRepositories(Collections.emptyList()); + myTaskManager.setRepositories(Collections.emptyList()); configuration.loadState(XmlSerializer.deserialize(element, TaskProjectConfiguration.class)); assertEquals(1, state.servers.size()); - myManager.projectOpened(); + myTaskManager.projectOpened(); - TaskRepository[] repositories = myManager.getAllRepositories(); + TaskRepository[] repositories = myTaskManager.getAllRepositories(); assertEquals(1, repositories.length); } @@ -126,13 +126,13 @@ public class TaskManagerTest extends TaskManagerTestCase { return super.getIssues(query, max, since); } }; - myManager.setRepositories(Collections.singletonList(repository)); + myTaskManager.setRepositories(Collections.singletonList(repository)); - List issues = myManager.getIssues(""); + List issues = myTaskManager.getIssues(""); assertEquals(1, issues.size()); stopper.set(Boolean.TRUE); - issues = myManager.getIssues(""); + issues = myTaskManager.getIssues(""); assertEquals(1, issues.size()); } } diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTestCase.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTestCase.java index b0ea52ddce9e..86a20c5b048f 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTestCase.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskManagerTestCase.java @@ -16,31 +16,31 @@ public abstract class TaskManagerTestCase extends LightCodeInsightFixtureTestCas IdeaTestCase.initPlatformPrefix(); } - protected TaskManagerImpl myManager; + protected TaskManagerImpl myTaskManager; @Override protected void setUp() throws Exception { super.setUp(); - myManager = (TaskManagerImpl)TaskManager.getManager(getProject()); + myTaskManager = (TaskManagerImpl)TaskManager.getManager(getProject()); removeAllTasks(); } @Override protected void tearDown() throws Exception { try { - myManager.setRepositories(Collections.emptyList()); + myTaskManager.setRepositories(Collections.emptyList()); removeAllTasks(); } finally { - myManager = null; + myTaskManager = null; } super.tearDown(); } private void removeAllTasks() { - List tasks = myManager.getLocalTasks(); + List tasks = myTaskManager.getLocalTasks(); for (LocalTask task : tasks) { - myManager.removeTask(task); + myTaskManager.removeTask(task); } } } diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskSettingsTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskSettingsTest.java index de5e9d0f92e7..82e0772fffb9 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskSettingsTest.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskSettingsTest.java @@ -36,17 +36,17 @@ public class TaskSettingsTest extends TaskManagerTestCase { TaskRepository repository = new YouTrackRepository(); String format = "foo \n bar"; repository.setCommitMessageFormat(format); - myManager.setRepositories(Collections.singletonList(repository)); - TaskManagerImpl.Config config = myManager.getState(); + myTaskManager.setRepositories(Collections.singletonList(repository)); + TaskManagerImpl.Config config = myTaskManager.getState(); Element element = XmlSerializer.serialize(config); ByteArrayOutputStream stream = new ByteArrayOutputStream(); JDOMUtil.writeDocument(new Document(element), stream, "\n"); Document document = JDOMUtil.loadDocument(new ByteArrayInputStream(stream.toByteArray())); TaskManagerImpl.Config deserialize = XmlSerializer.deserialize(document, TaskManagerImpl.Config.class); - myManager.loadState(deserialize); + myTaskManager.loadState(deserialize); - TaskRepository[] repositories = myManager.getAllRepositories(); + TaskRepository[] repositories = myTaskManager.getAllRepositories(); assertEquals(format, repositories[0].getCommitMessageFormat()); } } diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java index 7a2068648b7c..6c81405c9ae0 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/TaskVcsTest.java @@ -43,44 +43,44 @@ public class TaskVcsTest extends TaskManagerTestCase { private ChangeListManager myChangeListManager; public void testInitialState() { - assertEquals(1, myManager.getLocalTasks().size()); - final LocalTask defaultTask = myManager.getLocalTasks().get(0); - assertEquals(defaultTask, myManager.getActiveTask()); + assertEquals(1, myTaskManager.getLocalTasks().size()); + final LocalTask defaultTask = myTaskManager.getLocalTasks().get(0); + assertEquals(defaultTask, myTaskManager.getActiveTask()); assertTrue(defaultTask.isDefault()); assertEquals(1, myChangeListManager.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); - assertEquals(defaultTask, myManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); assertEquals(defaultTask.getChangeLists().get(0).id, myChangeListManager.getChangeLists().get(0).getId()); assertEquals(defaultTask.getChangeLists().get(0), new ChangeListInfo(myChangeListManager.getChangeLists().get(0))); } public void testSwitchingTasks() throws Exception { - final LocalTask defaultTask = myManager.getLocalTasks().get(0); + final LocalTask defaultTask = myTaskManager.getLocalTasks().get(0); Task task = myRepository.findTask("TEST-001"); assertNotNull(task); - myManager.activateTask(task, false, false); + myTaskManager.activateTask(task, false, false); - assertEquals(2, myManager.getLocalTasks().size()); + assertEquals(2, myTaskManager.getLocalTasks().size()); - LocalTask localTask = myManager.getActiveTask(); + LocalTask localTask = myTaskManager.getActiveTask(); assertEquals(task, localTask); assertEquals(0, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(1, myChangeListManager.getChangeLists().size()); - assertEquals(defaultTask, myManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); - myManager.activateTask(defaultTask, false, false); + myTaskManager.activateTask(defaultTask, false, false); assertEquals(0, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(1, myChangeListManager.getChangeLists().size()); - assertEquals(defaultTask, myManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(myChangeListManager.getChangeLists().get(0))); - myManager.activateTask(localTask, false, true); + myTaskManager.activateTask(localTask, false, true); assertEquals(1, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); @@ -89,13 +89,13 @@ public class TaskVcsTest extends TaskManagerTestCase { LocalChangeList activeChangeList = myChangeListManager.getDefaultChangeList(); LocalChangeList anotherChangeList = myChangeListManager.getChangeLists().get(1 - myChangeListManager.getChangeLists().indexOf(activeChangeList)); - assertEquals(localTask, myManager.getAssociatedTask(activeChangeList)); + assertEquals(localTask, myTaskManager.getAssociatedTask(activeChangeList)); assertEquals(activeChangeList.getName(), "TEST-001 Summary"); - assertEquals(defaultTask, myManager.getAssociatedTask(anotherChangeList)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals(anotherChangeList.getName(), "Default"); - myManager.activateTask(defaultTask, false, false); + myTaskManager.activateTask(defaultTask, false, false); assertEquals(1, localTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); @@ -104,26 +104,26 @@ public class TaskVcsTest extends TaskManagerTestCase { activeChangeList = myChangeListManager.getDefaultChangeList(); anotherChangeList = myChangeListManager.getChangeLists().get(1 - myChangeListManager.getChangeLists().indexOf(activeChangeList)); - assertEquals(defaultTask, myManager.getAssociatedTask(activeChangeList)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(activeChangeList)); assertEquals(activeChangeList.getName(), "Default"); - assertEquals(localTask, myManager.getAssociatedTask(anotherChangeList)); + assertEquals(localTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals(anotherChangeList.getName(), "TEST-001 Summary"); } public void testAddChangeListViaCreateChangeListAction() throws Exception { Task task = myRepository.findTask("TEST-001"); assertNotNull(task); - myManager.activateTask(task, false, true); + myTaskManager.activateTask(task, false, true); - LocalTask defaultTask = myManager.findTask("Default"); + LocalTask defaultTask = myTaskManager.findTask("Default"); assertNotNull(defaultTask); - myManager.activateTask(defaultTask, false, true); - assertEquals(defaultTask, myManager.getActiveTask()); + myTaskManager.activateTask(defaultTask, false, true); + assertEquals(defaultTask, myTaskManager.getActiveTask()); - LocalTask anotherTask = myManager.findTask("TEST-001"); + LocalTask anotherTask = myTaskManager.findTask("TEST-001"); assertNotNull(anotherTask); - myManager.createChangeList(defaultTask, "Default (1)"); + myTaskManager.createChangeList(defaultTask, "Default (1)"); assertEquals(1, anotherTask.getChangeLists().size()); assertEquals(2, defaultTask.getChangeLists().size()); @@ -137,55 +137,54 @@ public class TaskVcsTest extends TaskManagerTestCase { LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary"); assertNotNull(anotherChangeList); - assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListActive)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListActive)); assertEquals(defaultChangeListActive.getName(), "Default (1)"); - assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListInactive)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListInactive)); assertEquals(defaultChangeListInactive.getName(), "Default"); - assertEquals(anotherTask, myManager.getAssociatedTask(anotherChangeList)); + assertEquals(anotherTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals(anotherChangeList.getName(), "TEST-001 Summary"); } public void testRemoveChangelistViaVcsAction() throws Exception { Task task = myRepository.findTask("TEST-001"); assertNotNull(task); - myManager.activateTask(task, false, true); + myTaskManager.activateTask(task, false, true); - LocalTask defaultTask = myManager.findTask("Default"); + LocalTask defaultTask = myTaskManager.findTask("Default"); assertNotNull(defaultTask); - myManager.activateTask(defaultTask, false, true); - assertEquals(defaultTask, myManager.getActiveTask()); + myTaskManager.activateTask(defaultTask, false, true); + assertEquals(defaultTask, myTaskManager.getActiveTask()); - LocalTask anotherTask = myManager.findTask("TEST-001"); + LocalTask anotherTask = myTaskManager.findTask("TEST-001"); assertNotNull(anotherTask); LocalChangeList defaultChangeList = myChangeListManager.findChangeList("Default"); assertNotNull(defaultChangeList); LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary"); assertNotNull(anotherChangeList); - myChangeListManager.removeChangeList(anotherChangeList); - Thread.sleep(1000); + removeChangeList(anotherChangeList); assertEquals(0, anotherTask.getChangeLists().size()); assertEquals(1, defaultTask.getChangeLists().size()); assertEquals(1, myChangeListManager.getChangeLists().size()); - assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeList)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeList)); assertEquals(defaultChangeList.getName(), "Default"); } - public void testAddChangeListViaVcsActionToCurrentTask() throws Exception { + public void testAddChangeListViaVcsAction() throws Exception { Task task = myRepository.findTask("TEST-001"); assertNotNull(task); - myManager.activateTask(task, false, true); + myTaskManager.activateTask(task, false, true); - LocalTask defaultTask = myManager.findTask("Default"); + LocalTask defaultTask = myTaskManager.findTask("Default"); assertNotNull(defaultTask); - myManager.activateTask(defaultTask, false, true); - assertEquals(defaultTask, myManager.getActiveTask()); + myTaskManager.activateTask(defaultTask, false, true); + assertEquals(defaultTask, myTaskManager.getActiveTask()); - LocalTask anotherTask = myManager.findTask("TEST-001"); + LocalTask anotherTask = myTaskManager.findTask("TEST-001"); assertNotNull(anotherTask); addChangeList("Default (1)", ""); @@ -201,42 +200,29 @@ public class TaskVcsTest extends TaskManagerTestCase { LocalChangeList anotherChangeList = myChangeListManager.findChangeList("TEST-001 Summary"); assertNotNull(anotherChangeList); - assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListActive)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListActive)); assertEquals(defaultChangeListActive.getName(), "Default"); - assertEquals(defaultTask, myManager.getAssociatedTask(defaultChangeListInactive)); + assertEquals(defaultTask, myTaskManager.getAssociatedTask(defaultChangeListInactive)); assertEquals(defaultChangeListInactive.getName(), "Default (1)"); - assertEquals(anotherTask, myManager.getAssociatedTask(anotherChangeList)); + assertEquals(anotherTask, myTaskManager.getAssociatedTask(anotherChangeList)); assertEquals(anotherChangeList.getName(), "TEST-001 Summary"); } - public void testAddChangeListViaVcsActionToNewTask() throws InterruptedException { - myManager.getState().associateWithCurrentTaskForNewChangelist = false; + public void testTrackContext() { + myTaskManager.getState().trackContextForNewChangelist = true; addChangeList("New Changelist", ""); - assertEquals(2, myManager.getLocalTasks().size()); + assertEquals(2, myTaskManager.getLocalTasks().size()); assertEquals(2, myChangeListManager.getChangeLists().size()); LocalChangeList newChangeList = myChangeListManager.findChangeList("New Changelist"); assertNotNull(newChangeList); - LocalTask newTask = myManager.getAssociatedTask(newChangeList); + LocalTask newTask = myTaskManager.getAssociatedTask(newChangeList); assertNotNull(newTask); assertEquals(newTask.getSummary(), "New Changelist"); - myManager.getState().associateWithCurrentTaskForNewChangelist = true; - } - - public void testNotAssociateChangeListWithTask() { - myManager.getState().associateWithTaskForNewChangelist = false; - - addChangeList("New Changelist", ""); - assertEquals(1, myManager.getLocalTasks().size()); - assertEquals(2, myChangeListManager.getChangeLists().size()); - LocalChangeList newChangeList = myChangeListManager.findChangeList("New Changelist"); - assertNotNull(newChangeList); - assertNull(myManager.getAssociatedTask(newChangeList)); - - myManager.getState().associateWithTaskForNewChangelist = true; + myTaskManager.getState().trackContextForNewChangelist = false; } public void testCreateComment() throws Exception { @@ -244,24 +230,24 @@ public class TaskVcsTest extends TaskManagerTestCase { myRepository.setCommitMessageFormat("{id} {summary} {number} {project}"); Task task = myRepository.findTask("TEST-001"); assertNotNull(task); - myManager.activateTask(task, false, true); - LocalTask localTask = myManager.getActiveTask(); + myTaskManager.activateTask(task, false, true); + LocalTask localTask = myTaskManager.getActiveTask(); assertNotNull(localTask); assertEquals("TEST-001 Summary 001 TEST", localTask.getChangeLists().get(0).comment); } public void testSaveContextOnCommitForExistingTask() throws Exception { - myManager.getState().saveContextOnCommit = true; + myTaskManager.getState().saveContextOnCommit = true; - assertEquals(1, myManager.getLocalTasks().size()); + assertEquals(1, myTaskManager.getLocalTasks().size()); Task task = myRepository.findTask("TEST-001"); assertNotNull(task); - myManager.activateTask(task, false, true); + myTaskManager.activateTask(task, false, true); - assertEquals(2, myManager.getLocalTasks().size()); + assertEquals(2, myTaskManager.getLocalTasks().size()); assertEquals(2, myChangeListManager.getChangeLists().size()); - LocalTask localTask = myManager.getActiveTask(); + LocalTask localTask = myTaskManager.getActiveTask(); List changelists = localTask.getChangeLists(); ChangeListInfo info = changelists.get(0); LocalChangeList changeList = myChangeListManager.getChangeList(info.id); @@ -269,31 +255,29 @@ public class TaskVcsTest extends TaskManagerTestCase { CommitChangeListDialog.commitChanges(getProject(), Collections.emptyList(), changeList, null, changeList.getName()); - assertEquals(2, myManager.getLocalTasks().size()); // no extra task created + assertEquals(2, myTaskManager.getLocalTasks().size()); // no extra task created assertEquals(2, myChangeListManager.getChangeLists().size()); - assertEquals(localTask, myManager.getAssociatedTask(changeList)); // association should survive + assertEquals(localTask, myTaskManager.getAssociatedTask(changeList)); // association should survive } public void testSaveContextOnCommit() throws Exception { - myManager.getState().saveContextOnCommit = true; + myTaskManager.getState().saveContextOnCommit = true; - assertEquals(1, myManager.getLocalTasks().size()); + assertEquals(1, myTaskManager.getLocalTasks().size()); assertEquals(1, myChangeListManager.getChangeLists().size()); - myManager.getState().associateWithTaskForNewChangelist = false; LocalChangeList changeList = addChangeList("New Changelist", ""); - myManager.getState().associateWithTaskForNewChangelist = true; - assertEquals(1, myManager.getLocalTasks().size()); + assertEquals(1, myTaskManager.getLocalTasks().size()); assertEquals(2, myChangeListManager.getChangeLists().size()); CommitChangeListDialog.commitChanges(getProject(), Collections.emptyList(), changeList, null, changeList.getName()); - assertEquals(2, myManager.getLocalTasks().size()); // extra task created + assertEquals(2, myTaskManager.getLocalTasks().size()); // extra task created assertEquals(2, myChangeListManager.getChangeLists().size()); - assertTrue(ContainerUtil.exists(myManager.getLocalTasks(), new Condition() { + assertTrue(ContainerUtil.exists(myTaskManager.getLocalTasks(), new Condition() { @Override public boolean value(final LocalTask task) { return task.getSummary().equals("New Changelist"); @@ -301,12 +285,22 @@ public class TaskVcsTest extends TaskManagerTestCase { })); } - public LocalChangeList addChangeList(String title, String comment) { + private LocalChangeList addChangeList(String title, String comment) { final LocalChangeList list = myChangeListManager.addChangeList(title, comment); - new TaskChangelistSupport(getProject(), myManager).addControls(new JPanel(), null).consume(list); + new TaskChangelistSupport(getProject(), myTaskManager).addControls(new JPanel(), null).consume(list); return list; } + private void removeChangeList(LocalChangeList changeList) { + myChangeListManager.removeChangeList(changeList); + myTaskManager.getChangeListListener().changeListRemoved(changeList); + } + + private void setDefaultChangeList(LocalChangeList changeList) { + myChangeListManager.setDefaultChangeList(changeList); + myTaskManager.getChangeListListener().defaultListChanged(null, changeList); + } + public void testProjectWithDash() throws Exception { LocalTaskImpl task = new LocalTaskImpl("foo-bar-001", "summary") { @Override @@ -316,7 +310,7 @@ public class TaskVcsTest extends TaskManagerTestCase { }; assertEquals("foo-bar", task.getProject()); assertEquals("001", task.getNumber()); - String name = myManager.getChangelistName(task); + String name = myTaskManager.getChangelistName(task); assertEquals("foo-bar-001 summary", name); } @@ -338,21 +332,6 @@ public class TaskVcsTest extends TaskManagerTestCase { assertEquals(null, task.getProject()); } - public void testEditDefaultChangeList() { - myManager.getState().associateWithTaskForNewChangelist = false; - addChangeList("test", ""); - final LocalChangeList changeList = myChangeListManager.findChangeList("test"); - assertNotNull(changeList); - myChangeListManager.setDefaultChangeList(changeList); - myManager.getState().associateWithTaskForNewChangelist = true; - myManager.getState().associateWithCurrentTaskForNewChangelist = false; - new TaskChangelistSupport(getProject(), myManager).addControls(new JPanel(), changeList).consume(changeList); - final LocalTask task = myManager.getAssociatedTask(changeList); - assertNotNull(task); - assertTrue(task.isActive()); - myManager.getState().associateWithCurrentTaskForNewChangelist = true; - } - private TestRepository myRepository; private MockAbstractVcs myVcs; @@ -362,12 +341,13 @@ public class TaskVcsTest extends TaskManagerTestCase { myVcs = new MockAbstractVcs(getProject()); AllVcses.getInstance(getProject()).registerManually(myVcs); myChangeListManager = ChangeListManager.getInstance(getProject()); + myChangeListManager.removeChangeListListener(myTaskManager.getChangeListListener()); addChangeList("Default", ""); final LocalChangeList defaultChangeList = myChangeListManager.findChangeList("Default"); assertNotNull(defaultChangeList); - myChangeListManager.setDefaultChangeList(defaultChangeList); + setDefaultChangeList(defaultChangeList); for (LocalChangeList changeList : myChangeListManager.getChangeLists()) { - if (!changeList.isDefault()) myChangeListManager.removeChangeList(changeList); + if (!changeList.isDefault()) removeChangeList(changeList); } @@ -440,7 +420,7 @@ public class TaskVcsTest extends TaskManagerTestCase { return myRepository; } }); - myManager.setRepositories(Collections.singletonList(myRepository)); + myTaskManager.setRepositories(Collections.singletonList(myRepository)); } @Override diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/context/ContextTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/context/ContextTest.java index de173bb2a587..9a56140acc28 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/context/ContextTest.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/context/ContextTest.java @@ -32,9 +32,9 @@ public class ContextTest extends TaskManagerTestCase { manager.clearContext(); manager.loadContext("first"); - manager.saveContext(myManager.getActiveTask()); + manager.saveContext(myTaskManager.getActiveTask()); manager.clearContext(); - manager.restoreContext(myManager.getActiveTask()); + manager.restoreContext(myTaskManager.getActiveTask()); } public void testPack() throws Exception {