diff options
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java')
-rw-r--r-- | gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java index 15ab951e9e..4bdd615662 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java @@ -22,10 +22,11 @@ import static com.google.gerrit.client.patches.PatchLine.Type.REPLACE; import com.google.gerrit.client.Gerrit; import com.google.gerrit.common.data.CommentDetail; import com.google.gerrit.common.data.PatchScript; +import com.google.gerrit.common.data.PatchScript.DisplayMethod; import com.google.gerrit.common.data.PatchScript.FileMode; import com.google.gerrit.common.data.PatchSetDetail; +import com.google.gerrit.prettify.client.SparseHtmlFile; import com.google.gerrit.prettify.common.EditList; -import com.google.gerrit.prettify.common.SparseHtmlFile; import com.google.gerrit.reviewdb.client.PatchLineComment; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -186,11 +187,16 @@ public class SideBySideTable extends AbstractPatchContentTable { lines.add(new SkippedLine(lastA, lastB, b.size() - lastB)); } } - }else{ + } else { // Display the patch header for binary for (final String line : script.getPatchHeader()) { appendFileHeader(nc, line); } + // If there is a safe picture involved, we show it + if (script.getDisplayMethodA() == DisplayMethod.IMG + || script.getDisplayMethodB() == DisplayMethod.IMG) { + appendImageLine(script, nc); + } } if (!hasDifferences(script)) { appendNoDifferences(nc); @@ -210,6 +216,42 @@ public class SideBySideTable extends AbstractPatchContentTable { } } + private SafeHtml createImage(String url) { + SafeHtmlBuilder m = new SafeHtmlBuilder(); + m.openElement("img"); + m.setAttribute("src", url); + m.closeElement("img"); + return m.toSafeHtml(); + } + + private void appendImageLine(final PatchScript script, + final SafeHtmlBuilder m) { + m.openTr(); + m.setAttribute("valign", "center"); + m.setAttribute("align", "center"); + + m.openTd(); + m.setStyleName(Gerrit.RESOURCES.css().iconCell()); + m.closeTd(); + + appendLineNumber(m, false); + if (script.getDisplayMethodA() == DisplayMethod.IMG) { + final String url = getUrlA(); + appendLineText(m, DELETE, createImage(url), false, true); + } else { + appendLineNone(m, DELETE); + } + if (script.getDisplayMethodB() == DisplayMethod.IMG) { + final String url = getUrlB(); + appendLineText(m, INSERT, createImage(url), false, true); + } else { + appendLineNone(m, INSERT); + } + + appendLineNumber(m, true); + m.closeTr(); + } + private void populateTableHeader(final PatchScript script, final PatchSetDetail detail) { initHeaders(script, detail); @@ -400,10 +442,7 @@ public class SideBySideTable extends AbstractPatchContentTable { m.addStyleName(Gerrit.RESOURCES.css().iconCell()); m.closeTd(); - m.openTd(); - m.setStyleName(Gerrit.RESOURCES.css().lineNumber()); - m.nbsp(); - m.closeTd(); + appendLineNumber(m, false); m.openTd(); m.setStyleName(Gerrit.RESOURCES.css().sideBySideTableBinaryHeader()); @@ -411,9 +450,7 @@ public class SideBySideTable extends AbstractPatchContentTable { m.append(line); m.closeTd(); - m.openTd(); - m.nbsp(); - m.closeTd(); + appendLineNumber(m, true); m.closeTr(); } |