summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java
diff options
context:
space:
mode:
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.java55
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();
}