Difference between revisions of "Chart2"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(306 intermediate revisions by 14 users not shown)
Line 1: Line 1:
''Chart2'' is a sub-project of the [http://graphics.openoffice.org/chart/chart.html OpenOffice.org Chart Project]. Our goal is to develop a new Chart component for (presumably) OOo 2.6.
+
{{ChartQuickLinks}}
  
 +
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.
  
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 developping in the new OOo chart module.
+
This page documents ongoing work, implemented and still missing features. It also links to further useful information around the chart.
  
If you would like to participate, if you have comments or questions related to the chart you are welcome on the graphics mailinglists:  (users,dev,features,bugs,cvs)@graphics.openoffice.org. See also the section at the bottom of this page called [Some useful information].
+
== Helping with the Chart ==
  
== Compiling the new chart module ==
+
[[Image:ProgrammingLanguage2s.png|frame|right|Example Chart made with OpenOffice.org 2.3 (ods-file see [[Image:ProgrammingLanguages.ods]])]]
  
The first step anyone need to achieve before starting to develop on the chart module
+
=== Development ===
is compiling OpenOffice.org with the needed modifications for the new chart module.
+
OpenOffice.org provides two main ways to compile it : the "Vanilla" way and the
+
"OOoBuild" way. Let's explain what they are and the differences between those two
+
ways.
+
  
=== Compiling OpenOffice.org : the theory ===
+
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]].
  
==== Vanilla ====
+
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]]
  
Vanilla is the "standard" way to compile OOo. To compile OOo the "Vanilla" way,
+
If you like to help developing the chart, you can find useful information at the following places:
you only need to download the sources, unzip them, and follow the instructions given
+
*[http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Charts/Charts Chart chapter in the Developers Guide]
on the page [Add a link to the build steps from]. We will give Chart-specific details
+
*[http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Charts Chart chapter in the BASIC Developers Guide]
about this in the following sections.
+
*[[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]]
  
==== OOoBuild ====
+
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.
 +
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.
  
