View Javadoc

1   package com.atlassian.jira.issue.action;
2   
3   import java.util.HashMap;
4   import java.util.Map;
5   
6   import org.apache.log4j.Category;
7   import org.apache.velocity.exception.VelocityException;
8   
9   import com.atlassian.jira.ManagerFactory;
10  import com.atlassian.jira.mail.JiraMailQueueUtils;
11  import com.atlassian.jira.plugin.JiraResourcedModuleDescriptor;
12  import com.atlassian.jira.plugin.issuetabpanel.IssueTabPanelModuleDescriptor;
13  import com.atlassian.jira.web.action.JiraWebActionSupport;
14  import com.atlassian.velocity.VelocityManager;
15  import com.opensymphony.user.User;
16  
17  /**
18   * Provides a Generic Action for Plugins
19   * 
20   * @author Kaamelot - 2006
21   * @history - 08 Nov. 2006 - Class Creation
22   * 
23   */
24  public class GenericAction extends GenericResourceAction {
25  
26  	private static final Category log = Category.getInstance(GenericAction.class);
27  
28  	protected Map startparams;
29  
30  	public GenericAction(User remoteUser, IssueTabPanelModuleDescriptor descriptor, Map _startParams) {
31  		super(descriptor);
32  		this.startparams = _startParams;
33  	}
34  
35  	public String getHtml(JiraWebActionSupport webAction) {
36  		try {
37  			VelocityManager velocityManager = ManagerFactory.getVelocityManager();
38  			Map params = new HashMap();
39  			params.put("action", webAction);
40  			populateVelocityParams(params);
41  			JiraMailQueueUtils.getContextParamsBody(params);
42  			return velocityManager.getBody(getTemplateDirectory(), getTemplateName(), params);
43  		} catch (VelocityException e) {
44  			log.error(e, e);
45  			return "Velocity template generation failed.";
46  		}
47  	}
48  
49  	protected void populateVelocityParams(Map params) {
50  		super.populateVelocityParams(params);
51  		params.putAll(startparams);
52  	}
53  
54  }