@PublicSpi public interface

IssueTabPanel2

implements IssueTabPanel
com.atlassian.jira.plugin.issuetabpanel.IssueTabPanel2
Known Indirect Subclasses

@PublicSpi

This interface is designed for plugins to implement.

Clients of @PublicSpi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicSpi as per each product's API policy (clients should refer to each product's API policy for the exact guarantee -- usually binary compatibility is guaranteed at least across minor versions).

Note: @PublicSpi interfaces and classes are specifically designed to be implemented/extended by clients. Hence, the guarantee of binary compatibility is different to that of @PublicApi elements (if an element is both @PublicApi and @PublicSpi, both guarantees apply).

Class Overview

This is the v2 SPI for the issue-tabpanel JIRA module type. Issue tab panels allow plugins to display their content in the JIRA view issue screen. Examples of issue tab panels include the "Comment", "Work Log", and the "Source" tabs.

Note that implementations of this interface must be able to work when either the legacy or the new getActions method is called, since there may remain callers that use the legacy method. The recommended way to do that is to extend the AbstractIssueTabPanel2 class and override the hooks that are available in that class.

This plugin type is documented online.

See Also

Summary

Public Methods
GetActionsReply getActions(GetActionsRequest request)
Returns a list of issue actions in the order that you want them to be displayed.
ShowPanelReply showPanel(ShowPanelRequest request)
Indicates whether this tab should be shown on a given issue.
[Expand]
Inherited Methods
From interface com.atlassian.jira.plugin.issuetabpanel.IssueTabPanel

Public Methods

public GetActionsReply getActions (GetActionsRequest request)

Returns a list of issue actions in the order that you want them to be displayed. This method will only be called if showPanel returned true for a given issue and user. The request parameter contains the user that is viewing the tab, information as to whether the tab is being loaded using an AJAX request, and so on.

Example implementation:

 @Override
 public GetActionsReply getActions(GetActionsRequest request)
 {
     if (!request.isAsynchronous())
     {
         return GetActionsReply.create(new AjaxTabPanelAction(request));
     }

     return GetActionsReply.create(getActionsList(request));
 }
 

Note that for the 'all' tab, the returned actions will be displayed in order according to the value returned by IssueAction.getTimePerformed().

Parameters
request a GetActionsRequest
Returns
  • a GetActionsReply containing the actions to display

public ShowPanelReply showPanel (ShowPanelRequest request)

Indicates whether this tab should be shown on a given issue.

Parameters
request a ShowPanelRequest
Returns
  • a ShowPanelRequest indicating whether to show the panel or not