Display old and new image line numbers in the unified diff view

This can really help when debugging Gerrit, but it also gives the user
a little better information about where the changes are in the file.

Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce
2009-02-13 10:26:22 -08:00
parent 2b1f308a29
commit 46a631be79
2 changed files with 40 additions and 11 deletions

View File

@@ -21,17 +21,19 @@ import java.util.Iterator;
import java.util.List;
public class UnifiedDiffTable extends AbstractPatchContentTable {
private static final int PC = 3;
@Override
protected void onCellDoubleClick(final int row, final int column) {
if (column == 1 && getRowItem(row) instanceof PatchLine) {
if (getRowItem(row) instanceof PatchLine) {
final PatchLine pl = (PatchLine) getRowItem(row);
switch (pl.getType()) {
case PRE_IMAGE:
case CONTEXT:
createCommentEditor(row + 1, column, pl.getOldLineNumber(), (short) 0);
createCommentEditor(row + 1, PC, pl.getOldLineNumber(), (short) 0);
break;
case POST_IMAGE:
createCommentEditor(row + 1, column, pl.getNewLineNumber(), (short) 1);
createCommentEditor(row + 1, PC, pl.getNewLineNumber(), (short) 1);
break;
}
}
@@ -45,10 +47,10 @@ public class UnifiedDiffTable extends AbstractPatchContentTable {
switch (pl.getType()) {
case PRE_IMAGE:
case CONTEXT:
createCommentEditor(row + 1, 1, pl.getOldLineNumber(), (short) 0);
createCommentEditor(row + 1, PC, pl.getOldLineNumber(), (short) 0);
break;
case POST_IMAGE:
createCommentEditor(row + 1, 1, pl.getOldLineNumber(), (short) 1);
createCommentEditor(row + 1, PC, pl.getOldLineNumber(), (short) 1);
break;
}
return;
@@ -72,7 +74,7 @@ public class UnifiedDiffTable extends AbstractPatchContentTable {
}
table.insertRow(row + 1);
table.getCellFormatter().setStyleName(row + 1, 0, S_ICON_CELL);
bindComment(row + 1, 1, c, true);
bindComment(row + 1, PC, c, true);
}
}
@@ -97,7 +99,7 @@ public class UnifiedDiffTable extends AbstractPatchContentTable {
final PatchLineComment c = ci.next();
table.insertRow(row);
table.getCellFormatter().setStyleName(row, 0, S_ICON_CELL);
bindComment(row, 1, c, !ci.hasNext());
bindComment(row, PC, c, !ci.hasNext());
row++;
}
}
@@ -108,6 +110,34 @@ public class UnifiedDiffTable extends AbstractPatchContentTable {
nc.append("<tr>");
nc.append("<td class=\"" + S_ICON_CELL + "\">&nbsp;</td>");
switch (line.getType()) {
case FILE_HEADER:
case HUNK_HEADER:
nc.append("<td class=\"LineNumber\">&nbsp;</td>");
nc.append("<td class=\"LineNumber\">&nbsp;</td>");
break;
default:
nc.append("<td class=\"LineNumber\">");
if (line.getOldLineNumber() != 0
&& (line.getType() == PatchLine.Type.CONTEXT || line.getType() == PatchLine.Type.PRE_IMAGE)) {
nc.append(line.getOldLineNumber());
} else {
nc.append("&nbsp;");
}
nc.append("</td>");
nc.append("<td class=\"LineNumber\">");
if (line.getNewLineNumber() != 0
&& (line.getType() == PatchLine.Type.CONTEXT || line.getType() == PatchLine.Type.POST_IMAGE)) {
nc.append(line.getNewLineNumber());
} else {
nc.append("&nbsp;");
}
nc.append("</td>");
break;
}
nc.append("<td class=\"DiffText DiffText-");
nc.append(line.getType().name());
nc.append("\">");

View File

@@ -335,6 +335,7 @@
.gerrit-PatchContentTable .DiffText {
white-space: pre;
padding-left: 0.2em;
}
.gerrit-PatchContentTable .DiffText-FILE_HEADER {
@@ -440,12 +441,10 @@
.gerrit-PatchContentTable .ActiveRow {
background: #ffffcc;
}
.gerrit-PatchContentTable .ActiveRow td.Comment {
background: #ffffff;
}
.gerrit-PatchContentTable .ActiveRow td.IconCell,
.gerrit-PatchContentTable .ActiveRow td.LineNumber,
.gerrit-PatchContentTable .ActiveRow td.FileLine {
.gerrit-PatchContentTable .ActiveRow td.FileLine,
.gerrit-PatchContentTable .ActiveRow td.DiffText {
border-top: 1px solid blue;
border-bottom: 1px solid blue;
}