com.atlassian.jira.issue.fields
Class AbstractProgressBarSystemField

java.lang.Object
  extended by com.atlassian.jira.issue.fields.AbstractField
      extended by com.atlassian.jira.issue.fields.NavigableFieldImpl
          extended by com.atlassian.jira.issue.fields.AbstractProgressBarSystemField
All Implemented Interfaces:
Field, NavigableField, RestAwareField, Comparable
Direct Known Subclasses:
AggregateProgressBarSystemField, ProgressBarSystemField

public abstract class AbstractProgressBarSystemField
extends NavigableFieldImpl
implements RestAwareField

Base class for Progress Bar system fields.

Since:
v3.11

Nested Class Summary
protected static class AbstractProgressBarSystemField.TimeTrackingParameters
           
 
Field Summary
 
Fields inherited from class com.atlassian.jira.issue.fields.NavigableFieldImpl
applicationProperties, templatingEngine
 
Fields inherited from class com.atlassian.jira.issue.fields.AbstractField
authenticationContext
 
Fields inherited from interface com.atlassian.jira.issue.fields.NavigableField
ORDER_ASCENDING, ORDER_DESCENDING, TEMPLATE_DIRECTORY_PATH
 
Constructor Summary
AbstractProgressBarSystemField(String id, String nameKey, String columnHeadingKey, VelocityTemplatingEngine templatingEngine, ApplicationProperties applicationProperties, JiraAuthenticationContext authenticationContext)
           
 
Method Summary
static Long calculateProgressPercentage(Long spent, Long remainingEstimate)
          Calculates the progress as spent / (spent + remainingEstimate) if parameters are not null.
 String getColumnViewHtml(FieldLayoutItem fieldLayoutItem, Map displayParams, Issue issue)
           
protected abstract  String getDisplayId()
          Returns the display id which is used by the progress-bar.vm template to generate ids for HTML tags.
 FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext)
          Returns lower level Information about the field.
 String getHiddenFieldId()
          Returns the id of the field to check for visibility.
 FieldJsonRepresentation getJsonFromIssue(Issue issue, boolean renderedVersionRequested, FieldLayoutItem fieldLayoutItem)
          Return a FieldJsonDataPair containing a json representation of the raw data for this field, and if required, a json representation of the rendered data for easy display.
 JsonType getJsonSchema()
          Return a description of the shape of this field when represented as JSON.
protected abstract  AbstractProgressBarSystemField.TimeTrackingParameters getTimeTrackingGraphBeanParameters(Issue issue, I18nHelper helper)
           
 
Methods inherited from class com.atlassian.jira.issue.fields.NavigableFieldImpl
getApplicationProperties, getColumnCssClass, getColumnHeadingKey, getDefaultSortOrder, getSortComparatorSource, getSortFields, getVelocityParams, prettyPrintChangeHistory, prettyPrintChangeHistory, renderTemplate
 
Methods inherited from class com.atlassian.jira.issue.fields.AbstractField
compareTo, equals, getAuthenticationContext, getId, getName, getNameKey, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.jira.issue.fields.NavigableField
getSorter
 
Methods inherited from interface com.atlassian.jira.issue.fields.Field
getId, getName, getNameKey
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Constructor Detail

AbstractProgressBarSystemField

public AbstractProgressBarSystemField(String id,
                                      String nameKey,
                                      String columnHeadingKey,
                                      VelocityTemplatingEngine templatingEngine,
                                      ApplicationProperties applicationProperties,
                                      JiraAuthenticationContext authenticationContext)
Method Detail

getHiddenFieldId

public String getHiddenFieldId()
Description copied from interface: NavigableField
Returns the id of the field to check for visibility. For example, with original estimate field need to ensure that the timetracking field is not hidden. With most fields, this is the same as their id.

Specified by:
getHiddenFieldId in interface NavigableField
Overrides:
getHiddenFieldId in class NavigableFieldImpl

getColumnViewHtml

public String getColumnViewHtml(FieldLayoutItem fieldLayoutItem,
                                Map displayParams,
                                Issue issue)
Specified by:
getColumnViewHtml in interface NavigableField

calculateProgressPercentage

public static Long calculateProgressPercentage(Long spent,
                                               Long remainingEstimate)
Calculates the progress as spent / (spent + remainingEstimate) if parameters are not null. Returns 0 if spent was null, 100 if remainingEstimate was null, or null if both parameters were null or zeros.

Throws an IllegalArgumentException if a negative number is passed in.

Parameters:
spent - time spent
remainingEstimate - remaining estimate
Returns:
progress as a percentage, can return null

getTimeTrackingGraphBeanParameters

protected abstract AbstractProgressBarSystemField.TimeTrackingParameters getTimeTrackingGraphBeanParameters(Issue issue,
                                                                                                            I18nHelper helper)

getDisplayId

protected abstract String getDisplayId()
Returns the display id which is used by the progress-bar.vm template to generate ids for HTML tags.

Returns:
id unique for each field

getFieldTypeInfo

public FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext)
Description copied from interface: RestAwareField
Returns lower level Information about the field. This information contains allowed values and/or the autocomplete url

Specified by:
getFieldTypeInfo in interface RestAwareField
Parameters:
fieldTypeInfoContext - the FieldTypeInfoContext contains context information that is relevant to generate the FieldTypeInfo

getJsonSchema

public JsonType getJsonSchema()
Description copied from interface: RestAwareField
Return a description of the shape of this field when represented as JSON.

Specified by:
getJsonSchema in interface RestAwareField

getJsonFromIssue

public FieldJsonRepresentation getJsonFromIssue(Issue issue,
                                                boolean renderedVersionRequested,
                                                @Nullable
                                                FieldLayoutItem fieldLayoutItem)
Description copied from interface: RestAwareField
Return a FieldJsonDataPair containing a json representation of the raw data for this field, and if required, a json representation of the rendered data for easy display.

Specified by:
getJsonFromIssue in interface RestAwareField
Parameters:
issue - to get field data from
renderedVersionRequested - whether the use requested the return of rendered/pretty data as well as raw data
fieldLayoutItem - field layout for this field. Will only be supplied if the field is also an ordereable field.
Returns:
FieldJsonDataPair containing a json representation of the raw data for this field, and if required, a json representation of the rendered data for easy display.


Copyright © 2002-2014 Atlassian. All Rights Reserved.