diff options
author | Kevin Sawicki | 2011-09-08 23:47:42 +0000 |
---|---|---|
committer | Kevin Sawicki | 2011-09-08 23:47:42 +0000 |
commit | 35ccd97d028625dfab5b6136ec39e7813ecb88fb (patch) | |
tree | 1b6bdda54f456efb3daedd25273a099e9ccb6a74 /org.eclipse.mylyn.github.ui | |
parent | e4600b7e1a754d40f965428c2b09ede7f49051a5 (diff) | |
download | egit-github-35ccd97d028625dfab5b6136ec39e7813ecb88fb.tar.gz egit-github-35ccd97d028625dfab5b6136ec39e7813ecb88fb.tar.xz egit-github-35ccd97d028625dfab5b6136ec39e7813ecb88fb.zip |
Show dialog when pull request does not resolve to Git repository.
This message prompts the user to add or clone the repository
using the Git Repositories view.
Change-Id: I69983133baa0f9280276e7ccacb5fc2e0ef3960c
Signed-off-by: Kevin Sawicki <kevin@github.com>
Diffstat (limited to 'org.eclipse.mylyn.github.ui')
3 files changed, 31 insertions, 1 deletions
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 f0a2fca1..948cf705 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,6 +25,7 @@ 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; @@ -33,6 +34,7 @@ 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 @@ -51,6 +53,26 @@ 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) @@ -67,8 +89,10 @@ public class FetchPullRequestHandler extends TaskDataHandler { return Status.CANCEL_STATUS; PullRequest request = prComp.getRequest(); Repository repo = PullRequestUtils.getRepository(request); - if (repo == null) + if (repo == null) { + showNoRepositoryDialog(request); return Status.CANCEL_STATUS; + } RemoteConfig remote = PullRequestUtils.addRemote(repo, request); new FetchOperationUI(repo, remote, Activator.getDefault() 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 52b2a664..14a52386 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,6 +46,10 @@ public class Messages extends NLS { /** */ public static String FetchPullRequestHandler_JobName; /** */ + public static String FetchPullRequestHandler_MessageRepositoryNotFound; + /** */ + public static String FetchPullRequestHandler_TitleRepositoryNotFound; + /** */ public static String MergePullRequestHandler_MergeJob; /** */ public static String MergePullRequestHandler_TaskCheckout; 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 7c6c91a9..14d5e0e2 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,6 +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 MergePullRequestHandler_MergeJob=Merging pull request {0} MergePullRequestHandler_TaskCheckout=Checking out {0} branch MergePullRequestHandler_TaskMerge=Merging {0} branch into {1} branch |