public interface

HackyFieldRendererRegistry

com.atlassian.jira.issue.fields.renderer.HackyFieldRendererRegistry
Known Indirect Subclasses

Class Overview

Shoehorn in per-field renderer types that override the pluggable renderers. This registry allows us to switch between the native select list and frother control rendering for the versions and components fields.

In future this hack should be replaced with pluggable per-field renderer types.

Summary

Public Methods
@Nullable HackyRendererType getDefaultRendererType(OrderableField field)
Given the field, return the default renderer type that can be used to initilize the field layout item for this field.
Set<HackyRendererType> getRendererTypes(OrderableField field)
The set of renderer types for the field.
boolean shouldOverrideDefaultRenderers(OrderableField field)
If this method returns true then users will be able to choose renderers in the field configuration for the field.

Public Methods

@Nullable public HackyRendererType getDefaultRendererType (OrderableField field)

Given the field, return the default renderer type that can be used to initilize the field layout item for this field. The return value must be in the set returned by getRendererTypes(com.atlassian.jira.issue.fields.OrderableField). You should only call this if shouldOverrideDefaultRenderers(com.atlassian.jira.issue.fields.OrderableField) returns true, otherwise this will return null.

Parameters
field the field
Returns
  • the default renderer type or null if the field doesn't override renderers

public Set<HackyRendererType> getRendererTypes (OrderableField field)

The set of renderer types for the field. Should only be used if shouldOverrideDefaultRenderers(com.atlassian.jira.issue.fields.OrderableField) returns true.

Parameters
field the field
Returns
  • the set of renderer types, or the empty set if the field doesn't have custom renderer types defined

public boolean shouldOverrideDefaultRenderers (OrderableField field)

If this method returns true then users will be able to choose renderers in the field configuration for the field. The set of renders to choose from are determined by the result of getRendererTypes(com.atlassian.jira.issue.fields.OrderableField) and will override any pluggable renderer types defined.

Fields that don't implement the RenderableField interface (or that do but but return false for isRenderable(), e.g., custom fields) can still return true here to signify that they should have the option to choose renderers.

Parameters
field the field
Returns
  • true if the field has custom renderer types