diff options
author | Jaxsun McCarthy Huggan | 2016-03-24 20:30:13 +0000 |
---|---|---|
committer | Sam Davis | 2016-03-24 22:06:30 +0000 |
commit | 586d2fcfd6e3cfd81f3abf6fc1e21141584ce879 (patch) | |
tree | 740dc1cd5164e3ed6da3fd486b0b33f42b24a267 | |
parent | d435f1971ee587f8e3b6a7e6d57db169a4d7f2de (diff) | |
download | org.eclipse.mylyn.reviews-586d2fcfd6e3cfd81f3abf6fc1e21141584ce879.tar.gz org.eclipse.mylyn.reviews-586d2fcfd6e3cfd81f3abf6fc1e21141584ce879.tar.xz org.eclipse.mylyn.reviews-586d2fcfd6e3cfd81f3abf6fc1e21141584ce879.zip |
488164: add API to open compare editors to a specific comment
Change-Id: I7bcd43388073e41b2082823210a6e7b5afbd59a6
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=488164
Signed-off-by: Jaxsun McCarthy Huggan <jaxsun.mccarthy@tasktop.com>
4 files changed, 37 insertions, 9 deletions
diff --git a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/GerritCompareUi.java b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/GerritCompareUi.java index 8906511bf..6dd41b168 100644 --- a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/GerritCompareUi.java +++ b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/GerritCompareUi.java @@ -47,17 +47,25 @@ public class GerritCompareUi { public static void openFileComparisonEditor(CompareConfiguration configuration, IFileItem item, ReviewBehavior behavior) { - openFileComparisonEditor(configuration, item, behavior, null); + openFileComparisonEditor(configuration, item, behavior, (IComment) null); } public static void openFileComparisonEditor(CompareConfiguration configuration, IFileItem item, ReviewBehavior behavior, IStructuredSelection selection) { + IComment comment = null; + if (selection != null && selection.getFirstElement() instanceof IComment) { + comment = (IComment) selection.getFirstElement(); + } + openFileComparisonEditor(configuration, item, behavior, comment); + } + + public static void openFileComparisonEditor(CompareConfiguration configuration, IFileItem item, + ReviewBehavior behavior, IComment comment) { CompareEditorInput editorInput = new FileItemCompareEditorInput(configuration, item, behavior); CompareEditorInput newInput = getComparisonEditor(editorInput, getFileComparePredicate(item)); openCompareEditor(newInput); - if (selection != null && selection.getFirstElement() instanceof IComment - && newInput instanceof ReviewItemCompareEditorInput) { - ((ReviewItemCompareEditorInput) newInput).gotoComment((IComment) selection.getFirstElement()); + if (comment != null && newInput instanceof ReviewItemCompareEditorInput) { + ((ReviewItemCompareEditorInput) newInput).gotoComment(comment); } } diff --git a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/OpenFileUiFactory.java b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/OpenFileUiFactory.java index b88dc17bc..8b8a21433 100644 --- a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/OpenFileUiFactory.java +++ b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/OpenFileUiFactory.java @@ -16,6 +16,7 @@ import org.eclipse.compare.CompareConfiguration; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.mylyn.internal.gerrit.ui.GerritCompareUi; import org.eclipse.mylyn.internal.gerrit.ui.GerritReviewBehavior; +import org.eclipse.mylyn.reviews.core.model.IComment; import org.eclipse.mylyn.reviews.core.model.IFileItem; import org.eclipse.mylyn.reviews.core.model.IReviewItemSet; import org.eclipse.mylyn.reviews.ui.spi.factories.IUiContext; @@ -29,9 +30,16 @@ public class OpenFileUiFactory extends AbstractPatchSetUiFactory { private final IFileItem item; + private final IComment comment; + public OpenFileUiFactory(IUiContext context, IReviewItemSet set, IFileItem item) { + this(context, set, item, null); + } + + public OpenFileUiFactory(IUiContext context, IReviewItemSet set, IFileItem item, IComment comment) { super(Messages.OpenFileUiFactory_Open_File, context, set); this.item = item; + this.comment = comment; } @Override @@ -49,7 +57,7 @@ public class OpenFileUiFactory extends AbstractPatchSetUiFactory { GerritReviewBehavior behavior = new GerritReviewBehavior(getTask(), resolveGitRepository()); CompareConfiguration configuration = new CompareConfiguration(); - GerritCompareUi.openFileComparisonEditor(configuration, item, behavior); + GerritCompareUi.openFileComparisonEditor(configuration, item, behavior, comment); } @Override diff --git a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/PatchSetUiFactoryProvider.java b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/PatchSetUiFactoryProvider.java index 55e3e9a88..60220f868 100644 --- a/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/PatchSetUiFactoryProvider.java +++ b/org.eclipse.mylyn.gerrit.ui/src/org/eclipse/mylyn/internal/gerrit/ui/factories/PatchSetUiFactoryProvider.java @@ -14,6 +14,7 @@ package org.eclipse.mylyn.internal.gerrit.ui.factories; import java.util.ArrayList; import java.util.List; +import org.eclipse.mylyn.reviews.core.model.IComment; import org.eclipse.mylyn.reviews.core.model.IFileItem; import org.eclipse.mylyn.reviews.core.model.IReviewItemSet; import org.eclipse.mylyn.reviews.ui.spi.factories.AbstractReviewItemSetUiFactoryProvider; @@ -51,7 +52,14 @@ public class PatchSetUiFactoryProvider extends AbstractReviewItemSetUiFactoryPro } @Override - public AbstractUiFactory<IReviewItemSet> getOpenFileFactory(IUiContext context, IReviewItemSet set, IFileItem item) { + public AbstractUiFactory<IReviewItemSet> getOpenFileFactory(IUiContext context, IReviewItemSet set, + IFileItem item) { return new OpenFileUiFactory(context, set, item); } + + @Override + public AbstractUiFactory<IReviewItemSet> getOpenFileToCommentFactory(IUiContext context, IReviewItemSet set, + IFileItem item, IComment comment) { + return new OpenFileUiFactory(context, set, item, comment); + } } diff --git a/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/factories/AbstractReviewItemSetUiFactoryProvider.java b/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/factories/AbstractReviewItemSetUiFactoryProvider.java index 6b1f26a39..645ddd58a 100644 --- a/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/factories/AbstractReviewItemSetUiFactoryProvider.java +++ b/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/factories/AbstractReviewItemSetUiFactoryProvider.java @@ -11,12 +11,13 @@ package org.eclipse.mylyn.reviews.ui.spi.factories; +import org.eclipse.mylyn.reviews.core.model.IComment; import org.eclipse.mylyn.reviews.core.model.IFileItem; import org.eclipse.mylyn.reviews.core.model.IReviewItemSet; /** * Provides additional specific factories for supporting opening of review set items. - * + * * @author Miles Parker */ public abstract class AbstractReviewItemSetUiFactoryProvider extends AbstractUiFactoryProvider<IReviewItemSet> { @@ -24,9 +25,12 @@ public abstract class AbstractReviewItemSetUiFactoryProvider extends AbstractUiF public abstract AbstractUiFactory<IReviewItemSet> getOpenFileFactory(IUiContext context, IReviewItemSet set, IFileItem item); + public abstract AbstractUiFactory<IReviewItemSet> getOpenFileToCommentFactory(IUiContext context, + IReviewItemSet set, IFileItem item, IComment comment); + public abstract AbstractUiFactory<IReviewItemSet> getOpenCommitFactory(IUiContext context, IReviewItemSet set); - public abstract AbstractUiFactory<IReviewItemSet> getOpenParentCommitFactory(IUiContext context, - IReviewItemSet set, String commitId); + public abstract AbstractUiFactory<IReviewItemSet> getOpenParentCommitFactory(IUiContext context, IReviewItemSet set, + String commitId); } |