Add download icon to preview diff screens Change-Id: Ifd5aff3eec29f81930f93cc493cd8d189b19ba67 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java index 3583461..83ea13a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java +++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
@@ -27,6 +27,7 @@ public final native NativeMap<RevisionInfo> revisions() /*-{ return this.revisions; }-*/; public final native int _number() /*-{ return this._number; }-*/; public final native String current_revision() /*-{ return this.current_revision; }-*/; + public final native RevisionInfo revision(String n) /*-{ return this.revisions[n]; }-*/; protected ChangeInfo() { }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java index 21ddf00..c895091 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java +++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
@@ -15,8 +15,12 @@ package com.googlesource.gerrit.plugins.xdocs.client; import com.google.gerrit.plugin.client.Plugin; +import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.JsArray; +import com.google.gwt.http.client.URL; +import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.ImageResourceRenderer; import com.google.gwt.user.client.ui.InlineHyperlink; import com.google.gwt.user.client.ui.Label; @@ -33,6 +37,8 @@ UNIFIED_DIFF } + private static final String COMMIT_MSG = "/COMMIT_MSG"; + private final DiffView diffView; private final DisplaySide side; private final ChangeInfo change; @@ -72,6 +78,10 @@ for (int i = 0; i < list.length(); i++) { add(createLink(list.get(i))); } + + if (!COMMIT_MSG.equals(path)) { + add(createDownloadLink()); + } } private void addPatchSetLabel() { @@ -122,6 +132,19 @@ return link; } + private Anchor createDownloadLink() { + String base = GWT.getHostPageBaseURL() + "cat/"; + String sideUrl = isBaseSelected() ? "1" : "0"; + int ps = isBaseSelected() + ? change.revision(change.current_revision())._number() + : getSelectedPatchSet(); + Anchor anchor = new Anchor( + new ImageResourceRenderer().render(XDocsPlugin.RESOURCES.downloadIcon()), + base + URL.encode(change._number() + "," + ps + "," + path) + "^" + sideUrl); + anchor.setTitle("Download"); + return anchor; + } + private Integer getSelectedPatchSet() { return sideA() ? basePatchSet : Integer.valueOf(patchSet); }