Jump to: navigation, search

Difference between revisions of "Adding new advanced chart types in BIRT"

(Abstract)
(Availuable Features)
 
(16 intermediate revisions by 2 users not shown)
Line 11: Line 11:
 
Mentor: Ahti Kitsik  
 
Mentor: Ahti Kitsik  
  
 +
Full proposal: [[Adding new advanced chart types in BIRT_Full Proposal | Proposal]]
 
== Abstract ==
 
== Abstract ==
  
Line 24: Line 25:
 
=== Donut chart ===
 
=== Donut chart ===
 
This chart will be implemented based on the existing pie chart.
 
This chart will be implemented based on the existing pie chart.
* example: [[http://www.techiequest.com/pic/amcharts.jpg]]
+
* example: [http://www.techiequest.com/pic/amcharts.jpg]
* bugzilla: [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=178313]]
+
* bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=178313]
  
 
=== Radar diagram ===
 
=== Radar diagram ===
 
This chart shows data information grouped by categories.  
 
This chart shows data information grouped by categories.  
* example: [[http://en.wikipedia.org/wiki/Radar_chart]]
+
* example: [http://en.wikipedia.org/wiki/Radar_chart]
* bugzilla: [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=178354]]
+
* bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=178354]
  
 
=== Venn diagram ===
 
=== Venn diagram ===
 
This chart shows similarities and differences of several datasets.
 
This chart shows similarities and differences of several datasets.
* example: [[http://en.wikipedia.org/wiki/Venn_diagram]]
+
* example: [http://en.wikipedia.org/wiki/Venn_diagram]
* bugzilla: [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=213395]]
+
* bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=213395]
  
 
== Project plan ==
 
== Project plan ==
 +
Here you can find the timeline for this project including all milestones.
  
=== current status ===
+
{| class="wikitable" style="text-align:center"
* Reading lots of documents about BIRT itself
+
|- style="background:#efefef;"
* Have a deeper look at BIRT's chart engine
+
! Milestone !! Date !! Description
* Writing first eclipse plugins presenting simple chart
+
|- style="background:lightgrey;"
 +
! M1
 +
| June 07
 +
|align="left"| Getting organizational things done like SVN repository etc.
 +
|- style="background:lightgrey;"
 +
! M2
 +
| June 10
 +
|align="left"| Creating base frame for all three chart types. <br /> Interface and associated implementation class
 +
|- style="background:lightgrey;"
 +
! M3
 +
| June 14
 +
|align="left"| Clear which classes of the existing BIRT source have to be patched
 +
|- style="background:lightgrey;"
 +
! M4
 +
| July 5
 +
|align="left"| Implementing donut chart based on the existing pie chart
 +
|- style="background:lightgrey;"
 +
! M5
 +
| July 13
 +
|align="left"| Testing donut chart - 'Pencil down' for midterm evaluation
 +
|- style="background:lightgrey;"
 +
! M6
 +
| July 26
 +
|align="left"| Implementing radar chart
 +
|- style="background:lightgrey;"
 +
! M7
 +
| August 10
 +
|align="left"| Implementing venn diagram
 +
|- style="background:lightgrey;"
 +
! Pencil down
 +
| August 17
 +
|align="left"| Integrating source into BIRT source, do final documentation
 +
|}
  
=== further steps ===
+
== Availuable Features ==
* Planning architecture of new chart types
+
* First chart type will be donut (''based on pie chart'')
+
* Primary goal will be VENN diagram
+
  
=== milestones ===
+
{| style="width:75%;
TDB
+
|- valign="top"
 +
| '''M1 <br />SVN Repository'''
 +
|| Source code is hosted at google code for eclipse foundation project. Later it will be integrated in BIRT. <br />
 +
[http://code.google.com/p/eclipse-soc/source/browse/#svn/trunk/2009-newBirtCharts Here] you can find the repository and additional information.
 +
 
 +
----
 +
 
 +
|- valign="top"
 +
| '''M2 <br/>Base frame'''
 +
|| Source contains interfaces and implementation classes for the base series definition of all three types. <br />
 +
TODO: Check howto write plugin in a way, it is totally independent and can be connected with extension points.
 +
 
 +
|- valign="top"
 +
| '''new chart types '''
 +
|| [[Image:newTypePackages.png| Set of the chart type classes.]]
 +
 
 +
----
 +
 
 +
|- valign="top"
 +
| '''M3 <br/>Rendering classes'''
 +
|| This is a list of classes which has to be implemented. Cause the first chart - donut chart - is based on the existing pie chart, the list shows the existing classes of the pie chart.
 +
 
 +
* org.eclipse.birt.chart.ui.swt.series.PieSeriesUIProvider
 +
* org.eclipse.birt.chart.ui.swt.type
 +
* org.eclipse.birt.chart.ui.swt.wizard.format.popup.series.PieTitleSheet
 +
* org.eclipse.birt.chart.ui.swt.series
 +
* org.eclipse.birt.chart.render.Pie
 +
* org.eclipse.birt.chart.render.
 +
----
 +
 
 +
|- valign="top"
 +
| '''M3 <br/>Donut Chart'''
 +
|| A few screenshots of the implemented donut chart. Functions are the same as the already existing Pie chart.
 +
 
 +
|- valign="top"
 +
| Donut chart compilation
 +
||[[Image:BIRT DonutCompilation.jpg| Donut Compilation]]<br/>
 +
 
 +
 
 +
----
 +
 
 +
|- valign="top"
 +
| '''M3 <br/>Venn diagram'''
 +
|| '''A few screenshots of the implemented venn diagram''' <br\>
 +
There are a few restrictions:
 +
* restricted to three datasets
 +
* datasets have to be lists of datatypes
 +
 
 +
There are a few featues:
 +
* Intersection color will be generated of additive or subtractive colormixing.
 +
* Intersection areas in charts with three datasets that aren't real will be colored in a transparent way.
 +
 
 +
|- valign="top"
 +
| 2D Venn with 3 Datasets
 +
||[[Image:BIRT 2dVennWithoutIntersectionCompilation.jpg| 2D Venn without intersection compilation]]
 +
 
 +
|- valign="top"
 +
| 2D Venn with one intersection
 +
||[[Image:BIRT 2dVennWithOneIntersectionCompilation.jpg| 2D Venn with one intersection]]
 +
 
 +
|- valign="top"
 +
| 2D Venn with two intersections
 +
||[[Image:BIRT 2dVennWithTwoIntersectionCompilation.jpg| 2D Venn with two intersections]]
 +
 
 +
|- valign="top"
 +
| 2D Venn with three intersections
 +
||[[Image:BIRT 2dVennWithThreeIntersectionCompilation.jpg| 2D Venn with three intersections]]
 +
 
 +
|- valign="top"
 +
| 2D Venn with 3 Datasets
 +
||[[Image:BIRT-VennAdditveWheel.png]]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
|}
 +
 
 +
=== Next steps ===
 +
 
 +
Fixing dataset implementation
 +
labeling datasets
  
 
== Comments, suggestions, ideas ==
 
== Comments, suggestions, ideas ==
  
I'm proud to take part in GSoC 2009. As it is my first project I'm happy about every help. <br>
+
I'm proud to take part in GSoC 2009. As it is my first project I'm happy about every help. <br />  
 
So feel free writing every comments you have. :)
 
So feel free writing every comments you have. :)

Latest revision as of 17:48, 16 August 2009

My project for this year's Google Sommer of Code will be to contribute new chart types for the BIRT project.

Personal Details

Name: Karsten Knese

E-mail: Karsten.Knese@web.de

Skype: kook1987

Mentor: Ahti Kitsik

Full proposal: Proposal

Abstract

As there were some request about new chart types for BIRT the goal of my project is to add three new chart types.

  • donut chart
  • venn diagram
  • radar diagram

Description

BIRT already provides several chart types for designing customs reports. I found some open bugs and help-wanted entries in bugzilla.

Donut chart

This chart will be implemented based on the existing pie chart.

Radar diagram

This chart shows data information grouped by categories.

Venn diagram

This chart shows similarities and differences of several datasets.

Project plan

Here you can find the timeline for this project including all milestones.

Milestone Date Description
M1 June 07 Getting organizational things done like SVN repository etc.
M2 June 10 Creating base frame for all three chart types.
Interface and associated implementation class
M3 June 14 Clear which classes of the existing BIRT source have to be patched
M4 July 5 Implementing donut chart based on the existing pie chart
M5 July 13 Testing donut chart - 'Pencil down' for midterm evaluation
M6 July 26 Implementing radar chart
M7 August 10 Implementing venn diagram
Pencil down August 17 Integrating source into BIRT source, do final documentation

Availuable Features

M1
SVN Repository
Source code is hosted at google code for eclipse foundation project. Later it will be integrated in BIRT.

Here you can find the repository and additional information.


M2
Base frame
Source contains interfaces and implementation classes for the base series definition of all three types.

TODO: Check howto write plugin in a way, it is totally independent and can be connected with extension points.

new chart types Set of the chart type classes.
M3
Rendering classes
This is a list of classes which has to be implemented. Cause the first chart - donut chart - is based on the existing pie chart, the list shows the existing classes of the pie chart.
  • org.eclipse.birt.chart.ui.swt.series.PieSeriesUIProvider
  • org.eclipse.birt.chart.ui.swt.type
  • org.eclipse.birt.chart.ui.swt.wizard.format.popup.series.PieTitleSheet
  • org.eclipse.birt.chart.ui.swt.series
  • org.eclipse.birt.chart.render.Pie
  • org.eclipse.birt.chart.render.

M3
Donut Chart
A few screenshots of the implemented donut chart. Functions are the same as the already existing Pie chart.
Donut chart compilation Donut Compilation



M3
Venn diagram
A few screenshots of the implemented venn diagram <br\>

There are a few restrictions:

  • restricted to three datasets
  • datasets have to be lists of datatypes

There are a few featues:

  • Intersection color will be generated of additive or subtractive colormixing.
  • Intersection areas in charts with three datasets that aren't real will be colored in a transparent way.
2D Venn with 3 Datasets 2D Venn without intersection compilation
2D Venn with one intersection 2D Venn with one intersection
2D Venn with two intersections 2D Venn with two intersections
2D Venn with three intersections 2D Venn with three intersections
2D Venn with 3 Datasets BIRT-VennAdditveWheel.png



Next steps

Fixing dataset implementation labeling datasets

Comments, suggestions, ideas

I'm proud to take part in GSoC 2009. As it is my first project I'm happy about every help.
So feel free writing every comments you have. :)