From f82787cd5388df495ed6469328a3018f576a4db4 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 2 Dec 2015 15:10:28 +0300 Subject: [PATCH] IDEA-145314 Task management: Edit task: pre-selected branch in the dialog is always master --- .../src/com/intellij/openapi/vcs/VcsTaskHandler.java | 8 +++++++- .../src/com/intellij/tasks/actions/EditTaskDialog.java | 4 +++- .../src/com/intellij/tasks/actions/OpenTaskDialog.java | 8 +------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsTaskHandler.java b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsTaskHandler.java index dd1c12e1f150..5c3b87a84d52 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsTaskHandler.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsTaskHandler.java @@ -17,6 +17,7 @@ package com.intellij.openapi.vcs; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Condition; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; @@ -39,7 +40,7 @@ public abstract class VcsTaskHandler { return handlers.toArray(new VcsTaskHandler[handlers.size()]); } - public static class TaskInfo { + public static class TaskInfo implements Comparable { private final String myBranch; private final Collection myRepositories; @@ -61,6 +62,11 @@ public abstract class VcsTaskHandler { public String toString() { return getName(); } + + @Override + public int compareTo(TaskInfo o) { + return Comparing.compare(myBranch, o.myBranch); + } } private static final ExtensionPointName EXTENSION_POINT_NAME = ExtensionPointName.create("com.intellij.vcs.taskHandler"); diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/EditTaskDialog.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/EditTaskDialog.java index a6a4482880c7..a25adf3907a7 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/EditTaskDialog.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/EditTaskDialog.java @@ -35,6 +35,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -92,9 +93,10 @@ public class EditTaskDialog extends DialogWrapper { else { VcsTaskHandler.TaskInfo[] tasks = handlers[0].getAllExistingTasks(); ArrayList infos = new ArrayList(Arrays.asList(tasks)); + Collections.sort(infos); infos.add(null); myBranch.setModel(new CollectionComboBoxModel(infos)); - final List branches = task.getBranches(); + final List branches = task.getBranches(false); if (!branches.isEmpty()) { VcsTaskHandler.TaskInfo info = ContainerUtil.find(tasks, new Condition() { @Override diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java index 7b92b0b4694f..771295b81787 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java @@ -45,7 +45,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; import java.util.Collection; -import java.util.Comparator; /** * @author Dmitry Avdeev @@ -135,12 +134,7 @@ public class OpenTaskDialog extends DialogWrapper { VcsTaskHandler.TaskInfo[] tasks = handler.getAllExistingTasks(); if (tasks.length > 0) { myVcsTaskHandler = handler; - Arrays.sort(tasks, new Comparator() { - @Override - public int compare(VcsTaskHandler.TaskInfo o1, VcsTaskHandler.TaskInfo o2) { - return o1.getName().compareTo(o2.getName()); - } - }); + Arrays.sort(tasks); //noinspection unchecked myBranchFrom.setModel(new DefaultComboBoxModel(tasks)); myBranchFrom.setEnabled(true);