Eclipseplugins
JiraVariableResolver.java
1 package com.proalpha.pds.gitutils.mylyn.templates;
2 
3 import org.eclipse.core.runtime.CoreException;
4 import org.eclipse.jface.text.templates.TemplateContext;
5 import org.eclipse.jface.text.templates.TemplateVariableResolver;
6 import org.eclipse.mylyn.tasks.core.ITask;
7 import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
8 import org.eclipse.mylyn.tasks.core.data.TaskData;
9 import org.eclipse.mylyn.tasks.ui.TasksUi;
10 
11 public abstract class JiraVariableResolver extends TemplateVariableResolver {
12 
13  /*
14  * Die ATTRIBUTE_ID kann gefunden werden indem man beim Debuggen
15  * "taskData.getRoot().getAttributes()" aufruft. Hier weren alle moeglichen
16  * Attributes angezeigt. Zusaetlich kann man das JSON eines Issue mit einem REST
17  * Aufruf betrachten, falls das gewuenschte Feld ein customfield ist, dann ist
18  * die ATTRIBUTE_ID="attribute.jira.custom::customfield_INDEX".
19  */
20  public String ATTRIBUTE_ID = "";
21 
22  @Override
23  protected String resolve(TemplateContext context) {
24 
25  ITask activeTask = TasksUi.getTaskActivityManager().getActiveTask();
26  if (activeTask == null) {
27  return "NO ACTIVE TASK";
28  }
29 
30  String pa_TaskAttributeValue = "";
31  try {
32 
33  TaskData taskData = TasksUi.getTaskDataManager().getTaskData(activeTask);
34  TaskAttribute activeAttribute = taskData.getRoot().getAttribute(ATTRIBUTE_ID);
35  pa_TaskAttributeValue = activeAttribute.getValue();
36 
37  } catch (CoreException e1) {
38  e1.printStackTrace();
39  }
40 
41  //Fuer Attribute mit Auswahl aus einer Kombobox kann auch der Wert -1 entstehen.
42  if (pa_TaskAttributeValue.isEmpty() || pa_TaskAttributeValue.equals("-1")) {
43  return "VALUE NOT SET";
44  }
45 
46  return pa_TaskAttributeValue;
47  }
48 
49 }