com.atlassian.jira.web.action.issue
Class AbstractIssueLinkAction

java.lang.Object
  extended by webwork.action.ActionSupport
      extended by com.atlassian.jira.action.JiraActionSupport
          extended by com.atlassian.jira.web.action.JiraWebActionSupport
              extended by com.atlassian.jira.web.action.ProjectActionSupport
                  extended by com.atlassian.jira.web.action.IssueActionSupport
                      extended by com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
                          extended by com.atlassian.jira.web.action.issue.AbstractViewIssue
                              extended by com.atlassian.jira.web.action.issue.AbstractCommentableIssue
                                  extended by com.atlassian.jira.web.action.issue.AbstractIssueLinkAction
All Implemented Interfaces:
OperationContext, ErrorCollection, I18nHelper, IssueSummaryAware, HttpServletVariables, AuthorizationSupport, Serializable, webwork.action.Action, webwork.action.CommandDriven, webwork.action.IllegalArgumentAware
Direct Known Subclasses:
AddWebLink, LinkConfluencePage, LinkExistingIssue, LinkJiraIssue

public abstract class AbstractIssueLinkAction
extends AbstractCommentableIssue
implements OperationContext

Base class for an issue link action.

Since:
v5.0
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
JiraWebActionSupport.MessageType
 
Nested classes/interfaces inherited from interface com.atlassian.jira.util.ErrorCollection
ErrorCollection.Reason
 
Nested classes/interfaces inherited from interface com.atlassian.jira.util.I18nHelper
I18nHelper.BeanFactory
 
Field Summary
protected  com.atlassian.event.api.EventPublisher eventPublisher
           
protected  RemoteIssueLinkService remoteIssueLinkService
           
protected  RemoteIssueLinkService.CreateValidationResult validationResult
           
 
Fields inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableIssue
userUtil
 
Fields inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
id, ISSUE_PERMISSION_ERROR, PREPOPULATED_ISSUE_OBJECT
 
Fields inherited from class com.atlassian.jira.web.action.IssueActionSupport
attachmentManager
 
Fields inherited from class com.atlassian.jira.web.action.ProjectActionSupport
projectManager
 
Fields inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
ISSUE_NOT_FOUND_RESULT, PERMISSION_VIOLATION_RESULT, request, RETURN_URL_PARAMETER, savedFilters
 
Fields inherited from class com.atlassian.jira.action.JiraActionSupport
log
 
Fields inherited from class webwork.action.ActionSupport
command, errorMap, errorMessages
 
Fields inherited from interface webwork.action.Action
ERROR, INPUT, LOGIN, NONE, SUCCESS
 
Constructor Summary
AbstractIssueLinkAction(SubTaskManager subTaskManager, FieldScreenRendererFactory fieldScreenRendererFactory, FieldManager fieldManager, ProjectRoleManager projectRoleManager, CommentService commentService, UserUtil userUtil, RemoteIssueLinkService remoteIssueLinkService, com.atlassian.event.api.EventPublisher eventPublisher)
           
 
Method Summary
 RemoteIssueLinkService.RemoteIssueLinkResult createLink()
          Creates the link and publishes an event for the creation
 RemoteIssueLinkService.RemoteIssueLinkResult createLink(RemoteIssueLinkService.CreateValidationResult validationResult)
          Creates the link and publishes an event for the creation
 String doDefault()
          The "default" command.
protected  void doValidation()
          Validate that the user has permission to link issues, and that the comment field is valid.
 String getCommentSectionHtml()
           
 Map<String,Object> getDisplayParams()
           
static KeyboardShortcutManager.Context getKeyboardShortcutContext()
           
static String getModifierKey()
           
protected  String getRedirectUrl()
          Returns the URL to redirect to after successfully creating the issue link.
