OOoCon Chart Speech
- 1 Documents and Resources
- 2 Structure and Time-Schedule of the Speech
- 3 List of Key Features
- 4 Opportunities for Developers
- 5 Plans for the Future
Documents and Resources
Important during the Presentation
- The OpenOffice.org developer snapshot that should be used for the presentation and the demos is Milestone 8
- The Presentation is File:DiscoveringTheNewChartModule.odp
- Example documents for flexible source ranges are File:OlympicRings.xls and File:Measures.xls
- Example document for the new API via Basic is File:NewAPI.ods
- Example stock chart document is File:StockChart.ods
- Example for charts with own data is File:OwnData.odp
- The original OOoCon presentation template is here
- Abstract of the speech on OOo.
- Schedule for the day of the presentation.
Structure and Time-Schedule of the Speech
- Introduction of the Speakers
- Explain why we did the new Chart
- New Key Features
- About 20 minutes. Dialog between Pierre-André and Björn.
- Show the Chart of OOo 2.0 and the new Implementation.
- Opportunities for Developers
- Pierre-André (Basic Macros) and Björn (UNO extension components?).
- About 10 minutes.
- Open Issues and Plans for the Future
- Björn, André ?
- About 10 minutes.
- Questions & Answers
- About 5 minutes, possible to extend this to the following BOF (“birds of a feather”) session.
List of Key Features
Create a nice 3d chart as an example.
- New chart types: 3d donut, 3d pie, both with exploded segments, 3d scatter, line and scatter 3d with smooth lines
- Brand new: XY-Chart with or without sorted values
- Live Preview
- You see all major chart types in one list box and get no more than four different previews + controls for stacking, smooth lines or 3d, changing 3d shapes. => much clearer selection of chart types
- Source-Range tab-page like the first page in the old wizard. We changed the order, because this way you can select the chart type first. Thus, you can change the data coming from columns or rows after selecting the chart type, which is obviously what people like to do (see Microsoft's Blog Entry Sander Viegers Rides Again).
- Data Series Tab Page for rearrangement, adding removing series and using more complex source ranges. Details follow later
- Chart Elements: Titles (also subtitle) can be added without checkbox, you can define the position of the legend. You can choose x- and y-grids. (Finish the Wizard and then open the 3d view dialog)
- New 3d View Dialog. Is very much clearer than the former 3d effects dialog. You can enter the 3d angles on the first page, and the perspective as a percentage (before you had focal-length and distance, which nobody understood). The second tab page has the simple and realistic options. Apart from the light sources (third tab) that's all for 3d, instead of the former quite complicated ugly dialog.
Create a Chart out of a table of simple data and show how this works nicely with the wizard. Use first page for different chart types and type settings. The second tab page for changing rows/columns. Skip the third one and go directly to the last page using the road-map. Insert a title and change the legend position. After that show the 3d dialog. Switch to simple look, switch back to 2d. (pagalmes)
Flexible Source Ranges
- Import File:OlympicRings.xls Excel file. Show a screen-shot of Excel (on second sheet) to show how close both charts look.
- You can misplace a ring by changing the offset from -1,0 to -2,0 in cell L1 and back to show that the changes affect the chart. Change the color of one ring to a different color. Select first series and toggle through series with Tab to show blue rectangles around the separate ranges in Calc
- Import the File:Measures.xls example to show the different measures in one chart. Also walk through series with Tab to show the different ranges, each using its own x-values and being differently long.
- Stock Chart: File:StockChart.ods Show the different roles of the candlestick-chart.
Own Data Editor
- One series can consist of more than one data sequence. (Swap series instead of columns)
- Separate series labels in edit fields, chart type icon, color bar to identify the series (bar -line chart)
- Numberformats: Scatter Chart with time-scale and currencies. (Maybe with separate x-values)
- Live Preview
Use File:OwnData.odp for examples.
Regression Curves for Chart Types other than XY-Charts
- Regression curve in a bar chart or a line chart with categories. (Use the same example as before)
- Mention that formula and correlation coefficient (r) will come in the future.
- Maybe also mention: logarithmic scaling at y-axis for more chart types, also error-bars.
- Maybe also mention: x-error bars are already implemented, but not yet accessible via the UI
Opportunities for Developers
Overview of the new Implementation (Part 1)
- The chart is divided into four libraries that are as independent of other projects as possible. Explain shortly the MVC-pattern. (diagram, also dependencies to other building blocks like the drawing layer). bm
- The model is completely accessible via UNO. It supports only the new API. The Old API is implemented in the controller library and is aggregated to the model via a component. (UML diagram + a little chart with arrows) bm
Compatibility with the old API
- The old API is implemented and should work in principle.
- If there are any issues, there is an FAQ page on OOo-Wiki: FAQ_about_Chart_API_Compatibility
- We will provide a page with the results of an automated complete test of the old API.
How to use the new API (Shown with Basic Macros)
The document File:NewAPI.ods contains some examples to show
- Mention that the new API is not published yet and is likely to change in the future. We plan not to publish the API when the new Chart comes out in OOo, but in a later release.
- Locking and Unlocking controllers works like expected. bm
- Show the examples. Pie Chart, Symbols (Graphics), and maybe the PageBackground, multiple trendlines with formulas
- Basic macro for showing the formula (and correlation coefficient) of the regression.
- Shared Legend. Make sure to explain that this is not a recommended way to do things, as charts may be swapped out of memory which breaks the identity of the shared legend. (Also, e.g. if you apply a gradient, it only works in those charts where it is defined). This serves only as example for the new model being modular, and the object may be created independently of a specific model. Really show this?
Overview of the new Implementation (Part 2)
- The view accesses the model via UNO and creates view object as drawing-layer objects via UNO. The view itself currently has no UNO interface. This has to be done in the future to allow extending the chart by new chart types.
- The controller library uses the model (via UNO) and the view. This library depends on the most other libraries, e.g. VCL, because it implements the dialogs.
- There is a fourth tools library that contains helper classes. Mostly they serve as simplification of the UNO API access. Parts of the tools can also become components in the future, to ease the efforts of developers.
Areas where Help is needed
- Performance testing
- Writing Documentation, Demos
- Writing Specs
- Implementation makes more sense, once we integrated the current CWS.
Plans for the Future
We have to focus on the most important things. Maybe from the following categories:
- Finish the re-implementation so that the new chart covers all the features of the old chart
- Finalizing and publishing the new API
- Integrate new features. There are many suggestions in the document from Tony Galmiche about Chart Enhancements. (see List of wished enhancements for Charts provided by Tony Galmiche)
- Provide a convenience API for easier access of the new, more complex chart API.
Extending the chart using the new API (?)
With the new API you will be able to write your own chart components. For example, you can write your own chart type and integrate it into OpenOffice.org. You would have to provide a number of things and put those together into a package. After deploying, you would see the new type in the wizard and would not even notice that it is an extension.
- Write a new chart type component
- Write a data-series plotter view-component that is able to create drawing shapes for the chart
- Create chart type templates that use the new chart type. Provide some images as a preview for the wizard.
By implementing new data-provider components, you can offer data from other sources, like internet services, other spreadsheet applications or even data bases. (Maybe, explain that implementing the data-provider in Calc was quite a big effort, so this is probably usually also no easy task.)