public class DescriptionSystemField extends AbstractTextSystemField implements HideableField, RequirableField, RestFieldOperations, DefaultValueField<String>
Issue
description.Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_VALUE_TYPE |
authenticationContext
MOVE_ISSUE_PARAM_KEY, NO_HEADER_PARAM_KEY, TEMPLATE_DIRECTORY_PATH
ORDER_ASCENDING, ORDER_DESCENDING, TEMPLATE_DIRECTORY_PATH
Constructor and Description |
---|
DescriptionSystemField(VelocityTemplatingEngine templatingEngine,
ApplicationProperties applicationProperties,
JiraAuthenticationContext authenticationContext,
RendererManager rendererManager,
PermissionManager permissionManager,
DescriptionSearchHandlerFactory searchHandlerFactory,
MentionService mentionService,
TextFieldCharacterLengthValidator textFieldCharacterLengthValidator,
GenericConfigManager genericConfigManager,
DCFeatureLicenseChecker licenseChecker) |
Modifier and Type | Method and Description |
---|---|
String |
availableForBulkEdit(BulkEditBean bulkEditBean)
Determines whether the field is available for bulk editing given the BulkEditBean.
|
boolean |
canRemoveValueFromIssueObject(Issue issue)
Returns
true if a call to OrderableField.removeValueFromIssueObject(com.atlassian.jira.issue.MutableIssue)
will actually remove the value. |
List<Project> |
getAssociatedProjectObjects()
Returns a list of projects associated with this field.
|
String |
getColumnHeadingKey() |
protected String |
getColumnViewTemplateName() |
List<FieldConfigItemType> |
getConfigurationItemTypes()
Returns a List of
FieldConfigItemType objects. |
String |
getDefaultSortOrder()
The order in which to sort the field when it is sorted for the first time.
|
String |
getDefaultValue(Issue issue)
The value that should be set on the issue if the field is not shown for some reason.
|
DefaultValueOperations<String> |
getDefaultValueOperations() |
protected String |
getEditTemplateName() |
JsonData |
getJsonDefaultValue(IssueContext issueCtx)
Return The default data for this system field.
|
FieldConfig |
getRelevantConfig(IssueContext issueContext) |
RestFieldOperationsHandler |
getRestFieldOperation() |
LuceneFieldSorter |
getSorter()
A sorter to be used when sorting columns in a table.
|
List<org.apache.lucene.search.SortField> |
getSortFields(boolean sortOrder)
Return a list of Lucene SortFields to be used for sorting search results.
|
String |
getValueFromIssue(Issue issue)
Gets the value stored for this field on the provided issue.
|
boolean |
isShown(Issue issue)
Tests field specific way to determine if it should be shown or not.
|
void |
populateDefaults(Map<String,Object> fieldValuesHolder,
Issue issue)
Populate the fieldValueHolder with a value that should be shown by default when the issue
has not been created yet.
|
protected void |
populateVelocityParams(Map fieldValuesHolder,
Map params) |
void |
removeValueFromIssueObject(MutableIssue issue)
Removes the field value from the given MutableIssue object.
|
void |
updateIssue(FieldLayoutItem fieldLayoutItem,
MutableIssue issue,
Map fieldValueHolder)
Record the value on the issue (not saving it to the database, see updateValue).
|
void |
validateParams(OperationContext operationContext,
ErrorCollection errorCollectionToAddTo,
I18nHelper i18n,
Issue issue,
FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem)
Ensure that the parameters are valid
|
createValue, getChangeLogFieldName, getChangelogValue, getColumnViewHtml, getCreateHtml, getEditHtml, getFieldTypeInfo, getJsonFromIssue, getJsonSchema, getRelevantParams, getRepresentationFromIssue, getValueFromParams, getViewHtml, getViewHtml, getViewHtml, hasValue, isInvertCollapsedState, isRenderable, needsMove, populateForMove, populateFromIssue, populateParamsFromString, populateVelocityParams, updateValue, valuesEqual
getColumnCssClass, getHiddenFieldId, getSortComparatorSource, getVelocityParams, prettyPrintChangeHistory, prettyPrintChangeHistory
createAssociatedSearchHandler, getApplicationProperties, getBulkEditHtml, getCreateHtml, getEditHtml, getFieldLayoutItemForBulkOperation, getIssueForBulkOperation, getPermissionManager, getVelocityParams, getVelocityParams, getViewHtml, hasBulkUpdatePermission, hasParam, hasPermission, isHidden, populateFromParams, rendererTypesEqual, renderTemplate, validateBulkEditHtmlProperties, valuesEqual
compareTo, equals, getAuthenticationContext, getId, getName, getNameKey, hashCode
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
createValue, getBulkEditHtml, getCreateHtml, getCreateHtml, getEditHtml, getEditHtml, getValueFromParams, getViewHtml, getViewHtml, getViewHtml, hasParam, hasValue, needsMove, populateForMove, populateFromIssue, populateFromParams, populateParamsFromString, updateValue
createAssociatedSearchHandler
getId, getName, getNameKey
compareTo
getId
prettyPrintChangeHistory
public static final String DEFAULT_VALUE_TYPE
public DescriptionSystemField(VelocityTemplatingEngine templatingEngine, ApplicationProperties applicationProperties, JiraAuthenticationContext authenticationContext, RendererManager rendererManager, PermissionManager permissionManager, DescriptionSearchHandlerFactory searchHandlerFactory, MentionService mentionService, TextFieldCharacterLengthValidator textFieldCharacterLengthValidator, GenericConfigManager genericConfigManager, DCFeatureLicenseChecker licenseChecker)
public boolean isShown(Issue issue)
OrderableField
isShown
in interface OrderableField<String>
issue
- The Issue.public void validateParams(OperationContext operationContext, ErrorCollection errorCollectionToAddTo, I18nHelper i18n, Issue issue, FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem)
OrderableField
validateParams
in interface OrderableField<String>
operationContext
- OperationContexterrorCollectionToAddTo
- ErrorCollection to add to.i18n
- I18nHelperissue
- This is passed to get the value of other fields that may or may not have been modified.fieldScreenRenderLayoutItem
- FieldScreenRenderLayoutItemprotected void populateVelocityParams(Map fieldValuesHolder, Map params)
populateVelocityParams
in class AbstractTextSystemField
public void populateDefaults(Map<String,Object> fieldValuesHolder, Issue issue)
OrderableField
populateDefaults
in interface OrderableField<String>
populateDefaults
in class AbstractTextSystemField
fieldValuesHolder
- The fieldValuesHolder Map to be populated.issue
- The Issue.public String getDefaultValue(Issue issue)
OrderableField
For example: The user does not have permission to see the field, or the field is not part of the create screen.
getDefaultValue
in interface OrderableField<String>
issue
- the Issue.public String getValueFromIssue(Issue issue)
RenderableField
getValueFromIssue
in interface RenderableField
getValueFromIssue
in class AbstractTextSystemField
issue
- identifies the issue that will contain the value for this field.public void updateIssue(FieldLayoutItem fieldLayoutItem, MutableIssue issue, Map fieldValueHolder)
OrderableField
updateIssue
in interface OrderableField<String>
fieldLayoutItem
- FieldLayoutItemissue
- MutableIssuefieldValueHolder
- Field Value Holder MapOrderableField.updateValue(com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem, com.atlassian.jira.issue.Issue, com.atlassian.jira.issue.ModifiedValue, com.atlassian.jira.issue.util.IssueChangeHolder)
public void removeValueFromIssueObject(MutableIssue issue)
OrderableField
Note that this operation does not actually persist the change, it just clears the value from the given Issue object. The caller will still need to call #updateValue() in order to persist the change.
Some Fields may choose to quietly ignore this request. eg The SecurityLevel Field will not remove Security Level from subtasks because the subtask must always take the Security Level of its parent issue.
removeValueFromIssueObject
in interface OrderableField<String>
issue
- The issue object to be effected.OrderableField.canRemoveValueFromIssueObject(com.atlassian.jira.issue.Issue)
,
OrderableField.updateValue(com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem, com.atlassian.jira.issue.Issue, com.atlassian.jira.issue.ModifiedValue, com.atlassian.jira.issue.util.IssueChangeHolder)
public boolean canRemoveValueFromIssueObject(Issue issue)
OrderableField
true
if a call to OrderableField.removeValueFromIssueObject(com.atlassian.jira.issue.MutableIssue)
will actually remove the value.
There a few different reasons why this method may return false:
canRemoveValueFromIssueObject
in interface OrderableField<String>
issue
- The Issue object.true
if a call to OrderableField.removeValueFromIssueObject(com.atlassian.jira.issue.MutableIssue)
will actually remove the value.OrderableField.removeValueFromIssueObject(com.atlassian.jira.issue.MutableIssue)
public String getColumnHeadingKey()
getColumnHeadingKey
in interface NavigableField
public String getDefaultSortOrder()
NavigableField
getDefaultSortOrder
in interface NavigableField
NavigableField.ORDER_ASCENDING
or NavigableField.ORDER_DESCENDING
public LuceneFieldSorter getSorter()
NavigableField
getSorter
in interface NavigableField
NavigableField.getSortComparatorSource()
DocumentIssueImpl
,
MappedSortComparator
public List<org.apache.lucene.search.SortField> getSortFields(boolean sortOrder)
NavigableField
Using this method allows the field to specify the most performant way to perform a search. If a field can be sorted directly using the term in the index then this should just return a singleton list with the sort field.
return Collections.singletonList(new SortField(fieldName, sortOrder));
The default implementation builds this using the FieldComparatorSource returned by NavigableField.getSortComparatorSource()
If you implement this method there is no need to implement NavigableField.getSortComparatorSource()
.
getSortFields
in interface NavigableField
getSortFields
in class AbstractOrderableNavigableFieldImpl<String>
protected String getEditTemplateName()
getEditTemplateName
in class AbstractTextSystemField
protected String getColumnViewTemplateName()
getColumnViewTemplateName
in class AbstractTextSystemField
public String availableForBulkEdit(BulkEditBean bulkEditBean)
OrderableField
availableForBulkEdit
in interface OrderableField<String>
bulkEditBean
- holds the state of the bulk-edit wizard (e.g. the selected issues for bulk editing)null
if the field is available for bulk-editing or an i18n key of the error message to show as
why the field is not available.public RestFieldOperationsHandler getRestFieldOperation()
getRestFieldOperation
in interface RestFieldOperations
public JsonData getJsonDefaultValue(IssueContext issueCtx)
RestFieldOperations
getJsonDefaultValue
in interface RestFieldOperations
issueCtx
- Issue (This should really only need to be an issue context, but for historical reasons we need an issue object.public List<FieldConfigItemType> getConfigurationItemTypes()
ConfigurableField
FieldConfigItemType
objects. This opens up possibilties for configurable custom fieldsgetConfigurationItemTypes
in interface ConfigurableField<String>
FieldConfigItemType
@Nonnullpublic List<Project> getAssociatedProjectObjects()
ConfigurableField
getAssociatedProjectObjects
in interface ConfigurableField<String>
public FieldConfig getRelevantConfig(IssueContext issueContext)
getRelevantConfig
in interface ConfigurableField<String>
public DefaultValueOperations<String> getDefaultValueOperations()
getDefaultValueOperations
in interface DefaultValueField<String>
Copyright © 2002-2022 Atlassian. All Rights Reserved.