in src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocDiffScreen.java [217:256]
private void addNavigationButtons(final ChangeInfo change) {
DiffApi.list(
changeId,
patchSet,
base,
new AsyncCallback<NativeMap<FileInfo>>() {
@Override
public void onSuccess(NativeMap<FileInfo> result) {
JsArray<FileInfo> files = result.values();
FileInfo.sortFileInfoByPath(files);
int index = 0;
for (int i = 0; i < files.length(); i++) {
if (path.equals(files.get(i).path())) {
index = i;
break;
}
}
FileInfo prevInfo = index == 0 ? null : files.get(index - 1);
if (prevInfo != null) {
iconPanel.add(
createNavLink(XDocsPlugin.RESOURCES.goPrev(), change, patchSet, base, prevInfo));
}
iconPanel.add(
createIcon(XDocsPlugin.RESOURCES.goUp(), "Up to change", toChange(change)));
FileInfo nextInfo = index == files.length() - 1 ? null : files.get(index + 1);
if (nextInfo != null) {
iconPanel.add(
createNavLink(XDocsPlugin.RESOURCES.goNext(), change, patchSet, base, nextInfo));
}
}
@Override
public void onFailure(Throwable caught) {
showError("Unable to load files of change " + changeId + ": " + caught.getMessage());
}
});
}