Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Aniszczyk2011-05-24 22:51:32 +0000
committerCode Review2011-05-24 22:51:32 +0000
commit6cedc97a83a953664d63445a8173ababa72c6959 (patch)
treeedd3b9de1183ddb1723b6fa72882c337ea7a94a5
parentc43d71445b73473535bd3314b274c6b9581b8c95 (diff)
parent84adc09c0984fef29f2404de48a66a3f75280b10 (diff)
downloadegit-github-6cedc97a83a953664d63445a8173ababa72c6959.tar.gz
egit-github-6cedc97a83a953664d63445a8173ababa72c6959.tar.xz
egit-github-6cedc97a83a953664d63445a8173ababa72c6959.zip
Merge "Support setting a milestone when creating new issues."
-rw-r--r--org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/util/MilestoneComparator.java32
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java5
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java8
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;
}

Back to the top