protected  void handleCredentialsRequired()
           
 boolean isRequiresCredentials()
           
 boolean isValidToView()
          Returns true if the contents of the action should be shown, false if otherwise.
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableIssue
createComment, doCommentValidation, getComment, getCommentLevel, getFieldScreenRendererLayoutItemForField, getFieldScreenRendererWithAllFields, getFieldValuesHolder, getGroupLevel, getGroupLevels, getIssueOperation, getOrderableField, getRoleLevels, populateCommentFields, setComment, setCommentLevel, setFieldValuesHolder, setGroupLevel
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractViewIssue
getAttachments, getPossibleComponents, getPossibleVersions, getPossibleVersionsReleasedFirst
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
addErrorMessage, assertIssueIsValid, cameFromIssue, cameFromParent, getId, getIssue, getIssueObject, getIssueObjectWithoutDatabaseRead, getIssuePath, getKey, getLayoutBean, getParentIssueObject, getProject, getSecurityLevel, getSubTaskManager, getSummaryIssue, getViewIssueKey, getViewUrl, isEditable, isEditable, isHasEditIssuePermission, isIssueExists, isIssueValid, isSubTask, isSubTaskCreatable, isWorkflowAllowsEdit, redirectToView, refreshIssueObject, setId, setIssueObject, setKey, setViewIssueKey
 
Methods inherited from class com.atlassian.jira.web.action.IssueActionSupport
addIssueToHistory, clearSelectedIssue, getAttachmentManager, getCurrentFailedLoginCount, getCurrentJQL, getCustomFieldManager, getDaysPerWeek, getEverLoggedIn, getHoursPerDay, getIssueManager, getLastFailedLogin, getLastLogin, getLoginCount, getPossibleVersions, getPossibleVersionsReleasedFirst, getPrettyDuration, getPreviousLogin, getSearchRequest, getSelectedIssueId, getSessionPagerFilterManager, getSessionSearchRequestManager, getSessionSearchRequestManagerFactory, getSessionSelectedIssueManager, getTotalFailedLoginCount, getUrlEncoded, getWorkflow, getWorkflowTransitionDescription, getWorkflowTransitionDisplayName, isCustomFieldHidden, isElevatedSecurityCheckRequired, isFieldHidden, isFieldHidden, isTimeTrackingEnabled, setSearchRequest, setSelectedIssueId, updateSearchRequest
 
Methods inherited from class com.atlassian.jira.web.action.ProjectActionSupport
getBrowsableProjects, getBrowseableProjects, getSelectedProjectId, setSelectedProject, setSelectedProject
 
Methods inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
addError, addErrorCollection, addErrorMessage, addErrorMessageByKeyIfAbsent, addErrorMessageIfAbsent, addMessageToResponse, addReason, addReasons, forceRedirect, getAdministratorContactLink, getApplicationProperties, getAuthorizationSupport, getConglomerateCookieValue, getConstantsManager, getDateFormat, getDateTimeFormat, getDateTimeFormatter, getDescTranslation, getDmyDateFormatter, getErrorMessages, getErrors, getField, getFlushedErrorMessages, getGlobalPermissionManager, getHint, getHintManager, getHttpRequest, getHttpResponse, getHttpSession, getJiraContactHelper, getJiraServiceContext, getLanguage, getLoggedInApplicationUser, getLoggedInUser, getNameTranslation, getOutlookDate, getPermissionManager, getProjectManager, getRandomHint, getReasons, getRedirect, getRedirect, getRedirectSanitiser, getReturnUrl, getReturnUrlForCancelLink, getSearchSortDescriptions, getSelectedProject, getSelectedProjectObject, getServerId, getServletContext, getTimeFormat, getUriValidator, getUserFullName, getUserManager, getUserProjectHistoryManager, getVersionManager, getWebworkStack, getWebworkStack, getXsrfToken, hasErrorMessage, hasErrorMessageByKey, hasIssuePermission, hasPermission, hasProjectPermission, htmlEncode, insertContextPath, isHasIssuePermission, isHasIssuePermission, isHasPermission, isHasPermission, isHasPermission, isHasProjectPermission, isHasProjectPermission, isInlineDialogMode, isSystemAdministrator, isUserExists, isUserExistsByKey, isUserExistsByName, returnComplete, returnComplete, returnCompleteWithInlineRedirect, returnCompleteWithInlineRedirectAndMsg, returnCompleteWithInlineRedirectAndMsg, returnMsgToUser, returnMsgToUser, setConglomerateCookieValue, setInline, setReasons, setReturnUrl, setSelectedProjectId, urlEncode
 
