IDEA-145314 Task management: Edit task: pre-selected branch in the dialog is always master

This commit is contained in:
Dmitry Avdeev
2015-12-02 15:10:28 +03:00
parent 8810a441a3
commit f82787cd53
3 changed files with 11 additions and 9 deletions
@@ -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<TaskInfo> {
private final String myBranch;
private final Collection<String> 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<VcsTaskHandler> EXTENSION_POINT_NAME = ExtensionPointName.create("com.intellij.vcs.taskHandler");
@@ -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<VcsTaskHandler.TaskInfo> infos = new ArrayList<VcsTaskHandler.TaskInfo>(Arrays.asList(tasks));
Collections.sort(infos);
infos.add(null);
myBranch.setModel(new CollectionComboBoxModel<VcsTaskHandler.TaskInfo>(infos));
final List<BranchInfo> branches = task.getBranches();
final List<BranchInfo> branches = task.getBranches(false);
if (!branches.isEmpty()) {
VcsTaskHandler.TaskInfo info = ContainerUtil.find(tasks, new Condition<VcsTaskHandler.TaskInfo>() {
@Override
@@ -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<VcsTaskHandler.TaskInfo>() {
@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);