View Javadoc

1   package com.atlassian.jira.web.dwr;
2   
3   import org.apache.log4j.Logger;
4   import org.ofbiz.core.entity.GenericValue;
5   
6   import com.atlassian.jira.bc.manageable.search.ManageableAsProjectPickerSearchService;
7   import com.atlassian.jira.config.properties.ApplicationProperties;
8   import com.atlassian.jira.security.JiraAuthenticationContext;
9   import com.atlassian.jira.util.DelimeterInserter;
10  import com.opensymphony.util.TextUtils;
11  
12  public class AjaxManageableAsProjectPicker extends AbstractAjaxPicker {
13  	private static final Logger log = Logger.getLogger(AjaxManageableAsProjectPicker.class);
14  
15  	/**
16  	 * The bean AjaxManageableEntityPicker is instantiated by the DWR pico create in response to a DWR request
17  	 * 
18  	 * @param authContext
19  	 *           the Jira authentication context
20  	 * @param service
21  	 *           the business component that does issue searching
22  	 * @param applicationProperties
23  	 *           JIRA app properties
24  	 */
25  	public AjaxManageableAsProjectPicker(JiraAuthenticationContext _authContext, ManageableAsProjectPickerSearchService _service, ApplicationProperties _applicationProperties) {
26  		super(_authContext, _service, _applicationProperties);
27  	}
28  
29  	/*
30  	 * We use direct html instead of velocity to ensure the AJAX lookup is as fast as possible
31  	 */
32  	protected String formatEntity(String fieldName, GenericValue _gv, String query) // , boolean canShoweEmailAddresses)
33  	{
34  
35  		DelimeterInserter delimeterInserter = new DelimeterInserter("<b>", "</b>",false);
36  		// delimeterInserter.setConsideredWhitespace("-_/\\,.+=&^%$#*@!~`'\":;<>");
37  
38  		String[] terms = { query };
39  
40  		String id = TextUtils.htmlEncode(_gv.get("id").toString());
41  		String diId = delimeterInserter.insert(TextUtils.htmlEncode(id), terms);
42  		String diShortDescription = delimeterInserter.insert(TextUtils.htmlEncode(_gv.getString("shortDescr")), terms);
43  		String diDescription = delimeterInserter.insert(TextUtils.htmlEncode(_gv.getString("description")), terms);
44  
45  		StringBuffer sb = new StringBuffer();
46  		sb.append("<div ");
47  		sb.append(getElementId(fieldName, "i", TextUtils.htmlEncode(id)));
48  		sb.append("class=\"yad\" >");
49  
50  		sb.append("[").append(diId).append("]&nbsp;-&nbsp;").append(diShortDescription).append("&nbsp;-&nbsp;").append(diDescription);
51  		sb.append("</div>");
52  
53  		return sb.toString();
54  	}
55  
56  }