diff options
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/PatchLink.java')
-rw-r--r-- | gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/PatchLink.java | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/PatchLink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/PatchLink.java index 9979edf659..f79dc510db 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/PatchLink.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/PatchLink.java @@ -16,60 +16,89 @@ package com.google.gerrit.client.ui; import com.google.gerrit.client.Dispatcher; import com.google.gerrit.client.changes.PatchTable; +import com.google.gerrit.client.patches.PatchScreen; import com.google.gerrit.common.data.PatchSetDetail; -import com.google.gerrit.reviewdb.Patch; +import com.google.gerrit.reviewdb.client.Patch; +import com.google.gerrit.reviewdb.client.PatchSet; -public abstract class PatchLink extends InlineHyperlink { +public class PatchLink extends InlineHyperlink { + protected PatchSet.Id base; protected Patch.Key patchKey; protected int patchIndex; protected PatchSetDetail patchSetDetail; protected PatchTable parentPatchTable; + protected PatchScreen.TopView topView; /** * @param text The text of this link + * @param base optional base to compare against. * @param patchKey The key for this patch * @param patchIndex The index of the current patch in the patch set * @param historyToken The history token - * @parma patchSetDetail Detailed information about the patch set. + * @param patchSetDetail Detailed information about the patch set. * @param parentPatchTable The table used to display this link */ - public PatchLink(final String text, final Patch.Key patchKey, - final int patchIndex, final String historyToken, - final PatchSetDetail patchSetDetail, - final PatchTable parentPatchTable) { + protected PatchLink(String text, PatchSet.Id base, Patch.Key patchKey, + int patchIndex, String historyToken, + PatchSetDetail patchSetDetail, PatchTable parentPatchTable, + PatchScreen.TopView topView) { super(text, historyToken); + this.base = base; this.patchKey = patchKey; this.patchIndex = patchIndex; this.patchSetDetail = patchSetDetail; this.parentPatchTable = parentPatchTable; + this.parentPatchTable = parentPatchTable; + this.topView = topView; + } + + /** + * @param text The text of this link + * @param type The type of the link to create (unified/side-by-side) + * @param patchScreen The patchScreen to grab contents to link to from + */ + public PatchLink(String text, PatchScreen.Type type, PatchScreen patchScreen) { + this(text, // + patchScreen.getSideA(), // + patchScreen.getPatchKey(), // + patchScreen.getPatchIndex(), // + Dispatcher.toPatch(type, patchScreen.getPatchKey()), // + patchScreen.getPatchSetDetail(), // + patchScreen.getFileList(), // + patchScreen.getTopView() // + ); } @Override public void go() { Dispatcher.patch( // getTargetHistoryToken(), // + base, // patchKey, // patchIndex, // patchSetDetail, // - parentPatchTable // + parentPatchTable, + topView // ); } public static class SideBySide extends PatchLink { - public SideBySide(final String text, final Patch.Key patchKey, - final int patchIndex, PatchSetDetail patchSetDetail, + public SideBySide(String text, PatchSet.Id base, Patch.Key patchKey, + int patchIndex, PatchSetDetail patchSetDetail, PatchTable parentPatchTable) { - super(text, patchKey, patchIndex, Dispatcher.toPatchSideBySide(patchKey), - patchSetDetail, parentPatchTable); + super(text, base, patchKey, patchIndex, + Dispatcher.toPatchSideBySide(base, patchKey), + patchSetDetail, parentPatchTable, null); } } public static class Unified extends PatchLink { - public Unified(final String text, final Patch.Key patchKey, - final int patchIndex, PatchSetDetail patchSetDetail, + public Unified(String text, PatchSet.Id base, final Patch.Key patchKey, + int patchIndex, PatchSetDetail patchSetDetail, PatchTable parentPatchTable) { - super(text, patchKey, patchIndex, Dispatcher.toPatchUnified(patchKey), - patchSetDetail, parentPatchTable); + super(text, base, patchKey, patchIndex, + Dispatcher.toPatchUnified(base, patchKey), + patchSetDetail, parentPatchTable, null); } } } |