Expose RevisionInfo to panel extension points

Currently there is no way for panel extension points to retrieve the
revision information. This is needed to call the plugin specific
RevisionResource endpoints.

To pass the revision info, the extensions call invocation is postponed
to the point where RevisionInfo of current revision is set.

Change-Id: I01196b34273abedbe39818bcdbbcbf4629446f7f
This commit is contained in:
David Ostrovsky
2016-03-15 17:05:41 +01:00
parent fdda626289
commit afe59c7a66
2 changed files with 9 additions and 8 deletions

View File

@@ -34,6 +34,6 @@ public enum GerritUiExtensionPoint {
PROJECT_INFO_SCREEN_TOP, PROJECT_INFO_SCREEN_BOTTOM;
public enum Key {
ACCOUNT_INFO, CHANGE_INFO, PROJECT_NAME
ACCOUNT_INFO, CHANGE_INFO, PROJECT_NAME, REVISION_INFO
}
}

View File

@@ -278,28 +278,28 @@ public class ChangeScreen extends Screen {
@Override
public void onSuccess(ChangeInfo info) {
info.init();
addExtensionPoints(info);
loadConfigInfo(info, base);
}
}));
}
private void addExtensionPoints(ChangeInfo change) {
private void addExtensionPoints(ChangeInfo change, RevisionInfo rev) {
addExtensionPoint(GerritUiExtensionPoint.CHANGE_SCREEN_HEADER,
headerExtension, change);
headerExtension, change, rev);
addExtensionPoint(GerritUiExtensionPoint.CHANGE_SCREEN_HEADER_RIGHT_OF_BUTTONS,
headerExtensionMiddle, change);
headerExtensionMiddle, change, rev);
addExtensionPoint(GerritUiExtensionPoint.CHANGE_SCREEN_HEADER_RIGHT_OF_POP_DOWNS,
headerExtensionRight, change);
headerExtensionRight, change, rev);
addExtensionPoint(
GerritUiExtensionPoint.CHANGE_SCREEN_BELOW_CHANGE_INFO_BLOCK,
changeExtension, change);
changeExtension, change, rev);
}
private void addExtensionPoint(GerritUiExtensionPoint extensionPoint,
Panel p, ChangeInfo change) {
Panel p, ChangeInfo change, RevisionInfo rev) {
ExtensionPanel extensionPanel = new ExtensionPanel(extensionPoint);
extensionPanel.putObject(GerritUiExtensionPoint.Key.CHANGE_INFO, change);
extensionPanel.putObject(GerritUiExtensionPoint.Key.REVISION_INFO, rev);
p.add(extensionPanel);
}
@@ -895,6 +895,7 @@ public class ChangeScreen extends Screen {
}
}
final RevisionInfo rev = resolveRevisionToDisplay(info);
addExtensionPoints(info, rev);
final RevisionInfo b = resolveRevisionOrPatchSetId(info, base, null);
CallbackGroup group = new CallbackGroup();