To make it simple, OOoBuild is a "wrapper" around the OpenOffice.org build process
+
If you have questions on the chart development please use the mailing list [http://openoffice.org/projects/graphics/lists dev@graphics.openoffice.org].
to make compiling OOo more straight-forward. Some of the enhancements added are :
+
  
* patches for known compiling problems
+
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:
* integration with "[[ccache]]" and "[[icecream]]" to speed-up the process
+
* [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)
* linux distribution specific compiling steps (specific splash screen for Fedora...)
+
* [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)
  
So, to compile OOo with OOoBuild, just just need to download OOoBuild and put the
+
=== Testing ===
OOo standard sources in a specific directory.
+
  
=== Compiling OpenOffice.org : the practice ===
+
You can help a lot with identifying new problems or verifying fixed and integrated issues!
  
==== Commmon steps ====
+
[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:
  
===== dependencies =====
+
* [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].
 +
* 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].
  
First of all before starting to compile anything, you will need to install all the
+
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.
dependencies and tools needed for the compiling steps. On the Tools project page,
+
Thanks a lot for your help!
you should find all the information on the "Building the source" section :
+
  
http://tools.openoffice.org/
+
== Implemented Chart Features ==
  
There, you should read the different sub-sections, they will give you a nice
+
* [[Chart2/Features3.3  | Additional Features in OOo 3.3 ]]
introduction on how everything works. You should also notice that the steps are
+
* [[Chart2/Features3.2  | Additional Features in OOo 3.2 ]]
different on each OS.
+
* [[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 ]]
  
==== Vanilla ====
+
== Open Chart Features ==
 +
* [[Chart2/ChartTypes      | Chart-Types ]]
 +
* [[Chart2/Legend          | Legend ]]
 +
* [[Chart2/DataLabels      | Data Labels ]]
 +
* [[Chart2/Axis            | Axis ]]
 +
* [[Chart2/ChartFormatting | Chart formatting ]]
 +
* [[Chart2/TrendLines      | Trend lines and error bars ]]
 +
* [[Chart2/Range          | Range and data series ]]
 +
* [[Chart2/ChartAnnotation | Chart annotation ]]
 +
* [[Chart2/Miscellaneous  | Miscellaneous ]]
  
===== Getting the sources =====
+
== Basic Macro Examples ==
  
====== Introduction ======
+
* [[Chart2/ChangeTitleFormattingForAllChartsInACalc | Change title formatting for all charts in a spreadsheet ]]
  
Once you have all the dependencies installed, you will need to download the sources
+
* [[Chart2/GetPositionOfAChart | Get the position of a chart within a spreadsheet ]]
of OOo. When working on a specific cws (for us, the "chart2mst3" cws) you will need
+
to follow two steps :
+
  
* downloading the OOo sources at a specific milestone
+
* [[API/Samples/StarBasic/Impress/Insert_a_Chart | Create Chart in a presentation document ]]
* downloading the specific modifications for the cws from the repository
+
  
====== Download the milestone ======
+
* [http://www.ooowiki.de/DiagrammExport Export Charts from a Calc spreadsheet ]
  
For the chart module, you will need to download the m152 milestone. The milestone
+
Also have a look at the [http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide/Charts BASIC Developers Guide]!
needed will change from time to time, so stay tuned ;-)
+
  
To download the milestone, you have several choices.
+
== Contact ==
  
* Download from the cvs servers
+
* Development Contact: [[User:Iha|iha]]
* Download a pre-packaged version
+
* Download from the main OOo servers
+
  
Have a look at the following page for more explanations :
 
http://wiki.services.openoffice.org/wiki/Getting_It
 
 
Some advices :
 
 
I would recommend that you download a pre-packaged version of m152 from the
 
following link :
 
http://go-ooo.org/packages/SRC680/
 
 
This will save you time compared to downloading the cvs version.
 
 
 
If you still want to download it from the cvs, you can use the following :
 
<pre>
 
cvs -z3 co -r SRC680_m152 OpenOffice'
 
</pre>
 
 
 
====== Update the CWS modifications ======
 
 
TODO :this is still to be done !!!!
 
 
mettre update les fichiers pour correspondre au cws chart2mst3
 
 
Go to the EIS page related to the chart
 
 
 
<pre>
 
cvs -z3 update -dP -r cws_src680_chart2mst3
 
</pre>
 
 
in all modules (subdirs) as listed in the EIS page gets you the
 
correct branch. See also cws-extract from oobuild, if you want/need to
 
work with diffs (which will get HUGE, though)
 
 
 
Note : cwsclone ??? What's its use ??
 
 
===== Configuring =====
 
 
- Créer un fichier dans lequel on met toutes les options de compilation.
 
- Détailler les options utiles.
 
- Lancer le configure
 
- Vérifier que toutes les dépendances sont remplies.
 
 
===== Building the tools (dmake...) =====
 
 
During the compiling step, the compiling process needs some tools to achieve
 
the build. Before compiling, you need to build those tools. For example,
 
 
* dmake
 
* ...
 
 
To compile the tools, just type :
 
 
<pre>
 
cd openOffice.org_m152/
 
./bootstrap
 
</pre>
 
 
===== Setting the environment =====
 
 
Before starting to compile OOo, you need to set all the environment variables
 
 
<pre>
 
tcsh
 
source LinuxIntelEnv.set
 
setenv nodep "TRUE" ; setenv NO_HIDS "TRUE" ; setenv MAXPROCESS 2
 
rehash
 
</pre>
 
 
* '''nodep'''  : inhibits generation of dependency files
 
* '''maxprocess''' : sets the number of parallel dmakes per dir
 
* '''NO_HIDS''' prevents generation of HIDs (that's used for automated testing - you won't need it)
 
 
===== Compiling (finally...;-) =====
 
 
<pre>
 
cd instsetoo_native
 
build -P2 --dlv_switch -link --all
 
</pre>
 
 
* ''' -P2''' : fires up more than one dmake in _different_ dirs - thus, you end up with a maximum for 4 parallel compilations
 
* '''--dlv_switch -link''' : tells deliver not to copy files to solver, but link instead -> saves space
 
 
 
==== OOoBuild ====
 
 
For this section, you should read the part called "Getting started with OOo development" on the wiki :
 
http://wiki.services.openoffice.org/wiki/Main_Page
 
 
===== Downloading OOoBuild =====
 
 
===== Downloading the sources =====
 
 
 
==== The bugs reported and the solutions. ====
 
 
During the compiling step, you will not be able to compile the whole code
 
 
 
===== ERROR 1 : the odk / sdk error =====
 
 
While compiling the Chart module, in the ODK project an error will rise :
 
 
<pre>
 
build -- version: 1.145
 
=============
 
Building project sdk_oo
 
=============
 
/home/pagalmes/workspace/OpenOffice/sdk_oo/pack/unzip_odk
 
dmake:  Error -- `/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/bin/odk_oo.zip' not found, and can't be made
 
'---* RULES.MK *---'
 
ERROR: Error 65280 occurred while making /home/pagalmes/workspace/OpenOffice/sdk_oo/pack/unzip_odk
 
</pre>
 
 
===== the solution =====
 
 
Just ignore the two osdk and sdk_oo project not needed for compiling OOo :
 
 
<pre>
 
cd instsetoo_native/util && build--since sdk_oo
 
</pre>
 
 
===== ERROR 2 : The InternalDataProvider.cxx include error =====
 
 
This error has been reported as issue 63012 : http://www.openoffice.org/issues/show_bug.cgi?id=63012
 
 
<pre>
 
/home/pagalmes/workspace/OpenOffice/chart2/source/tools
 
------------------------------
 
Making: ../../unxlngi6/slo/InternalDataProvider.obj
 
g++ -Wreturn-type -fmessage-length=0 -c -I.  -I. -I../inc -I../../source/inc -I../../inc -I../../unx/inc -I../../unxlngi6/inc -I.
 
-I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/stl -I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/external
 
-I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc -I/home/pagalmes/workspace/OpenOffice/solenv/unxlngi6/inc
 
-I/home/pagalmes/workspace/OpenOffice/solenv/inc -I/home/pagalmes/workspace/OpenOffice/res
 
-I/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/stl -I/home/pagalmes/workspace/OpenOffice/solenv/inc/Xp31
 
-I/opt/j2sdk1.4.2_09/include -I/opt/j2sdk1.4.2_09/include/linux -I/opt/j2sdk1.4.2_09/include/native_threads/include -I/usr/X11R6/include
 
-I. -I../../res -I. -g  -O0  -pipe -mtune=pentiumpro -Wno-ctor-dtor-privacy -fvisibility-inlines-hidden -g -fexceptions -fno-enforce-eh-specs
 
-fpic -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -D_STLP_DEBUG -DCVER=C341 -D_USE_NAMESPACE -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR
 
-D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3
 
-DGXX_INCLUDE_PATH=/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2 -DSUPD=680 -DDEBUG -DDBG_UTIL -DOSL_DEBUG_LEVEL=2
 
-DEXCEPTIONS_ON -DCUI -DSOLAR_JAVA -DSRC680=SRC680  -DSHAREDLIB -D_DLL_  -DMULTITHREAD  -o ../../unxlngi6/slo/InternalDataProvider.o
 
 
/home/pagalmes/workspace/OpenOffice/chart2/source/tools/InternalDataProvider.cxx
 
/home/pagalmes/workspace/OpenOffice/chart2/source/tools/InternalDataProvider.cxx
 
/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/bits/cpp_type_traits.h:100:
 
erreur: use of ‘__false_type’ is ambiguous
 
/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/bits/cpp_type_traits.h:94:
 
erreur:  first declared as ‘struct __false_type’ here
 
/home/pagalmes/workspace/OpenOffice/solver/680/unxlngi6/inc/stl/stl/type_traits.h:65:
 
erreur:  also declared as ‘struct _STLD::__false_type’ here
 
 
[...]
 
dmake:  Error code 1, while making '../../unxlngi6/slo/InternalDataProvider.obj'
 
'---* tg_merge.mk *---'
 
 
ERROR: Error 65280 occurred while making
 
/home/pagalmes/workspace/OpenOffice/chart2/source/tools
 
</pre>
 
 
===== The solution =====
 
 
The following line at the beginning of the file InternalDataProvider.cxx :
 
 
<pre>
 
#include <valarray>
 
</pre>
 
 
Has to be put as the first include in the file. No solution has been found for now.
 
 
 
===== ERROR 3 : the mandriva desktop error =====
 
 
While compiling, you may get the following error message :
 
 
<pre>
 
1 module(s):
 
        sysui
 
need(s) to be rebuilt
 
 
Reason(s):
 
 
ERROR: error 65280 occurred while making /home/pagalmes/workspace/OpenOffice/sysui/desktop/mandriva
 
ERROR: error 65280 occurred while making /home/pagalmes/workspace/OpenOffice/sysui/desktop/redhat
 
 
Attention: if you build and deliver the above module(s) you may prolongue your the build issuing command "build --from sysui"
 
</pre>
 
 
===== the solution =====
 
 
Try building the sysui project :
 
 
<pre>
 
cd sysui
 
build
 
</pre>
 
 
An error message should rise from this module.
 
 
<pre>
 
Eror message :
 
 
[...] /home/pagalmes/workspace/OpenOffice/sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org-mandriva-menus-2.0.2-152.noarch.rpm :
 
no such file or directory
 
 
Error code 1, while making
 
'/home/pagalmes/workspace/OpenOffice/sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org-mandriva-menus-2.0.2-152.noarch.rpm'
 
</pre>
 
 
This problem is solved by creating the following directory :
 
 
<pre>
 
OpenOffice/sysui/unxlngi6.pro/bin/desktop-integration
 
</pre>
 
 
Note : This error has been corrected with m155
 
 
== Developping for the new chart module ==
 
 
The common steps.
 
 
 
* How to build only a particular project :
 
 
 
* How to rebuild everything from scratch :
 
(erase the ".dlp" files or smthg like that ??)
 
 
* How to test the modifications done to the chart module :
 
 
== Documentation ==
 
 
== Some useful information ==
 
 
 
* Main Chart Project Page: http://graphics.openoffice.org/chart/chart.html
 
* Specifications: http://specs.openoffice.org/chart/index.html
 
* Current CWS Name: [[http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=1074&Path=SRC680%2Fchart2mst3 chart2mst3]]
 
* IRC channel: #chart2.openoffice.org (on freenode)
 
 
 
[[Category:Calc issues]]
 
 
[[Category:Chart2]]
 
[[Category:Chart2]]
 +
[[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