如何开发显示图表的JIRA插件?

时间:2011-05-18 22:09:35

标签: jira-plugin

我是JIRA World的新手,我的任务是开发一个显示图表(馅饼,直方图等)的JIRA插件。用户可以选择搜索条件和图表类型, 并且用户应该能够保存这些图表(Word / PDF)。

我不知道是否应该开发报告插件并使用JFreeChart绘制图表或开发图表插件(我还没有看到任何图表插件的例子)。我已经对报告插件做了一些研究,我还没有找到一个示例演示如何使用JFreechart!另外我还没有找到任何示例演示如何使用jasperReport(或其他工具)生成word或PDF报告。

用户应该从界面(管理,家庭等)

这样的标签访问插件

要显示的KPI(关键绩效指标)示例:

  • 重新解决问题所花费的平均时间
  • 仍有问题的数量

PS:我正在使用JIRA 4.3.3

6 个答案:

答案 0 :(得分:2)

有一个JIRA插件可以将图表导出到Word,它涵盖了您想要做的部分内容。 https://marketplace.atlassian.com/plugins/com.clariostechnology.officecharts.officecharts

另请参阅Intelligent Reporter,它提供了更多格式化图表的选项,并允许您将Word文件用作模板并填写图表和其他数据。

https://marketplace.atlassian.com/plugins/com.clariostechnology.intelligentreports

答案 1 :(得分:2)

尝试阅读伟大着作" Creating a pie chart in JIRA"中的文章JIRA 5.x Development Cookbook。作者:Jobin Kuruvilla。

最重要的是填充数据集,该数据集将用于生成所需的图表。考虑该书中的示例,该图显示了该插件的Java端:

public Chart generateChart(JiraAuthenticationContext authenticationContext, int width, int height) {
    try {
      final Map<String, Object> params = new HashMap<String, Object>();
      // Create Dataset
      DefaultPieDataset dataset = new DefaultPieDataset();

      dataset.setValue("One", 10L);
      dataset.setValue("Two", 15L);

      final ChartHelper helper = new PieChartGenerator(dataset, authenticationContext.getI18nHelper()).generateChart();
      helper.generate(width, height);

      params.put("chart", helper.getLocation());
      params.put("chartDataset", dataset);
      params.put("imagemap", helper.getImageMap());
      params.put("imagemapName", helper.getImageMapName());
      params.put("width", width);
      params.put("height", height);

      return new Chart(helper.getLocation(), helper.getImageMap(), helper.getImageMapName(), params);

    } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException("Error generating chart", e);
    }
}

和用于此目的的速度模板:

#if ($chart)
    #if ($imagemap)
        $imagemap
    #end
    <p class="report-chart">
        <img src='$baseurl/charts?filename=$chart' border='0' #if ($imagemap) usemap="\#$imagemapName" #end/>
    </p>
#end

这是最基本的例子。另外,请查看ChartFactoryChartUtils界面,以深入了解如何创建各种类型的图表。

答案 2 :(得分:1)

您不需要编写插件来执行此操作 - 这些是JIRA中的本机功能。如果你想写一个插件我会使用JFreeChart。请参阅JIRA Charting Plugin和JQL过滤器以获取两个列出的KPI。

答案 3 :(得分:1)

速度:

    #set($cht = $chart)
    #if ($cht)
    #if ($cht.imageMap)
    $cht.imageMap
    #end
    <p class="report-chart">
        <img src='$baseurl/charts?filename=$chart.location' border='0'
        #if ($cht.imageMap) usemap="\#$cht.imageMapName" #end/>
    </p>
    #end

webwork:

@SuppressWarnings("unused")
public Chart getChart() {
    JiraAuthenticationContext authenticationContext = ComponentAccessor.getJiraAuthenticationContext();

     final int CHART_WIDTH = 300;
     final int CHART_HEIGHT = 300;

    try {
        final Map<String, Object> params = new HashMap<String, Object>();
        // Create Dataset
        DefaultPieDataset dataset = new DefaultPieDataset();

        dataset.setValue("One", 10L);
        dataset.setValue("Two", 15L);

        final I18nBean i18nBean = new I18nBean(authenticationContext.getUser().getDirectoryUser());

        final ChartHelper helper = new PieChartGenerator(dataset, i18nBean).generateChart();
        helper.generate(CHART_WIDTH, CHART_HEIGHT);

        params.put("chart", helper.getLocation());
        params.put("chartDataset", dataset);
        params.put("imagemap", helper.getImageMap());
        params.put("imagemapName", helper.getImageMapName());
        params.put("width", CHART_WIDTH);
        params.put("height", CHART_HEIGHT);

        Chart ch = new Chart(helper.getLocation(), helper.getImageMapHtml(), helper.getImageMapName(), params);
        return ch;

    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException("Error generating chart", e);
    }
}

结果:

enter image description here

答案 4 :(得分:0)

通过使用Better Excel Plugin 导出JIRA数据,在Excel中生成图表,从而为插件编程节省时间,同时为您提供令人难以置信的功能和灵活性的最佳选择。

它是如何运作的?

  1. create a template XLSX file使用特殊占位符,标记实际数据。
  2. 使用Excel中的所有图表功能,从中定义所谓的命名范围和generate (empty) charts。 (由于MS Excel仍然是最通用和最广泛使用的数据可视化工具,几乎可以保证您的用例得到支持,您可以通过Google搜索网络获得大量帮助。)
  3. 当您导出此模板时,附加组件将使用您的问题数据和图表“唤醒”填充指定范围!
  4. 最终结果可能如下所示(在自己的工作表中):

    enter image description here

答案 5 :(得分:-1)

请参阅本教程,了解绘制各种类型的图表以可视化JIRA数据http://www.midori.hu/products/jira-pdf-view-plugin/documentation/charts

这里解释的技术依赖于在简洁的Groovy脚本中捕获自定义KPI计算逻辑,使用事实上的标准JFreeChart渲染图表,所有这些都由我们的JIRA PDF View插件支持。

enter image description here

(Discl:提到的插件是我们商业支持的软件。)