public class

IssueOperationsBarUtil

extends Object
java.lang.Object
   ↳ com.atlassian.jira.issue.util.IssueOperationsBarUtil

Class Overview

Utility class to help with the creation of the View Issues Ops Bar.

Does a lot of caching (only request scope) as we need constantly need to check the sizes of different lists and it is hard to keep track of a lot of these things in the view layer.

Could possibly refactor this in the future to make it more generic to make any Ops bar for any page. E.g Issue Nav

Summary

Constants
String COMMENT_LINK_ID
String EDIT_LINK_ID
Public Constructors
IssueOperationsBarUtil(JiraHelper helper, ApplicationUser user, SimpleLinkManager simpleLinkManager, ApplicationProperties applicationProperties, IssueManager issueManager, PermissionManager permissionManager, I18nHelper i18n)
Public Methods
List<SimpleLinkSection> getGroups()
Gets all the groups for the Ops bar - Operations, Transitions, ...
String getLabelForLink(SimpleLink link)
Get a display label for a link Shows a maximum of 25 characters.
List<SimpleLinkSection> getNonEmptySectionsForGroup(SimpleLinkSection group)
Get a list of sections that contain links that have not be promoted.
List<SimpleLink> getNonPromotedLinksForSection(SimpleLinkSection group, SimpleLinkSection section)
Get all the links for a section that were not promoted.
List<SimpleLink> getPrimaryOperationLinks(Issue issue)
List<SimpleLink> getPromotedLinks(SimpleLinkSection group)
Gets all the links that have been promoted out of the sub-sections, into the top level.
String getTitleForLink(SimpleLink link)
Get the title for the link.
boolean hasLinks(SimpleLinkSection group)
Tells the caller if the passed group has any links (promoted or otherwise) to display.
boolean showMoreLinkforGroup(SimpleLinkSection group)
Whether we need to display the more link for a group.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String COMMENT_LINK_ID

Constant Value: "comment-issue"

public static final String EDIT_LINK_ID

Constant Value: "edit-issue"

Public Constructors

public IssueOperationsBarUtil (JiraHelper helper, ApplicationUser user, SimpleLinkManager simpleLinkManager, ApplicationProperties applicationProperties, IssueManager issueManager, PermissionManager permissionManager, I18nHelper i18n)

Public Methods

public List<SimpleLinkSection> getGroups ()

Gets all the groups for the Ops bar - Operations, Transitions, ...

Returns
  • A list of sections that contain other sections.

public String getLabelForLink (SimpleLink link)

Get a display label for a link Shows a maximum of 25 characters.

Parameters
link the link to get the label for.
Returns
  • the links label, abbreviated to 25 chars

public List<SimpleLinkSection> getNonEmptySectionsForGroup (SimpleLinkSection group)

Get a list of sections that contain links that have not be promoted.

Parameters
group The group to get the sections for.
Returns
  • a list of sections that contain 1 or more links that have not been promoted.

public List<SimpleLink> getNonPromotedLinksForSection (SimpleLinkSection group, SimpleLinkSection section)

Get all the links for a section that were not promoted.

Parameters
group The group which section belongs to.
section The section to get the links for.
Returns
  • a list of links for the section minus the promoted links

public List<SimpleLink> getPrimaryOperationLinks (Issue issue)

public List<SimpleLink> getPromotedLinks (SimpleLinkSection group)

Gets all the links that have been promoted out of the sub-sections, into the top level.

The number of links promoted is determined by the jira-application.properties property: ops.bar.group.size = 2

Though this can be overridden for individual groups: ops.bar.group.size.opsbar-operations = 3

Parameters
group The group for which these links belong. E.g. opbsbar-operations
Returns
  • A list of links that contain all promoted links

public String getTitleForLink (SimpleLink link)

Get the title for the link. If the link label has been abbreviated and there is no set title, use the full label.

Parameters
link The link to get the title for.
Returns
  • The title for the link

public boolean hasLinks (SimpleLinkSection group)

Tells the caller if the passed group has any links (promoted or otherwise) to display.

Parameters
group the group to check.
Returns
  • true if the passed group has links to display.

public boolean showMoreLinkforGroup (SimpleLinkSection group)

Whether we need to display the more link for a group. We display the more link if the group has a a label or if there are more items to show in a drop down.

Parameters
group The group to get the label for.
Returns
  • true if twe should display a more link, otherwise false.