Difference between revisions of "Chart2"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Open Technical Issues in the New Chart)
 
(182 intermediate revisions by 6 users not shown)
Line 1: Line 1:
''Chart2'' is a sub-project of the [[OpenOffice.org]] [http://graphics.openoffice.org/chart/chart.html Chart Project]. Our goal is to develop a new Chart component for (presumably) OOo 2.3.
+
{{ChartQuickLinks}}
  
Charts are used for visualizing data sets from e.g. spreadsheets by two and three dimensional diagrams. There are a lot of different two- and three-dimensional chart types you can choose from. This page gathers information about the new chart implementation of OpenOffice.org. It is especially written to help new comers to the process of developing in the new OOo chart module.
+
The Chart module was exchanged completely on the way to OpenOffice.org 2.3.
 +
This is the basis for further enhancements and long awaited features.
  
If you would like to participate, if you have comments or questions related to the chart you are welcome on the graphics mailing lists:  (users,dev,features,bugs,cvs)@graphics.openoffice.org. See also the section at the bottom of this page called [Some useful information].
+
This page documents ongoing work, implemented and still missing features. It also links to further useful information around the chart.
  
= Development in the New Chart =
+
== Helping with the Chart ==
  
As the information on how to compile the new chart and on how to develop in this project have become quite lengthy, they can be found now on separate pages:
+
[[Image:ProgrammingLanguage2s.png|frame|right|Example Chart made with OpenOffice.org 2.3 (ods-file see [[Image:ProgrammingLanguages.ods]])]]
  
* [[FAQ about Chart API Compatibility]] If you have problems with Macros or extensions that use the com.sun.star.chart API you may find answers or ask questions on this page.
+
=== Development ===
* [[Compiling the new chart module]]
+
* [[Developing for the new chart module]]
+
  
= Open Technical Issues in the New Chart =
+
If you are new to OpenOffice.org development have a look at the more general pages first:
 +
*[[Documentation/Building_Guide/Getting_the_source|  Getting the source code]]
 +
*[[Documentation/Building_Guide/Building_on_Windows| Building on Windows]]
 +
*[[Cpp_Coding_Standards|C++ Coding Standards]].
  
There still some architectural issues left that have to be solved. This section serves for showing those problems and showing the progress in finding solutions. The issues are now on a [[Open Technical Issue in Chart2|separate page]].
+
The file format used for OpenOffice.org is the ODF format.
 +
* [http://www.oasis-open.org/specs/index.php#opendocumentv1.1 ODF 1.1] is final.
 +
* The upcoming format ODF 1.2 is still in progress (look for the latest announcements and available documents [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office here]).
 +
* [[Chart2/Proposals| Proposals]]
  
= Why not implement everything in OOo? =
+
If you like to help developing the chart, you can find useful information at the following places:
 +
*[http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Charts/Charts Chart chapter in the Developers Guide]
 +
*[http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Charts Chart chapter in the BASIC Developers Guide]
 +
*[[FAQ about Chart API Compatibility]]
 +
*[http://api.openoffice.org/docs/common/ref/com/sun/star/chart/module-ix.html Published UNO API (com::sun::star::chart)]
 +
*[http://graphics.openoffice.org/chart/chart2codestructure.html Rough overview of the code Structure in module chart2]
 +
*[[Chart2/Open Technical Issue in Chart2|Notes on some technical issues]]
  
== Intro: External Programs ==
+
The module for the chart implementation is chart2. It is a submodule of the graphics project. The chart implementation makes heavy use of UNO (Universal Network Objects), thus it would be good to learn about [http://udk.openoffice.org/ UNO] first. The new chart does support a published stable UNO API [http://api.openoffice.org/docs/common/ref/com/sun/star/chart/module-ix.html com::sun::star::chart] for external use.
Implementing all these issues directly into OOo will be both difficult and unnecessary. It is not always pertinent to reinvent the wheel and I will present later a better solution.
+
There is also an internal API com::sun::star::chart2. The internal API is not published and is not guaranteed to be stable. It is subject to further changes - so don't count on it in scripts or something! Furthermore several things you can set with the internal API will not be saved by the application. So for stable work please use the published standard chart API com::sun::star::chart.
  
== DISADVANTAGES ==
+
If you have questions on the chart development please use the mailing list [http://openoffice.org/projects/graphics/lists dev@graphics.openoffice.org].
  
=== global disadvantages ===
+
To find a concrete task to work on, check the issue queries of open chart bugs and features. Maybe there is something that catches your interest:
* many resources are needed (coders, persons to test the new features, financial constraints and time delays)
+
* [http://openoffice.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=STARTED&bug_status=REOPENED&cf_bug_type=DEFECT&cf_bug_type=TASK&cf_bug_type=PATCH&columnlist=short_desc%2Ccf_bug_type&field-1-0-0=bug_status&field0-0-0=product&field0-0-1=short_desc&query_format=advanced&type-1-0-0=anyexact&type0-0-0=equals&type0-0-1=anywordssubstr&value-1-0-0=UNCONFIRMED%2CNEW%2CSTARTED%2CREOPENED%2CRESOLVED%2CVERIFIED&value0-0-0=Chart&value0-0-1=chart%20diagram&order=bugs.bug_id%20desc&query_based_on= Open chart bugs] (defects and tasks)
* code becomes more and more complex, more difficult to understand by new developers, more testing time needed
+
* [http://openoffice.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=STARTED&bug_status=REOPENED&cf_bug_type=FEATURE&cf_bug_type=ENHANCEMENT&columnlist=votes%2Cshort_desc%2Ccf_bug_type&field-1-0-0=bug_status&field0-0-0=product&field0-0-1=short_desc&query_format=advanced&type-1-0-0=anyexact&type0-0-0=equals&type0-0-1=anywordssubstr&value-1-0-0=UNCONFIRMED%2CNEW%2CSTARTED%2CREOPENED%2CRESOLVED%2CVERIFIED&value0-0-0=Chart&value0-0-1=chart%20diagram&order=bugs.bug_id%20desc&query_based_on= Requested chart features] (enhancements and features)
* most experienced coders work already on other open source projects; less availability for a new project
+
  
=== specific disadvantages ===
+
=== Testing ===
'''scripting''' (see later the ''asymptote'' program)
+
* most of the current implementation has very limited scripting support
+
* automation will therefore be difficult;
+
* few users will develop new macros/ enhance the existing functionality of ''Chart'' because they will need to learn a new scripting language and/or OOo code
+
  
'''NO scripting''' means ''new functionality'' must be '''hardcoded''' into the Chart module
+
You can help a lot with identifying new problems or verifying fixed and integrated issues!
* only users with advanced OOo knowledge will be able to do that
+
  
== ALTERNATIVES ==
+
[http://download.openoffice.org/next/ Download] the latest developer build and give it a try. When you find a bug please check whether someone else already did submit an issue for that problem. The following issue list can help you with the research:
The main idea is:
+
* to break the monolithic structure of ''Chart'' into various modules and
+
* export the functionality into various external packages;
+
** the new OXT extension architecture should ease this process;
+
  
A very '''good alternative''' is to do all advanced things with dedicated external software, when such free alternatives exist. Below are listed some existing programs suitable for this task: (see also ''Links'' section below)
+
* [http://openoffice.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=STARTED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&columnlist=votes%2Cshort_desc%2Ccf_bug_type&field-1-0-0=bug_status&field0-0-0=product&field0-0-1=short_desc&query_format=advanced&type-1-0-0=anyexact&type0-0-0=equals&type0-0-1=anywordssubstr&value-1-0-0=UNCONFIRMED%2CNEW%2CSTARTED%2CREOPENED%2CRESOLVED%2CVERIFIED&value0-0-0=Chart&value0-0-1=chart%20diagram&order=bugs.bug_id%20desc&query_based_on= Open chart issues].
** [http://sourceforge.net/projects/gnuplot/ ''gnuplot'']: powerful scientific package
+
* Or create your [http://openoffice.org/bugzilla/query.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=STARTED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&field-1-0-0=bug_status&field0-0-0=product&field0-0-1=short_desc&query_format=advanced&type-1-0-0=anyexact&type0-0-0=equals&type0-0-1=anywordssubstr&value-1-0-0=UNCONFIRMED%2CNEW%2CSTARTED%2CREOPENED%2CRESOLVED%2CVERIFIED&value0-0-0=Chart&value0-0-1=chart%20diagram own query].
** [http://sourceforge.net/projects/asymptote/ ''asymptote'']: powerful scripting capabilities
+
*** powerful descriptive vector graphics language for technical drawing
+
** [http://www.R-project.org R] (with over 500 packages):
+
*** extensive data visualization capabilities: see examples below for details;
+
*** also ideal for scripting;
+
** [http://www.ggobi.org/ ggobi]: data visualisation system for exploring high-dimensional data
+
*** see also the ''R-package'' [http://cran.r-project.org/src/contrib/Descriptions/rggobi.html rggobi]
+
** [http://rapid-i.com YALE]: a data mining application
+
*** for specialized data visualization techniques, see the [http://rapid-i.com/content/view/9/2/lang,en/ screenshots];
+
*** examples include: 2D and 3D scatter plots, the ''Self-Organising Maps (SOM)'' and many other advanced techniques
+
** [http://www.gnu.org/software/octave/ ''octave'']: a high level mathematical language
+
** various other packages, e.g. [http://freemind.sourceforge.net/wiki/extensions/freemind/appletwindow.php?browsemode_initial_map=http://freemind.sourceforge.net/wiki/images/f/f6/Freemind.mm&mm_title=Freemind.mm FreeMind] and many more, each suitable for some specific task.
+
  
== ADVANTAGES ==
+
If the problem is unknown you are welcome to [http://openoffice.org/bugzilla/enter_bug.cgi?product=Chart&component=ui&rep_platform=All&op_sys=All&cc=iha@openoffice.org submit a new issue]. Please describe only one problem per issue.
* '''New Features:''' once the external program is embedded into OOo, one can easily implement many new features (from the specific program) with '''minimal effort''' (see also ''Automation'')
+
Thanks a lot for your help!
* '''Advanced Solutions:''' dedicated programs offer more advanced solutions than any OOo implementation (or even that of competitive software)
+
* '''Resources:'''
+
** less resources needed
+
** programs are developed by their own groups,
+
** tested by appropriate folks (mostly proffesionals) and therefore
+
** NO major delays and less propensity for bugs
+
** new features are implemented more easily (we at OOo need only make a new Menu/Gui and paste the correct syntax/call to the external program)
+
* '''CODE:''' smaller code, smaller program
+
** only users that need that option will run it (or download it; see also the note below)
+
** most other users will not have it installed, therefore OOo should also run faster; not so many resources loaded
+
* '''Automation:'''
+
** some of these programs come with very powerful scripting capabilities, e.g. ''gnuplot'', ''asymptote'', ''R-software''
+
** the previous programs are used by millions of users, many of whom already know the scripting/ programming language, and therefore do NOT need to learn a new language (see downloads on sourceforge.net for the first 2 programs)
+
** easy creation of new macros/scripts; no need to hardcode new functionality into OOo
+
  
 +
== Implemented Chart Features ==
  
Another strong reason why external software is a better alternative:
+
* [[Chart2/Features3.3  | Additional Features in OOo 3.3 ]]
If the coders aren't working with people that know how to do numerical methods
+
* [[Chart2/Features3.2  | Additional Features in OOo 3.2 ]]
then what are the odds that it'll even come out correctly [''quote from a user'']
+
* [[Chart2/Features3.1  | Additional Features in OOo 3.1 ]]
 +
* [[Chart2/Features3.0  | Additional Features in OOo 3.0 ]]
 +
* [[Chart2/Features2.4  | Additional Features in OOo 2.4 ]]
 +
* [[Chart2/Features2.3  | Additional Features in OOo 2.3 ]]
  
 
+
== Open Chart Features ==
A special note:
+
* because some licenses may not be compatible with OOo (although they are still open source), I '''DO NOT MEAN''' to include the code in OOo
+
* what I mean is a general mechanism in place that allows OOo to '''communicate''' (bidirectioanly) with the external software
+
* instruct users what external programs (extensions) do exist and where to find them (provide url)
+
* allow users to easily access the functionality of external programs through OOo Menus (or functions)
+
 
+
 
+
== Links ==
+
 
+
see also:
+
* statistical wiki page: http://wiki.services.openoffice.org/wiki/Statistical_Data_Analysis_Tool
+
* original list: http://graphics.openoffice.org/files/documents/12/3278/List_of_whished_enhancements_for_Charts.odt
+
 
+
'''External Software'''
+
* R-project: http://www.R-project.org/
+
* gnuplot: http://www.gnuplot.info/
+
* GRASS: http://grass.itc.it/
+
* gstat: http://www.gstat.org/index.html
+
 
+
'''External Chart Types examples'''
+
* '''R-Gallery:''' very large collection of various chart types, see http://addictedtor.free.fr/graphiques/allgraph.php and http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=2
+
 
+
 
+
 
+
= List of whished enhancements for Charts =
+
 
+
This list is based primarily on the [http://graphics.openoffice.org/files/documents/12/3278/List_of_whished_enhancements_for_Charts.odt ''List of wished enhancements for Charts''].
+
 
+
* [[Chart2/Introduction    | Introduction ]]
+
 
* [[Chart2/ChartTypes      | Chart-Types ]]
 
* [[Chart2/ChartTypes      | Chart-Types ]]
 
* [[Chart2/Legend          | Legend ]]
 
* [[Chart2/Legend          | Legend ]]
Line 120: Line 70:
 
* [[Chart2/ChartAnnotation | Chart annotation ]]
 
* [[Chart2/ChartAnnotation | Chart annotation ]]
 
* [[Chart2/Miscellaneous  | Miscellaneous ]]
 
* [[Chart2/Miscellaneous  | Miscellaneous ]]
* [[Chart2/KillerApps      | Killer apps from other Chart softwares :-) ]]
 
  
= Features =
+
== Basic Macro Examples ==
* [[Chart2/Features2.3  | Features in OOo 2.3 ]]
+
 
* [[Chart2/Features2.4  | Features in OOo 2.4 ]]
+
* [[Chart2/ChangeTitleFormattingForAllChartsInACalc | Change title formatting for all charts in a spreadsheet ]]
* [[Chart2/Features2.x  | Features in OOo 2.x ]]
+
 
* [[Chart2/Features3.0  | Features in OOo 3.0 ]]
+
* [[Chart2/GetPositionOfAChart | Get the position of a chart within a spreadsheet ]]
 +
 
 +
* [[API/Samples/StarBasic/Impress/Insert_a_Chart | Create Chart in a presentation document ]]
  
 +
* [http://www.ooowiki.de/DiagrammExport Export Charts from a Calc spreadsheet ]
  
= Documentation =
+
Also have a look at the [http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Charts BASIC Developers Guide]!
The application help introduces an own module "Chart" in the top left drop-down listbox of Help Viewer.
+
Main issue for documentation is http://www.openoffice.org/issues/show_bug.cgi?id=60360
+
  
= Some useful information =
+
== Contact ==
  
* Chart Project Page: http://graphics.openoffice.org/chart/chart.html
+
* Development Contact: [[User:Iha|iha]]
* Chart Specifications: http://specs.openoffice.org/chart/index.html
+
* IRC channel: [irc://freenode/chart2.openoffice.org #chart2.openoffice.org] on freenode
+
* OOo Sun Developers Weblog: [http://blogs.sun.com/GullFOSS GullFOSS] (which also shows up at [http://planet.go-ooo.org/ Planet OpenOffice.org])
+
  
 
[[Category:Chart2]]
 
[[Category:Chart2]]
 
[[Category:Source directories]]
 
[[Category:Source directories]]

Latest revision as of 16:28, 6 June 2011


The Chart module was exchanged completely on the way to OpenOffice.org 2.3. This is the basis for further enhancements and long awaited features.

This page documents ongoing work, implemented and still missing features. It also links to further useful information around the chart.

Helping with the Chart

Example Chart made with OpenOffice.org 2.3 (ods-file see File:ProgrammingLanguages.ods)

Development

If you are new to OpenOffice.org development have a look at the more general pages first:

The file format used for OpenOffice.org is the ODF format.

  • ODF 1.1 is final.
  • The upcoming format ODF 1.2 is still in progress (look for the latest announcements and available documents here).
  • Proposals

If you like to help developing the chart, you can find useful information at the following places:

The module for the chart implementation is chart2. It is a submodule of the graphics project. The chart implementation makes heavy use of UNO (Universal Network Objects), thus it would be good to learn about UNO first. The new chart does support a published stable UNO API com::sun::star::chart for external use. There is also an internal API com::sun::star::chart2. The internal API is not published and is not guaranteed to be stable. It is subject to further changes - so don't count on it in scripts or something! Furthermore several things you can set with the internal API will not be saved by the application. So for stable work please use the published standard chart API com::sun::star::chart.

If you have questions on the chart development please use the mailing list dev@graphics.openoffice.org.

To find a concrete task to work on, check the issue queries of open chart bugs and features. Maybe there is something that catches your interest:

Testing

You can help a lot with identifying new problems or verifying fixed and integrated issues!

Download the latest developer build and give it a try. When you find a bug please check whether someone else already did submit an issue for that problem. The following issue list can help you with the research:

If the problem is unknown you are welcome to submit a new issue. Please describe only one problem per issue. Thanks a lot for your help!

Implemented Chart Features

Open Chart Features

Basic Macro Examples

Also have a look at the BASIC Developers Guide!

Contact

  • Development Contact: iha
Personal tools