diff options
author | Chris Aniszczyk | 2011-05-24 22:51:32 +0000 |
---|---|---|
committer | Code Review | 2011-05-24 22:51:32 +0000 |
commit | 6cedc97a83a953664d63445a8173ababa72c6959 (patch) | |
tree | edd3b9de1183ddb1723b6fa72882c337ea7a94a5 | |
parent | c43d71445b73473535bd3314b274c6b9581b8c95 (diff) | |
parent | 84adc09c0984fef29f2404de48a66a3f75280b10 (diff) | |
download | egit-github-6cedc97a83a953664d63445a8173ababa72c6959.tar.gz egit-github-6cedc97a83a953664d63445a8173ababa72c6959.tar.xz egit-github-6cedc97a83a953664d63445a8173ababa72c6959.zip |
Merge "Support setting a milestone when creating new issues."
3 files changed, 40 insertions, 5 deletions
diff --git a/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/util/MilestoneComparator.java b/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/util/MilestoneComparator.java new file mode 100644 index 00000000..434a1c82 --- /dev/null +++ b/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/util/MilestoneComparator.java @@ -0,0 +1,32 @@ +/****************************************************************************** + * Copyright (c) 2011 GitHub Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Kevin Sawicki (GitHub Inc.) - initial API and implementation + *****************************************************************************/ +package org.eclipse.egit.github.core.util; + +import java.io.Serializable; +import java.util.Comparator; + +import org.eclipse.egit.github.core.Milestone; + +/** + * Milestone comparator using case-insensitive name comparisons. + */ +public class MilestoneComparator implements Comparator<Milestone>, Serializable { + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 7166479273639101758L; + + public int compare(Milestone m1, Milestone m2) { + return m1.getTitle().compareToIgnoreCase(m2.getTitle()); + } + +} diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java index 779778b1..d74fce97 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java @@ -38,6 +38,7 @@ import org.eclipse.egit.github.core.service.IssueService; import org.eclipse.egit.github.core.service.LabelService; import org.eclipse.egit.github.core.service.MilestoneService; import org.eclipse.egit.github.core.util.LabelComparator; +import org.eclipse.egit.github.core.util.MilestoneComparator; import org.eclipse.mylyn.commons.net.AuthenticationCredentials; import org.eclipse.mylyn.commons.net.AuthenticationType; import org.eclipse.mylyn.commons.net.Policy; @@ -168,6 +169,7 @@ public class IssueConnector extends AbstractRepositoryConnector { repo.getName(), IssueService.STATE_OPEN)); milestones.addAll(service.getMilestones(repo.getOwner(), repo.getName(), IssueService.STATE_CLOSED)); + Collections.sort(milestones, new MilestoneComparator()); this.repositoryMilestones.put(repository, milestones); return milestones; } catch (IOException e) { @@ -185,9 +187,8 @@ public class IssueConnector extends AbstractRepositoryConnector { Assert.isNotNull(repository, "Repository cannot be null"); //$NON-NLS-1$ List<Milestone> milestones = new LinkedList<Milestone>(); List<Milestone> cached = this.repositoryMilestones.get(repository); - if (cached != null) { + if (cached != null) milestones.addAll(cached); - } return milestones; } diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java index c2363278..ec941e76 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java @@ -110,7 +110,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { createLabels(repository, data, issue); - createMilestone(repository, data, issue); + createMilestones(repository, data, issue); PullRequest pr = issue.getPullRequest(); String prDiffUrl = pr != null ? pr.getDiffUrl() : null; @@ -119,7 +119,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { return data; } - private void createMilestone(TaskRepository repository, TaskData data, + private void createMilestones(TaskRepository repository, TaskData data, Issue issue) { Milestone current = issue.getMilestone(); String number = current != null ? Integer.toString(current.getNumber()) @@ -319,7 +319,9 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { for (IssueAttribute attr : IssueAttribute.values()) if (attr.isInitTask()) createAttribute(data, attr, (String) null); - createLabels(repository, data, new Issue()); + Issue dummy = new Issue(); + createLabels(repository, data, dummy); + createMilestones(repository, data, dummy); return true; } |