com.atlassian.jira.issue.util
Class IssueOperationsBarUtil

java.lang.Object
  extended by com.atlassian.jira.issue.util.IssueOperationsBarUtil

public class IssueOperationsBarUtil
extends Object

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

Since:
v4.1

Field Summary
static String COMMENT_LINK_ID
           
static String EDIT_LINK_ID
           
 
Constructor Summary
IssueOperationsBarUtil(JiraHelper helper, ApplicationUser user, SimpleLinkManager simpleLinkManager, ApplicationProperties applicationProperties, IssueManager issueManager, PermissionManager permissionManager, I18nHelper i18n)
           
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EDIT_LINK_ID

public static final String EDIT_LINK_ID
See Also:
Constant Field Values

COMMENT_LINK_ID

public static final String COMMENT_LINK_ID
See Also:
Constant Field Values
Constructor Detail

IssueOperationsBarUtil

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

getGroups

public List<SimpleLinkSection> getGroups()
Gets all the groups for the Ops bar - Operations, Transitions, ...

Returns:
A list of sections that contain other sections.

hasLinks

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.

getPromotedLinks

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

getNonPromotedLinksForSection

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

getNonEmptySectionsForGroup

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.

showMoreLinkforGroup

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.

getLabelForLink

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

getTitleForLink

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

getPrimaryOperationLinks

public List<SimpleLink> getPrimaryOperationLinks(Issue issue)


Copyright © 2002-2013 Atlassian. All Rights Reserved.