Files
loongoffice/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl
Tomaž Vajngerl 9009663deb tdf#83257 [API-CHANGE] Pivot chart implementation
This is a squashed commit of the pivot chart implementation.

Some of the changes:
- Add pivot chart specific (pivot table) data provider which
  provides the data from a pivot table to the associated chart.
- When inserting a chart and the cursor is in a pivot table,
  in that case insert a pivot chart
- Modify the pivot chart when the pivot table changes
- Collect and set the number format for the values
- isDataFromSpreadsheet check for the creation wizard
- In ChartView (and VLegend) check if the data provider is a
  pivot chart data provider and get the pivot table field names
  to create the buttons on the UI.
- Adds the functionallity to show a filter pop-up (from calc)
  when clicking on row / column / page field buttons.
- Remove (X)PopupRequest as we won't need it.
- Add ODF import/export for pivot charts:
  + Added loext:data-pilot-source attribute on chart:chart
    which is the internal name of the pivot table with which the
    pivot chart is associated with. If the element is present, then
    the it means the chart is a pivot chart, else it is a normal
    chart
  + Added service to create pivot chart data provider through UNO
  + Add new methods to XPivotChartDataProvider to create value and
    label data sequences separately from the data source, which is
    needed for pivot chart import
  + When importing defer setting the data provider until a later
    time when we know if we are creating a chart od a pivot chart
- Pivot chart ODF round-trip test
- Add table pivot chart supplier API:
  This adds the XTablePivotChartSupplier and related interfaces so
  we can access, create, delete pivot charts from UNO in a sheet
  document. With this we now distinguish between normal charts
  and pivot charts. This was mainly needed because we can't extend
  the "published" interfaces of TableChartSupplier.
- Added an extensive test, which uses the API to create a new
  pivot chart when there was none, and checks that the pivot chart
  updates when the pivot table updates.

Change-Id: Ia9ed96fd6b1d342e61c2f7f9fa33a5e03dda21af
Reviewed-on: https://gerrit.libreoffice.org/36023
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2017-04-04 13:39:29 +00:00

91 lines
2.5 KiB
Plaintext

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#ifndef com_sun_star_chart2_data_XPivotTableDataProvider_idl
#define com_sun_star_chart2_data_XPivotTableDataProvider_idl
#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/chart2/data/PivotTableFieldEntry.idl>
module com { module sun { module star { module chart2 { module data {
/**
* Data provider specific for pivot chart data.
*
* @since LibreOffice 5.4
*/
interface XPivotTableDataProvider : com::sun::star::uno::XInterface
{
/** names of column fields from the associated pivot table
*
* @since LibreOffice 5.4
*/
sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getColumnFields();
/** names of row fields from the associated pivot table
*
* @since LibreOffice 5.4
*/
sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getRowFields();
/** names of page fields from the associated pivot table
*
* @since LibreOffice 5.4
*/
sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getPageFields();
/** names of data fields from the associated pivot table
*
* @since LibreOffice 5.4
*/
sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getDataFields();
/** get the associated pivot table name
*
* @since LibreOffice 5.4
*/
string getPivotTableName();
/** set the associated pivot table name
*
* @since LibreOffice 5.4
*/
void setPivotTableName([in] string sPivotTableName);
/** creates a single data sequence of values for the given data series index.
*
* @param nIndex
* index of the data series
*
* @since LibreOffice 5.4
*/
XDataSequence createDataSequenceOfValuesByIndex([in] long nIndex);
/** creates a single data sequence of label(s) for the given data series index.
*
* @param nIndex
* index of the data series
*
* @since LibreOffice 5.4
*/
XDataSequence createDataSequenceOfLabelsByIndex([in] long nIndex);
/** creates a single data sequence of categories.
*
* @since LibreOffice 5.4
*/
XDataSequence createDataSequenceOfCategories();
};
};};};};};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */