Merge "InlineEdit: Fix diff against revision feature"
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index e9fd4ba..88f8408 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -770,16 +770,11 @@
final RevisionInfo b = resolveRevisionOrPatchSetId(info, base, null);
CallbackGroup group = new CallbackGroup();
+ Timestamp lastReply = myLastReply(info);
if (rev.is_edit()) {
- NativeMap<JsArray<CommentInfo>> emptyComment = NativeMap.create();
- files.set(
- b != null ? new PatchSet.Id(changeId, b._number()) : null,
- new PatchSet.Id(changeId, rev._number()),
- style, reply, fileTableMode, edit != null);
- files.setValue(info.edit().files(), myLastReply(info), emptyComment,
- emptyComment);
+ loadFileList(b, rev, lastReply, group, null, null);
} else {
- loadDiff(b, rev, myLastReply(info), group);
+ loadDiff(b, rev, lastReply, group);
}
loadCommit(rev, group);
@@ -819,23 +814,7 @@
final Timestamp myLastReply, CallbackGroup group) {
final List<NativeMap<JsArray<CommentInfo>>> comments = loadComments(rev, group);
final List<NativeMap<JsArray<CommentInfo>>> drafts = loadDrafts(rev, group);
- DiffApi.list(changeId.get(),
- base != null ? base.name() : null,
- rev.name(),
- group.add(new AsyncCallback<NativeMap<FileInfo>>() {
- @Override
- public void onSuccess(NativeMap<FileInfo> m) {
- files.set(
- base != null ? new PatchSet.Id(changeId, base._number()) : null,
- new PatchSet.Id(changeId, rev._number()),
- style, reply, fileTableMode, edit != null);
- files.setValue(m, myLastReply, comments.get(0), drafts.get(0));
- }
-
- @Override
- public void onFailure(Throwable caught) {
- }
- }));
+ loadFileList(base, rev, myLastReply, group, comments, drafts);
if (Gerrit.isSignedIn() && fileTableMode == FileTable.Mode.REVIEW) {
ChangeApi.revision(changeId.get(), rev.name())
@@ -854,6 +833,31 @@
}
}
+ private void loadFileList(final RevisionInfo base, final RevisionInfo rev,
+ final Timestamp myLastReply, CallbackGroup group,
+ final List<NativeMap<JsArray<CommentInfo>>> comments,
+ final List<NativeMap<JsArray<CommentInfo>>> drafts) {
+ DiffApi.list(changeId.get(),
+ base != null ? base.name() : null,
+ rev.name(),
+ group.add(new AsyncCallback<NativeMap<FileInfo>>() {
+ @Override
+ public void onSuccess(NativeMap<FileInfo> m) {
+ files.set(
+ base != null ? new PatchSet.Id(changeId, base._number()) : null,
+ new PatchSet.Id(changeId, rev._number()),
+ style, reply, fileTableMode, edit != null);
+ files.setValue(m, myLastReply,
+ comments != null ? comments.get(0) : null,
+ drafts != null ? drafts.get(0) : null);
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ }
+ }));
+ }
+
private List<NativeMap<JsArray<CommentInfo>>> loadComments(
RevisionInfo rev, CallbackGroup group) {
final int id = rev._number();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java
index 5dab3ac..d0038e3 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java
@@ -29,6 +29,7 @@
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.rpc.RestApi;
import com.google.gerrit.client.ui.NavigationTable;
+import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.PageLinks;
import com.google.gerrit.reviewdb.client.Patch;
import com.google.gerrit.reviewdb.client.Patch.ChangeType;
@@ -202,8 +203,8 @@
void setValue(NativeMap<FileInfo> fileMap,
Timestamp myLastReply,
- NativeMap<JsArray<CommentInfo>> comments,
- NativeMap<JsArray<CommentInfo>> drafts) {
+ @Nullable NativeMap<JsArray<CommentInfo>> comments,
+ @Nullable NativeMap<JsArray<CommentInfo>> drafts) {
JsArray<FileInfo> list = fileMap.values();
FileInfo.sortFileInfoByPath(list);
@@ -453,8 +454,8 @@
private DisplayCommand(NativeMap<FileInfo> map,
JsArray<FileInfo> list,
Timestamp myLastReply,
- NativeMap<JsArray<CommentInfo>> comments,
- NativeMap<JsArray<CommentInfo>> drafts) {
+ @Nullable NativeMap<JsArray<CommentInfo>> comments,
+ @Nullable NativeMap<JsArray<CommentInfo>> drafts) {
this.myTable = new MyTable(map, list);
this.list = list;
this.myLastReply = myLastReply;
@@ -707,7 +708,10 @@
}
private JsArray<CommentInfo> get(String p, NativeMap<JsArray<CommentInfo>> m) {
- JsArray<CommentInfo> r = m.get(p);
+ JsArray<CommentInfo> r = null;
+ if (m != null) {
+ r = m.get(p);
+ }
if (r == null) {
r = JsArray.createArray().cast();
}