diff options
author | Kevin Sawicki | 2011-09-10 02:40:15 +0000 |
---|---|---|
committer | Kevin Sawicki | 2011-09-10 02:40:15 +0000 |
commit | 510d92a72550368c561fbd7d9869175a2fcad8c1 (patch) | |
tree | 49f42233e6c7341f0ff1e7b2b222b5e595ffe216 | |
parent | 30a813df166acf1963adc0afd0ab508c5c1ed193 (diff) | |
download | egit-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>
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 |