Methods inherited from class com.atlassian.jira.action.JiraActionSupport
addErrorMessages, addErrorMessages, addErrors, addIllegalArgumentException, execute, getActionName, getComponentInstanceOfType, getDefaultResourceBundle, getDelegator, getI18nHelper, getKeysForPrefix, getLocale, getOfBizDelegator, getRemoteUser, getResourceBundle, getResult, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getUnescapedText, getUntransformedRawText, getUserPreferences, getWatcherManager, hasAnyErrors, isIndexing, isKeyDefined, removeKeyOrAddError
 
Methods inherited from class webwork.action.ActionSupport
addError, doExecute, getCommandName, getHasErrorMessages, getHasErrors, getPropertyEditorMessage, getTexts, getTexts, getTimezone, invalidInput, invokeCommand, isCommand, setCommand, setErrorMessages, setErrors, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.jira.issue.customfields.OperationContext
getFieldValuesHolder, getIssueOperation
 
Methods inherited from interface com.atlassian.jira.web.action.issue.IssueSummaryAware
getLoggedInUser
 
Methods inherited from interface com.atlassian.jira.util.ErrorCollection
addError, addErrorMessages, addErrors, hasAnyErrors, setErrorMessages
 
Methods inherited from interface webwork.action.CommandDriven
getCommandName, setCommand
 

Field Detail

validationResult

protected RemoteIssueLinkService.CreateValidationResult validationResult

remoteIssueLinkService

protected final RemoteIssueLinkService remoteIssueLinkService

eventPublisher

protected final com.atlassian.event.api.EventPublisher eventPublisher
Constructor Detail

AbstractIssueLinkAction

public AbstractIssueLinkAction(SubTaskManager subTaskManager,
                               FieldScreenRendererFactory fieldScreenRendererFactory,
                               FieldManager fieldManager,
                               ProjectRoleManager projectRoleManager,
                               CommentService commentService,
                               UserUtil userUtil,
                               RemoteIssueLinkService remoteIssueLinkService,
                               com.atlassian.event.api.EventPublisher eventPublisher)
Method Detail

doValidation

protected void doValidation()
Validate that the user has permission to link issues, and that the comment field is valid. Override this method to perform validation specific to the concrete action. It is recommended that this method be invoked by any overriding methods.

Overrides:
doValidation in class AbstractCommentableIssue

doDefault

public String doDefault()
                 throws Exception
The "default" command. Checks that the current issue exists and that the user has permission to view it.

Overrides:
doDefault in class webwork.action.ActionSupport
Returns:
INPUT if success, ERROR if otherwise
Throws:
Exception

createLink

public RemoteIssueLinkService.RemoteIssueLinkResult createLink()
Creates the link and publishes an event for the creation

Returns:
create result

createLink

public RemoteIssueLinkService.RemoteIssueLinkResult createLink(RemoteIssueLinkService.CreateValidationResult validationResult)
Creates the link and publishes an event for the creation

Parameters:
validationResult - the CreateValidationResult to be used to create the link
Returns:
create result

isValidToView

public boolean isValidToView()
Returns true if the contents of the action should be shown, false if otherwise.

Returns:
true if the contents of the action should be shown, false if otherwise

getRedirectUrl

protected String getRedirectUrl()
Returns the URL to redirect to after successfully creating the issue link.

Returns:
the URL to redirect to after successfully creating the issue link

handleCredentialsRequired

protected void handleCredentialsRequired()

isRequiresCredentials

public boolean isRequiresCredentials()

getDisplayParams

public Map<String,Object> getDisplayParams()
Overrides:
getDisplayParams in class AbstractCommentableIssue

getCommentSectionHtml

public String getCommentSectionHtml()

getModifierKey

public static String getModifierKey()

getKeyboardShortcutContext

public static KeyboardShortcutManager.Context getKeyboardShortcutContext()


Copyright © 2002-2013 Atlassian. All Rights Reserved.