Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Sawicki2011-09-10 02:40:15 +0000
committerKevin Sawicki2011-09-10 02:40:15 +0000
commit510d92a72550368c561fbd7d9869175a2fcad8c1 (patch)
tree49f42233e6c7341f0ff1e7b2b222b5e595ffe216
parent30a813df166acf1963adc0afd0ab508c5c1ed193 (diff)
downloadegit-github-510d92a72550368c561fbd7d9869175a2fcad8c1.tar.gz
egit-github-510d92a72550368c561fbd7d9869175a2fcad8c1.tar.xz
egit-github-510d92a72550368c561fbd7d9869175a2fcad8c1.zip
Show dialog when opening commit fails due to missing repository
Change-Id: I16bbf217b22f82e252a5977a780219771c97058e Signed-off-by: Kevin Sawicki <kevin@github.com>
-rw-r--r--org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CommitAttributePart.java12
-rw-r--r--org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/FetchPullRequestHandler.java24
-rw-r--r--org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/Messages.java4
-rw-r--r--org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/PullRequestConnectorUi.java32
-rw-r--r--org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/messages.properties4
5 files changed, 45 insertions, 31 deletions
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CommitAttributePart.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CommitAttributePart.java
index eec5663e..09db05af 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CommitAttributePart.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CommitAttributePart.java
@@ -15,6 +15,7 @@ import java.text.MessageFormat;
import org.eclipse.core.commands.common.CommandException;
import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.egit.github.core.PullRequest;
import org.eclipse.egit.ui.UIIcons;
import org.eclipse.egit.ui.UIUtils;
import org.eclipse.egit.ui.internal.commit.CommitEditor;
@@ -132,10 +133,13 @@ public class CommitAttributePart extends AbstractTaskEditorSection {
commitViewer.addOpenListener(new IOpenListener() {
public void open(final OpenEvent event) {
- Repository repo = PullRequestUtils.getRepository(request
- .getRequest());
- openCommits(repo,
- ((IStructuredSelection) event.getSelection()).toArray());
+ PullRequest pr = request.getRequest();
+ Repository repo = PullRequestUtils.getRepository(pr);
+ if (repo != null)
+ openCommits(repo, ((IStructuredSelection) event
+ .getSelection()).toArray());
+ else
+ PullRequestConnectorUi.showNoRepositoryDialog(pr);
}
});
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/FetchPullRequestHandler.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/FetchPullRequestHandler.java
index 948cf705..0f505a6c 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/FetchPullRequestHandler.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/FetchPullRequestHandler.java
@@ -25,7 +25,6 @@ import org.eclipse.egit.github.core.PullRequest;
import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.UIPreferences;
import org.eclipse.egit.ui.internal.fetch.FetchOperationUI;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.mylyn.internal.github.core.pr.PullRequestComposite;
@@ -34,7 +33,6 @@ import org.eclipse.mylyn.internal.github.core.pr.PullRequestUtils;
import org.eclipse.mylyn.internal.github.ui.GitHubUi;
import org.eclipse.mylyn.internal.github.ui.TaskDataHandler;
import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.ui.PlatformUI;
/**
* Handler class that fetches changes from a selected pull request
@@ -53,26 +51,6 @@ public class FetchPullRequestHandler extends TaskDataHandler {
}
- private void showNoRepositoryDialog(PullRequest request) {
- org.eclipse.egit.github.core.Repository remoteRepo = request.getBase()
- .getRepo();
- String id = remoteRepo.getOwner().getLogin() + '/'
- + remoteRepo.getName();
- final String message = MessageFormat.format(
- Messages.FetchPullRequestHandler_MessageRepositoryNotFound, id);
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
-
- public void run() {
- MessageDialog
- .openInformation(
- PlatformUI.getWorkbench().getDisplay()
- .getActiveShell(),
- Messages.FetchPullRequestHandler_TitleRepositoryNotFound,
- message);
- }
- });
- }
-
public Object execute(final ExecutionEvent event) throws ExecutionException {
final TaskData data = getTaskData(event);
if (data == null)
@@ -90,7 +68,7 @@ public class FetchPullRequestHandler extends TaskDataHandler {
PullRequest request = prComp.getRequest();
Repository repo = PullRequestUtils.getRepository(request);
if (repo == null) {
- showNoRepositoryDialog(request);
+ PullRequestConnectorUi.showNoRepositoryDialog(request);
return Status.CANCEL_STATUS;
}
RemoteConfig remote = PullRequestUtils.addRemote(repo,
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/Messages.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/Messages.java
index 14a52386..43292df5 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/Messages.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/Messages.java
@@ -46,9 +46,9 @@ public class Messages extends NLS {
/** */
public static String FetchPullRequestHandler_JobName;
/** */
- public static String FetchPullRequestHandler_MessageRepositoryNotFound;
+ public static String PullRequestConnectorUi_MessageRepositoryNotFound;
/** */
- public static String FetchPullRequestHandler_TitleRepositoryNotFound;
+ public static String PullRequestConnectorUi_TitleRepositoryNotFound;
/** */
public static String MergePullRequestHandler_MergeJob;
/** */
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/PullRequestConnectorUi.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/PullRequestConnectorUi.java
index 20dacef8..497a22e5 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/PullRequestConnectorUi.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/PullRequestConnectorUi.java
@@ -10,6 +10,11 @@
*****************************************************************************/
package org.eclipse.mylyn.internal.github.ui.pr;
+import java.text.MessageFormat;
+
+import org.eclipse.egit.github.core.PullRequest;
+import org.eclipse.egit.github.core.Repository;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.mylyn.internal.github.core.pr.PullRequestConnector;
import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
@@ -20,12 +25,39 @@ import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
import org.eclipse.mylyn.tasks.ui.wizards.NewTaskWizard;
import org.eclipse.mylyn.tasks.ui.wizards.RepositoryQueryWizard;
+import org.eclipse.ui.PlatformUI;
/**
* Pull request connector UI
*/
public class PullRequestConnectorUi extends AbstractRepositoryConnectorUi {
+ /**
+ * Show informational dialog for when a pull request cannot be resolved to a
+ * Git repository.
+ *
+ * @param request
+ * must be non-null
+ */
+ public static void showNoRepositoryDialog(PullRequest request) {
+ Repository remoteRepo = request.getBase().getRepo();
+ String id = remoteRepo.getOwner().getLogin() + '/'
+ + remoteRepo.getName();
+ final String message = MessageFormat.format(
+ Messages.PullRequestConnectorUi_MessageRepositoryNotFound, id);
+ PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
+
+ public void run() {
+ MessageDialog
+ .openInformation(
+ PlatformUI.getWorkbench().getDisplay()
+ .getActiveShell(),
+ Messages.PullRequestConnectorUi_TitleRepositoryNotFound,
+ message);
+ }
+ });
+ }
+
public String getConnectorKind() {
return PullRequestConnector.KIND;
}
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/messages.properties b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/messages.properties
index 14d5e0e2..f924559a 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/messages.properties
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/messages.properties
@@ -11,8 +11,8 @@ CommitAttributePart_PartName=Commits
CommitAttributePart_SectionCommits=Commits ({0})
CommitAttributePart_TitleFetch=Fetch commits
FetchPullRequestHandler_JobName=Pulling from pull request {0}
-FetchPullRequestHandler_MessageRepositoryNotFound=The Git repository for ''{0}'' was not found.\n\nPlease add or clone it using the Git Repositories view
-FetchPullRequestHandler_TitleRepositoryNotFound=Git Repository Not Found
+PullRequestConnectorUi_MessageRepositoryNotFound=The Git repository for ''{0}'' was not found.\n\nPlease add or clone it using the Git Repositories view.
+PullRequestConnectorUi_TitleRepositoryNotFound=Git Repository Not Found
MergePullRequestHandler_MergeJob=Merging pull request {0}
MergePullRequestHandler_TaskCheckout=Checking out {0} branch
MergePullRequestHandler_TaskMerge=Merging {0} branch into {1} branch

Back to the top