private void addNavigationButtons()

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());
          }
        });
  }