summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/chart2/data
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/chart2/data
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/chart2/data')
-rw-r--r--offapi/com/sun/star/chart2/data/DataFilter.idl62
-rw-r--r--offapi/com/sun/star/chart2/data/DataProvider.idl61
-rw-r--r--offapi/com/sun/star/chart2/data/DataSequence.idl148
-rw-r--r--offapi/com/sun/star/chart2/data/DataSequenceRole.idl102
-rw-r--r--offapi/com/sun/star/chart2/data/DataSink.idl54
-rw-r--r--offapi/com/sun/star/chart2/data/DataSource.idl54
-rw-r--r--offapi/com/sun/star/chart2/data/DatabaseDataProvider.idl38
-rw-r--r--offapi/com/sun/star/chart2/data/HighlightedRange.idl66
-rw-r--r--offapi/com/sun/star/chart2/data/LabelOrigin.idl86
-rw-r--r--offapi/com/sun/star/chart2/data/LabeledDataSequence.idl49
-rw-r--r--offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl60
-rw-r--r--offapi/com/sun/star/chart2/data/RangeHighlightListener.idl52
-rw-r--r--offapi/com/sun/star/chart2/data/RangeHighlighter.idl48
-rw-r--r--offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl153
-rw-r--r--offapi/com/sun/star/chart2/data/XDataProvider.idl179
-rw-r--r--offapi/com/sun/star/chart2/data/XDataReceiver.idl106
-rw-r--r--offapi/com/sun/star/chart2/data/XDataSequence.idl132
-rw-r--r--offapi/com/sun/star/chart2/data/XDataSink.idl71
-rw-r--r--offapi/com/sun/star/chart2/data/XDataSource.idl76
-rw-r--r--offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl206
-rw-r--r--offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl73
-rw-r--r--offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl76
-rw-r--r--offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl54
-rw-r--r--offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl83
-rw-r--r--offapi/com/sun/star/chart2/data/XRangeHighlighter.idl64
-rw-r--r--offapi/com/sun/star/chart2/data/XRangeXMLConversion.idl66
-rw-r--r--offapi/com/sun/star/chart2/data/XSheetDataProvider.idl36
-rw-r--r--offapi/com/sun/star/chart2/data/XTextualDataSequence.idl53
28 files changed, 2308 insertions, 0 deletions
diff --git a/offapi/com/sun/star/chart2/data/DataFilter.idl b/offapi/com/sun/star/chart2/data/DataFilter.idl
new file mode 100644
index 000000000..9f1d831ab
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DataFilter.idl
@@ -0,0 +1,62 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_DataFilter_idl
+#define com_sun_star_chart2_data_DataFilter_idl
+
+#include <com/sun/star/chart2/data/DataSource.idl>
+#include <com/sun/star/chart2/data/DataSink.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** A filter gets some data and provides some data. The received data
+ is typically (but not necessarily) different from the data that
+ can be retrieved by a filter.
+ */
+service DataFilter
+{
+ /** A DataFilter is a DataSink, because you can set some data at a
+ DataFilter.
+ */
+ service DataSink;
+
+ /** A DataFilter is a DataSource, because you can get some data
+ from a DataFilter.
+ */
+ service DataSource;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/DataProvider.idl b/offapi/com/sun/star/chart2/data/DataProvider.idl
new file mode 100644
index 000000000..bcda9996e
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DataProvider.idl
@@ -0,0 +1,61 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_DataProvider_idl
+#define com_sun_star_chart2_data_DataProvider_idl
+
+#include <com/sun/star/chart2/data/XDataProvider.idl>
+#include <com/sun/star/chart2/data/XRangeXMLConversion.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+service DataProvider
+{
+ /** For accessing data a component provides for being used by
+ charts.
+ */
+ interface ::com::sun::star::chart2::data::XDataProvider;
+
+ /** allows you to convert the ranges a data provider deals with
+ internally into valid XML.
+ */
+ [optional] interface ::com::sun::star::chart2::data::XRangeXMLConversion;
+
+ /** If set to false `FALSE`, values from hidden cells are not returned.
+ */
+ [optional, property] boolean IncludeHiddenCells;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/DataSequence.idl b/offapi/com/sun/star/chart2/data/DataSequence.idl
new file mode 100644
index 000000000..34d655800
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DataSequence.idl
@@ -0,0 +1,148 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_DataSequence_idl
+#define com_sun_star_chart2_data_DataSequence_idl
+
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/container/XIndexReplace.idl>
+#include <com/sun/star/util/XCloneable.idl>
+#include <com/sun/star/util/XModifyBroadcaster.idl>
+#include <com/sun/star/chart2/data/XDataSequence.idl>
+#include <com/sun/star/chart2/data/XNumericalDataSequence.idl>
+#include <com/sun/star/chart2/data/XTextualDataSequence.idl>
+#include <com/sun/star/chart2/data/DataSequenceRole.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** describes a container for a sequence of values.
+
+ <p>With the interface XDataSequence it is possible to
+ transfer a complete sequence of values.
+
+ <p>With the optional
+ com::sun::star::container::XIndexReplace it is
+ possible to modify single elements, if the corresponding
+ DataProvider supports modification of its values.</p>
+ */
+service DataSequence
+{
+ /** provides read- and write-access to the underlying data.
+ */
+ interface XDataSequence;
+
+ /** you may implement this interface to allow a fast access to
+ numerical data. With this interface you can get a
+ `sequence` of `double` values.
+ */
+ [optional] interface XNumericalDataSequence;
+
+ /** you may implement this interface to allow a fast access to
+ textual data. With this interface you can get a
+ `sequence` of `string` values.
+ */
+ [optional] interface XTextualDataSequence;
+
+ /** provides read- and write-access to single elements of the
+ underlying data.
+
+ <p>Only when supporting this interface, it is possible for
+ client applications to modify the content of the data that is
+ provided by this DataSequence.</p>
+ */
+ [optional] interface ::com::sun::star::container::XIndexReplace;
+
+ /** Allows creating copies of data sequences. If this interface
+ is not supported, the same object will be shared if used by
+ multiple objects.
+
+ <p>Cloning is especially useful when using identifiers. A
+ cloned data sequence will get a new identifier while the
+ source range representation is identical to the original
+ one.</p>
+
+ <p>Note that, when this interface is not implemented the
+ releasing of identifiers at the XDataProvider
+ will not work properly, because more than one object may use
+ the same identifier. So, when an object releases the
+ identifier, another object might use a stale identifier.</p>
+ */
+ [optional] interface ::com::sun::star::util::XCloneable;
+
+ /** is used to broadcast change events whenever the content (data)
+ or the range representations change.
+ */
+ interface com::sun::star::util::XModifyBroadcaster;
+
+ /** the property interface by which the properties of all
+ supported services are exchanged
+ */
+ interface ::com::sun::star::beans::XPropertySet;
+
+
+ /** The key (index) of the number format that this sequence should
+ be formatted with.
+
+ <p>The key identifies a number format in an
+ com::sun::star::util::XNumberFormats
+ object. This object can be retrieved by the
+ com::sun::star::util::XNumberFormatsSupplier
+ interface supported by
+ com::sun::star::chart::ChartDocument.</p>
+
+ @todo use proper number format instead of a transient key.
+ */
+// [optional, property] long NumberFormatKey;
+
+ /** The role of the series inside a data series. This may be any
+ string. However some strings are predefined and should always
+ be used in the same way.
+
+ @see DataSequenceRole
+ */
+ [property] DataSequenceRole Role;
+
+ /** If set to false `FALSE`, values from hidden cells are not returned.
+ */
+ [optional, property] boolean IncludeHiddenCells;
+
+ /** a sequence of indexes that identify values that are hidden in the underlying
+ data provider.
+ */
+ [optional, property] sequence< long > HiddenValues;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/DataSequenceRole.idl b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl
new file mode 100644
index 000000000..90fd2abd9
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl
@@ -0,0 +1,102 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_DataSequenceRole_idl
+#define com_sun_star_chart2_data_DataSequenceRole_idl
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** a string that states in what way a DataSequence
+ should be used. If this property is an empty string, no
+ proposition about usage is made.
+
+ <p>The strings can have any value. However some values are
+ predefined and should always be interpreted in the same way.</p>
+
+ <dl>
+ <dt>label</dt>
+ <dd>values are used as a label for a series. Usually, you
+ will have just one cell containing a string.</dd>
+ <dt>values-x</dt>
+ <dd>values are used as x-values in an XY- or bubble
+ diagram</dd>
+ <dt>values-y</dt>
+ <dd>values are used as y-values in an XY-Diagram or as values
+ in a bar, line, etc. chart</dd>
+ <dt>values-z</dt>
+ <dd>values may be used as z-values in a three-dimensional
+ XYZ-Diagram or a surface-chart</dd>
+ <dt>sizes</dt>
+ <dd>values are used as radius of the bubbles in a
+ Bubble-Diagram</dd>
+ <dt>error-bars-x-positive</dt>
+ <dd>values are used as error-information in positive x-direction for
+ displaying error-bars</dd>
+ <dt>error-bars-x-negative</dt>
+ <dd>values are used as error-information in negative x-direction for
+ displaying error-bars</dd>
+ <dt>error-bars-y-positive</dt>
+ <dd>values are used as error-information in positive y-direction for
+ displaying error-bars</dd>
+ <dt>error-bars-y-negative</dt>
+ <dd>values are used as error-information in negative y-direction for
+ displaying error-bars</dd>
+ <dt>categories</dt>
+ <dd>values are used for categories in the diagram</dd>
+ </dl>
+
+ <p>In a candle-stick chart you have the following roles:</p>
+
+ <dl>
+ <dt>values-first</dt>
+ <dd>the first value of a series of values. In a stock-chart this
+ would be the opening course.</dd>
+ <dt>values-last</dt>
+ <dd>the last value of a series of values. In a stock-chart this
+ would be the closing course.</dd>
+ <dt>values-min</dt>
+ <dd>the minimum value of a series of values. In a stock-chart
+ this would be the lowest course that occurred during
+ trading.</dd>
+ <dt>values-max</dt>
+ <dd>the maximum value of a series of values. In a stock-chart
+ this would be the highest course that occurred during
+ trading.</dd>
+ </dl>
+ */
+typedef string DataSequenceRole;
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/DataSink.idl b/offapi/com/sun/star/chart2/data/DataSink.idl
new file mode 100644
index 000000000..24b26aa21
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DataSink.idl
@@ -0,0 +1,54 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_DataSink_idl
+#define com_sun_star_chart2_data_DataSink_idl
+
+#include <com/sun/star/chart2/data/XDataSink.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** describes a service that allows reading two-dimensional data in
+ the form of a sequence of DataSequences.
+ */
+service DataSink
+{
+ /** allows the write-access of the actual data.
+ */
+ interface XDataSink;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/DataSource.idl b/offapi/com/sun/star/chart2/data/DataSource.idl
new file mode 100644
index 000000000..9ea7669c3
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DataSource.idl
@@ -0,0 +1,54 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_DataSource_idl
+#define com_sun_star_chart2_data_DataSource_idl
+
+#include <com/sun/star/chart2/data/XDataSource.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** describes a service that allows reading two-dimensional data in
+ the form of a sequence of DataSequences.
+ */
+service DataSource
+{
+ /** allows the read-access of the actual data.
+ */
+ interface XDataSource;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/DatabaseDataProvider.idl b/offapi/com/sun/star/chart2/data/DatabaseDataProvider.idl
new file mode 100644
index 000000000..a9bf0fee4
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/DatabaseDataProvider.idl
@@ -0,0 +1,38 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_chart2_data_DatabaseDataProvider_idl__
+#define __com_sun_star_chart2_data_DatabaseDataProvider_idl__
+
+#include <com/sun/star/chart2/data/XDatabaseDataProvider.idl>
+
+
+ module com { module sun { module star { module chart2 { module data {
+
+
+service DatabaseDataProvider : XDatabaseDataProvider
+{
+ createWithConnection([in] com::sun::star::sdbc::XConnection connection);
+};
+
+ }; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/HighlightedRange.idl b/offapi/com/sun/star/chart2/data/HighlightedRange.idl
new file mode 100644
index 000000000..dbd8a9b26
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/HighlightedRange.idl
@@ -0,0 +1,66 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_HighlightedRange_idl
+#define com_sun_star_chart2_data_HighlightedRange_idl
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+struct HighlightedRange
+{
+ /** The range representation string of the highlighted range.
+ */
+ string RangeRepresentation;
+
+ /** Only take the cell at position Index out of the given
+ Range. If this value is -1 take the whole sequence.
+ */
+ long Index;
+
+ /** Use this color for marking the range. This color may be
+ ignored and replaced by a better fitting color, if it would be
+ otherwise not well visible.
+ */
+ long PreferredColor;
+
+ /** If the highlighted range is visually highlighted and this
+ member is `TRUE`, the range given in
+ #RangeRepresentation may be included in a
+ merged range rectangle spanning a bigger range.
+ */
+ boolean AllowMerginigWithOtherRanges;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/LabelOrigin.idl b/offapi/com/sun/star/chart2/data/LabelOrigin.idl
new file mode 100644
index 000000000..cec70732a
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/LabelOrigin.idl
@@ -0,0 +1,86 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef com_sun_star_chart2_data_LabelOrigin_idl
+#define com_sun_star_chart2_data_LabelOrigin_idl
+
+
+module com { module sun { module star { module chart2 { module data {
+
+
+/** is used to specify how the labels have to be created.
+
+ @see XDataSequence::generateLabel().
+ */
+enum LabelOrigin
+{
+
+ /** If a range spans a single row over more than one column, this
+ parameter has the same effect as ROW. If the range spans a
+ single column over more than one row, this is the same as
+ COLUMN.
+
+ <p>In case of a range spanning more than one column and row,
+ the shorter range of both should be used (e.g. a spreadsheet
+ range A1:B10 should treat columns as short side).</p>
+
+ <p>In case of a rectangular range, or a range that is composed
+ of more than one contiguous sub-regions, the short side cannot
+ be determined, thus
+ XDataSequence::generateLabel() will return an
+ empty sequence.</p>
+ */
+ SHORT_SIDE,
+
+
+ /** This is exactly the opposite of SHORT_SIDE. I.e., if
+ SHORT_SIDE has the same effect as ROW, LONG_SIDE will have the
+ same effect as COLUMN and the other way round.
+
+ @see LabelOrigin::SHORT_SIDE
+ */
+ LONG_SIDE,
+
+
+ /** Uses the column name for label generation. A spreadsheet
+ range A1:A6 could, e.g., result in "Column A".
+
+ <p>If a range consists of more than one column the result of
+ label generation may be empty. Of course, it could also
+ succeed with a string like "Columns A to B".
+ */
+ COLUMN,
+
+
+ /** Uses the column name for label generation. A spreadsheet
+ range A2:D2 could, e.g., result in "Row 2".
+
+ <p>If a range consists of more than one row the result of
+ label generation may be empty. Of course, it could also
+ succeed with a string like "Rows 1-3".
+ */
+ ROW
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl b/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl
new file mode 100644
index 000000000..58d78598a
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl
@@ -0,0 +1,49 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_LabeledDataSequence_idl
+#define com_sun_star_chart2_data_LabeledDataSequence_idl
+
+#include <com/sun/star/chart2/data/XLabeledDataSequence2.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** describes a container for a sequence pair of value-sequences, one
+ for a label and one for the associated data.
+ */
+service LabeledDataSequence : XLabeledDataSequence2;
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl b/offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl
new file mode 100644
index 000000000..e14e1253d
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl
@@ -0,0 +1,60 @@
+/* -*- 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_PivotTableFieldEntry_idl
+#define com_sun_star_chart2_data_PivotTableFieldEntry_idl
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/**
+ * Pivot table field entry data.
+ *
+ * @since LibreOffice 5.4
+ */
+struct PivotTableFieldEntry
+{
+ /**
+ * Name of the field entry.
+ */
+ string Name;
+
+ /**
+ * The index of the field entry.
+ */
+ long DimensionIndex;
+
+ /**
+ * The output position of the field entry in its field type.
+ */
+ long DimensionPositionIndex;
+
+ /**
+ * Does it have some members that are hidden (filtered).
+ */
+ boolean HasHiddenMembers;
+};
+
+}; // data
+}; // chart2
+}; // com
+}; // sun
+}; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/RangeHighlightListener.idl b/offapi/com/sun/star/chart2/data/RangeHighlightListener.idl
new file mode 100644
index 000000000..d3c6eaa8c
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/RangeHighlightListener.idl
@@ -0,0 +1,52 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_RangeHighlightListener_idl
+#define com_sun_star_chart2_data_RangeHighlightListener_idl
+
+#include <com/sun/star/view/XSelectionChangeListener.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** A selection change listener that is attached to a
+ XRangeHighlighter in order to get notified about
+ selection changes that affect range highlighting.
+ */
+service RangeHighlightListener
+{
+ interface ::com::sun::star::view::XSelectionChangeListener;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/RangeHighlighter.idl b/offapi/com/sun/star/chart2/data/RangeHighlighter.idl
new file mode 100644
index 000000000..e2b98cbc1
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/RangeHighlighter.idl
@@ -0,0 +1,48 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_RangeHighlighter_idl
+#define com_sun_star_chart2_data_RangeHighlighter_idl
+
+#include <com/sun/star/chart2/data/XRangeHighlighter.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+service RangeHighlighter
+{
+ interface XRangeHighlighter;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl b/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl
new file mode 100644
index 000000000..ebd2c6955
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl
@@ -0,0 +1,153 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_TabularDataProviderArguments_idl
+#define com_sun_star_chart2_data_TabularDataProviderArguments_idl
+
+#include <com/sun/star/chart/ChartDataRowSource.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+service TabularDataProviderArguments
+{
+ /** the range address string spanning all data.
+
+ <p>The range address string must be interpretable by the
+ component that implements XDataProvider and gets
+ this property as argument to
+ XDataProvider::detectArguments().</p>
+
+ <p>The representation string is of a form that may be used in the
+ user interface. Example for OOo Calc: "$Sheet1.$A$1:$D$7",
+ example for OOo Writer: "&lt;Table1.A1:D7&gt;".</p>
+
+ <p>When used as input, this range will be split in columns or
+ rows depending on the property
+ #DataRowSource.</p>
+
+ <p>When used as output of
+ XDataProvider::detectArguments() this is the
+ range that spans the ranges of all given
+ XDataSequences. If the result is ambiguous,
+ i.e., a splitting of this range would not yield the same
+ result, this property should be empty. The latter is the
+ case, when ranges are overlapping, the lengths of sequences
+ are not equal or even if the order of two sequences is swapped
+ (e.g. data comes from column A, C, B).</p>
+ */
+ [property] string CellRangeRepresentation;
+
+ /** determines, whether data sequences are created out of columns
+ or rows in a table.
+
+ <p>If this property is not given as argument it is assumed to
+ com::sun::star::chart::ChartDataRowSource::COLUMNS,
+ i.e., the default is "take data from columns".</p>
+ */
+ [property] ::com::sun::star::chart::ChartDataRowSource DataRowSource;
+
+ /** If data comes from columns, the first row will provide the
+ labels for all sequences, if data comes from rows, the first
+ column will provide the labels for all sequences.
+
+ <p>Even if this property is false, the
+ XLabeledDataSequence may contain a label, but
+ this will not be the first cell of the selection. It may be a
+ generic string like "Column C".</p>
+
+ <p>If this property is not given as argument it is assumed to
+ be `FALSE`, i.e., the default is "no labels".</p>
+ */
+ [property] boolean FirstCellAsLabel;
+
+ /** determines the order of the created labeled sequences
+
+ <p>For example a SequenceMapping of [3,0,2,1] indicates that
+ the sequence from old position "3" should now be the first one.
+ Then comes the sequence from old position "0". Then that one
+ from old position "2" and then the sequence from old position "1".</p>
+
+ <p>If the SequenceMapping contains invalid indexes just
+ ignore those single indexes. For example if you only have three
+ labeled sequences and a SequenceMapping [2,5,1,0], you should
+ ignore the "5" and continue to place the sequence from
+ old index "1" to the next new position and so on.</p>
+
+ <p>If the given SequenceMapping does not cover all existing
+ labeled sequences just put the remaining sequences in old order
+ behind the others. For example you have 4 sequences and a
+ SequenceMapping [3,1]. The result should be as if [3,1,0,2]
+ was given.</p>
+ */
+ [property] sequence< long > SequenceMapping;
+
+ /** If `FALSE` the data provider may create a data sequence
+ containing generated categories that fit the rest of the data,
+ like e.g. "Row 12", "Row 13", etc.
+
+ <p>This property is not relevant for the splitting up of the
+ data. It just indicates, if the chart wants to use part of
+ the data as categories, so that generic categories can be
+ returned if it doesn't.</p>
+
+ <p>The generic category labeled sequence returned should be
+ the first one in the returned XDataSource. It
+ needs no label. The values should have their role set to
+ "categories". The generic strings returned should also be
+ localized.</p>
+ */
+ [optional, property] boolean HasCategories;
+
+ /** This property is for providing proprietary table indexes for
+ each table appearing in a range given in
+ CellRangeRepresentation.
+
+ @deprecated
+
+ <p>This argument is supported by Spreadsheets in order to be
+ able to export a document into the StarOffice 5.0 binary
+ format.</p>
+
+ <p>Example: If you have the sheets (Sheet1, Sheet2, Sheet3) in
+ your document and a chart uses the range
+ "Sheet2.A1:.A5 Sheet3.A1:.A5 Sheet2.B1:.B5 Sheet1:B1:.B5", your
+ TableNumberList would be "1 2 1 0". A simple range like
+ "Sheet1.A1:.E4" would have the TableNumberList in "0"</p>.
+ */
+ [optional, property] string TableNumberList;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XDataProvider.idl b/offapi/com/sun/star/chart2/data/XDataProvider.idl
new file mode 100644
index 000000000..e0f450a1a
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XDataProvider.idl
@@ -0,0 +1,179 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XDataProvider_idl
+#define com_sun_star_chart2_data_XDataProvider_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/chart2/data/XDataSource.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+#include <com/sun/star/sheet/XRangeSelection.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** An application that provides data for a chart must implement this
+ interface.
+ */
+interface XDataProvider : ::com::sun::star::uno::XInterface
+{
+ /** If `TRUE` is returned, a call to createDataSource with the
+ same arguments must return a valid XDataSequence object. If
+ `FALSE` is returned, createDataSource throws an exception.
+ */
+ boolean createDataSourcePossible( [in] sequence< com::sun::star::beans::PropertyValue > aArguments );
+
+ /** Creates a data source object that matches the given range
+ representation string.
+
+ <p>This can be used for creating the necessary data for a new
+ chart out of a previously selected range of cells in a
+ spreadsheet.</p>
+
+ @param aArguments
+ Arguments that tell the data provider how to slice the
+ given range. The properties should be defined in a
+ separate service.
+
+ <p>For spreadsheets and text document tables there exists a
+ service TabularDataProviderArguments
+ describing valid values for this list.</p>
+
+ @return
+ a data source containing DataSequences that
+ span the entire region given in <code>aArguments</code>.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ may be raised by the XDataProvider if it is
+ unable to interpret the arguments passed in
+ <code>aArguments</code> appropriately.
+ */
+ XDataSource createDataSource(
+ [in] sequence< com::sun::star::beans::PropertyValue > aArguments )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Tries to find out with what parameters the passed
+ DataSource most probably was created.
+
+ <p>if xDataSource is a data source that was created with
+ createDataSource(), the arguments returned here
+ should be the same than the ones passed to the function.
+ Of course, this cannot be guaranteed. However, if detection
+ is ambiguous, the returned arguments should be empty. </p>
+
+ <p>This method may merge representation strings together if
+ adjacent ranges appear successively in the range identifiers.
+ E.g., if the first range refers to "$Sheet1.$A$1:$A$8" and the
+ second range refers to "$Sheet1.$B$1:$B$8", those should be
+ merged together to "$Sheet1.$A$1:$B$8".</p>
+
+ @param xDataSource
+ A data source containing all data used in a chart.
+
+ @return
+ Arguments that when being passed to
+ createDataSource() should in an ideal case
+ return the same data source as <code>xDataSource</code>.
+ */
+ sequence< com::sun::star::beans::PropertyValue > detectArguments(
+ [in] XDataSource xDataSource );
+
+ /** If `TRUE` is returned, a call to
+ createDataSequenceByRangeRepresentation with the same argument must
+ return a valid XDataSequence object. If `FALSE` is returned,
+ createDataSequenceByRangeRepresentation throws an exception.
+ */
+ boolean createDataSequenceByRangeRepresentationPossible( [in] string aRangeRepresentation );
+
+ /** creates a single data sequence for the given data range.
+
+ @param aRangeRepresentation
+ is a string that can be interpreted by the component that
+ implements this interface. The representation string is
+ of a form that may be used in the user interface.
+
+ @see createDataSource
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given range does not contain a valid range
+ representation for a one-dimensional range of data.
+ */
+ XDataSequence createDataSequenceByRangeRepresentation(
+ [in] string aRangeRepresentation )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Creates a single data sequence from the string value array representation
+
+ @param aRole
+ The role of the sequence inside a data series. This may be any
+ string. However some strings are predefined and should always
+ be used in the same way.
+
+ @param aValueArray
+ is a string that contains the value representation of the
+ sequence to be created.
+
+ @param aRoleQualifier
+ is a string that describes the role of the sequence.
+ This may be any string. However some strings are predefined
+ and should always be used in the same way.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given value array does not contain a valid value array
+ representation.
+ */
+ XDataSequence createDataSequenceByValueArray( [in] string aRole, [in] string aValueArray,
+ [in] string aRoleQualifier )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns a component that is able to change a given range
+ representation to another one. This usually is a
+ controller-component that uses the GUI to allow a user to
+ select a new range.
+
+ <p>This method may return nothing, if it does not support
+ range selection or if there is no current controller available
+ that offers the functionality.</p>
+
+ @return
+ The component for selecting a new range. It must support
+ XComponent, in order to inform the receiver
+ about its lifetime.</p>
+ */
+ com::sun::star::sheet::XRangeSelection getRangeSelection();
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XDataReceiver.idl b/offapi/com/sun/star/chart2/data/XDataReceiver.idl
new file mode 100644
index 000000000..a7c853b1f
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XDataReceiver.idl
@@ -0,0 +1,106 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XDataReceiver_idl
+#define com_sun_star_chart2_data_XDataReceiver_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/chart2/data/XDataProvider.idl>
+#include <com/sun/star/chart2/data/XRangeHighlighter.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+#include <com/sun/star/util/XNumberFormatsSupplier.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+interface XDataReceiver : ::com::sun::star::uno::XInterface
+{
+ /** attaches a component that provides data for the document.
+
+ <p>The previously set data provider will be released.</p>
+
+ @param xProvider
+ The new DataProvider. If it is an empty reference, the
+ ChartDocument will have no data.
+ */
+ void attachDataProvider( [in] XDataProvider xProvider );
+
+ void setArguments( [in] sequence< com::sun::star::beans::PropertyValue > aArguments )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** returns a list of all range strings for which data has been
+ requested by the most recently attached data provider, and
+ which is still used.
+
+ <p>This list may be used by the data provider to swap charts
+ out of memory, but still get informed by changes of ranges
+ while the chart is not loaded.</p>
+ @return a list of used range strings.
+ */
+ sequence< string > getUsedRangeRepresentations();
+
+ /** Returns the data requested by the most recently attached data
+ provider, that is still used.
+ */
+ XDataSource getUsedData();
+
+ /** attaches an XNumberFormatsSupplier to this
+ XDataReceiver.
+
+ <p>The given number formats will be used for display purposes.</p>
+ */
+ void attachNumberFormatsSupplier( [in] com::sun::star::util::XNumberFormatsSupplier xSupplier );
+
+ /** Returns a component at which a view representing the data of
+ the attached data provider may listen for highlighting the
+ data ranges used by the currently selected objects in the data
+ receiver component.
+
+ <p>This is typically used by a spreadsheet to highlight the
+ ranges used by the currently selected object in a chart.</p>
+
+ <p>The range highlighter is optional, i.e., this method may
+ return an empty object.</p>
+ */
+ XRangeHighlighter getRangeHighlighter();
+
+ /** A callback object to execute a foreign popup menu window.
+
+ @since LibreOffice 5.4
+ */
+ com::sun::star::awt::XRequestCallback getPopupRequest();
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XDataSequence.idl b/offapi/com/sun/star/chart2/data/XDataSequence.idl
new file mode 100644
index 000000000..28999c01c
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XDataSequence.idl
@@ -0,0 +1,132 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XDataSequence_idl
+#define com_sun_star_chart2_data_XDataSequence_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/chart2/data/LabelOrigin.idl>
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** allows access to a one-dimensional sequence of data.
+
+ <p>The data that is stored in this container may contain different
+ types.</p>
+ */
+interface XDataSequence : ::com::sun::star::uno::XInterface
+{
+ /** retrieves the data stored in this component.
+
+ @return a sequence containing the actual data. This sequence
+ is a copy of the internal data. Therefore changing
+ this object does not affect the content of the
+ XDataSequence object.
+ */
+ sequence< any > getData();
+
+ /** returns the (UI) range representation string used by this
+ XDataSequence.
+ */
+ string getSourceRangeRepresentation();
+
+ /** creates a label that describes the origin of this data
+ sequence.
+
+ <p>This is useful, if a XLabeledDataSequence has
+ no label sequence. In this case you can call this method at
+ the value sequence to obtain a fitting replacement label.</p>
+
+ <p>The sequence returned here may be empty if no suitable
+ label can be generated.</p>
+
+ <p>The strings returned should be localized.</p>
+
+ @param eLabelOrigin
+ denotes what part of the range should be used for label
+ generation. If you have, e.g., one cell only, the
+ parameter COLUMN enables you to get the name of the cell's
+ column, the parameter ROW will give you its row name.
+
+ If you have a non quadratic range you can ask for labels for
+ the longer side with parameter LONG_SIDE or you can obtain labels
+ for the shorter side with parameter SHORT_SIDE.
+
+ If the range is not structured in a tabular way you may receive
+ no label.
+
+ @return
+ Suitable labels for the given sequence depending on the range
+ of the sequence and the parameter <code>eLabelOrigin</code> passed.
+ In a spreadsheet this would typically be a label like "Column x"
+ for the short side used as DataSeries name and maybe a
+ sequence "Row 1" "Row 2" "Row 3" for the long side to be used
+ as categories for example.
+
+ Example: Assuming this sequence has a Range representation spanning
+ row 5 and 6 in column 8. Following sequences of strings or similar strings
+ are expected as return values:
+
+ generateLabel( SHORT_SIDE ) -> "Column 8"
+ generateLabel( LONG_SIDE ) -> "Row 5" "Row 6"
+ generateLabel( COLUMN ) -> "Column 8"
+ generateLabel( ROW ) -> "Row 5" "Row 6"
+
+ Which strings exactly you return depends on the naming scheme of the application
+ which provides its tabular data.
+ */
+ sequence< string > generateLabel( [in] com::sun::star::chart2::data::LabelOrigin eLabelOrigin );
+
+ /** returns a number format key for the value at the given index
+ in the data sequence. If nIndex is -1, a key for the entire
+ sequence should be returned, e.g. the most commonly used one.
+
+ <p>If number formats are not supported, or there is no
+ heuristic to return a key for the entire series, return 0
+ here.</p>
+
+ <p>The number format key must be valid for the
+ com::sun::star::util::XNumberFormatsSupplier
+ given by the XDataProvider, or 0 which is assumed
+ to be always valid.</p>
+ */
+ long getNumberFormatKeyByIndex( [in] long nIndex )
+ raises( ::com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XDataSink.idl b/offapi/com/sun/star/chart2/data/XDataSink.idl
new file mode 100644
index 000000000..6595109f2
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XDataSink.idl
@@ -0,0 +1,71 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XDataSink_idl
+#define com_sun_star_chart2_data_XDataSink_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/chart2/data/XLabeledDataSequence.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** is a container for sequences of data. With this interface data
+ can only be written to.
+
+ <p>If you want to be able to also read the data set here, your
+ component must also implement XDataSource.</p>
+ */
+interface XDataSink : ::com::sun::star::uno::XInterface
+{
+ /** sets new data sequences. The elements set here must support
+ the service DataSequence.
+
+ <p>If the data consist only of floating point numbers (double
+ values), the instances set here should also support the
+ service NumericalDataSequence.</p>
+
+ <p>If the data consist only of strings, the instances set here
+ should also support the service
+ TextualDataSequence.</p>
+
+ <p>If one of the derived services is supported by one element
+ of the sequence, it should be available for all elements in
+ the sequence.</p>
+ */
+ void setData( [in] sequence< XLabeledDataSequence > aData );
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XDataSource.idl b/offapi/com/sun/star/chart2/data/XDataSource.idl
new file mode 100644
index 000000000..4312460ee
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XDataSource.idl
@@ -0,0 +1,76 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XDataSource_idl
+#define com_sun_star_chart2_data_XDataSource_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/chart2/data/XLabeledDataSequence.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+
+/** provides access to sequences of data. With this interface data
+ can only be read from.
+
+ <p>If the data stored consists only of floating point numbers (double
+ values), the returned instances should also support the service
+ NumericalDataSequence.</p>
+
+ <p>If the data stored consists only of strings, the returned
+ instances should also support the service
+ TextualDataSequence.</p>
+ */
+interface XDataSource : ::com::sun::star::uno::XInterface
+// : ::com::sun::star::container::XIndexAccess
+{
+ /** returns data sequences.
+
+ @return a sequence of objects that support at least the
+ service DataSequence.
+
+ <p>If the data stored consist only of floating point numbers
+ (double values), the returned instances should also support
+ the service NumericalDataSequence.</p>
+
+ <p>If the data stored consist only of strings, the returned
+ instances should also support the service
+ TextualDataSequence.</p>
+ */
+ sequence< XLabeledDataSequence > getDataSequences();
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl
new file mode 100644
index 000000000..c8c0bcafb
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl
@@ -0,0 +1,206 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_chart2_data_XDatabaseDataProvider_idl__
+#define __com_sun_star_chart2_data_XDatabaseDataProvider_idl__
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/beans/UnknownPropertyException.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/sdbc/XConnection.idl>
+#include <com/sun/star/sdbc/XParameters.idl>
+#include <com/sun/star/sdbc/XRowSet.idl>
+#include <com/sun/star/chart2/data/XDataProvider.idl>
+#include <com/sun/star/chart2/data/XRangeXMLConversion.idl>
+
+
+ module com { module sun { module star { module chart2 { module data {
+
+
+/** identifies a XDataProvider for result sets.
+
+ @see XDataProvider
+ @see DataProvider
+ */
+interface XDatabaseDataProvider
+{
+ /** For accessing data a component provides for being used by
+ charts.
+ */
+ interface XDataProvider;
+
+ /** allows you to convert the ranges a data provider deals with
+ internally into valid XML.
+ */
+ interface XRangeXMLConversion;
+
+ /** allows access to the properties of the instance.
+ */
+ interface com::sun::star::lang::XInitialization;
+
+ /** allows life-time control of the database data provider.
+ */
+ interface com::sun::star::lang::XComponent;
+
+ /** allows access to the properties of the instance.
+ */
+ interface com::sun::star::beans::XPropertySet;
+
+ interface com::sun::star::sdbc::XParameters;
+ interface com::sun::star::sdbc::XRowSet;
+
+ /** is used for subreports and contains the names of columns of the parent report.
+ <p> These columns are typically the foreign key fields of the parent report.
+ The values of these columns are used to identify the data for the subreport.
+ Each time the parent report changes its current row, the subreport requeries
+ it's data based on the values of the master fields.</p>
+ <p>If the report is no sub report (e.g. its parent is not a report itself), this
+ property is not evaluated.</p>
+
+ */
+ [attribute,bound] sequence<string> MasterFields;
+
+ /**is used for subreports and contains the names of the columns of the subreport
+ which are related to the master fields of the parent report.
+ <p>Entries in this sequence can either denote column names in the sub report,
+ or parameter names.<br/>
+ For instance, you could base the report on the SQL statement
+ <code>SELECT * FROM invoices WHERE cust_ref = :cid</code>, and add <code>cid</code>
+ to the DetailFields property. In this case, the parameter will be filled from
+ the corresponding master field.<br/>
+ Alternatively, you could simply base your report on the table <code>invoices</code>,
+ and add the column name <code>cust_ref</code> to the DetailFields. In this case,
+ and implicit filter clause <code>WHERE cust_ref = :&lt;new_param_name&gt;</code> will
+ be created, and the artificial parameter will be filled from the corresponding
+ master field.<br/>
+ If a string in this property denotes both a column name and a parameter name, it
+ is undefined which way it is interpreted, but implementations of the service are required
+ to either decide for the parameter or the column, and proceed as usual.
+ </p>
+ <p>The columns specified herein typically represent a part of the primary key
+ fields or their aliases of the detail report.</p>
+ <p>If the report is no sub report (e.g. its parent is not a report itself), this
+ property is not evaluated.</p>
+ *
+ */
+ [attribute,bound] sequence<string> DetailFields;
+
+ /** is the command which should be executed, the type of command depends
+ on the CommandType.
+ <p>In case of a #CommandType of CommandType::COMMAND,
+ means in case the #Command specifies an SQL statement, the inherited
+ com::sun::star::sdbc::RowSet::EscapeProcessing
+ becomes relevant:<br/>
+ It then can be to used to specify whether the SQL statement should be analyzed on the
+ client side before sending it to the database server.<br/>
+ The default value for com::sun::star::sdbc::RowSet::EscapeProcessing
+ is `TRUE`. By switching it to `FALSE`, you can pass backend-specific SQL statements,
+ which are not standard SQL, to your database.</p>
+
+
+ @see com::sun::star::sdb::CommandType
+ */
+ [attribute,bound] string Command;
+
+ /** specifies the type of the command to be executed to retrieve a result set.
+
+ <p>#Command needs to be interpreted depending on the value of this property.</p>
+
+ <p>This property is only meaningful together with the #Command
+ property, thus either <em>both</em> or <em>none</em> of them are present.</p>
+
+ @see com::sun::star::sdb::CommandType
+ */
+ [attribute,bound] long CommandType;
+
+ /** specifies an additional filter to optionally use.
+
+ <p>The Filter string has to form a SQL WHERE-clause, <em>without</em> the WHERE-string itself.</p>
+
+ <p>If a #DataSourceName, #Command and #CommandType
+ are specified, a RowSet can be created with this information. If the results provided by the
+ row set are to be additionally filtered, the Filter property can be used.</p>
+
+ <p>Note that the Filter property does not make sense if a resultSet has been specified
+ in the DataAccessDescriptor.</p>
+
+ @see com::sun::star::sdb::RowSet
+ @see ResultSet
+ */
+ [attribute,bound] string Filter;
+
+ /** indicates whether the filter should be applied or not,
+ default is `FALSE`.
+ */
+ [attribute,bound] boolean ApplyFilter;
+
+ /** additional having clause for the row set
+ */
+ [attribute,bound] string HavingClause
+ {
+ set raises (com::sun::star::beans::UnknownPropertyException);
+ };
+
+ /** additional group by for the row set
+ */
+ [attribute,bound] string GroupBy
+ {
+ set raises (com::sun::star::beans::UnknownPropertyException);
+ };
+
+ /** is an additional sort order definition for a row set.
+ */
+ [attribute,bound] string Order;
+
+ /** specifies if the #Command should be analyzed on the client side before sending it
+ to the database server.
+
+ <p>The default value of this property is `TRUE`. By switching it to `FALSE`, you can pass
+ backend-specific SQL statements, which are not standard SQL, to your database.</p>
+
+ <p>This property is usually present together with the #Command and
+ #CommandType properties, and is evaluated if and only if #CommandType
+ equals CommandType::COMMAND.</p>
+ */
+ [attribute,bound] boolean EscapeProcessing;
+
+ /** specifies the maximal count of rows which should be fetched.
+ <p>A value of zero implies that no limit exists.</p>
+ */
+ [attribute,bound] long RowLimit;
+
+ /** specifies the active connection which is used to create the resulting report.
+ */
+ [attribute,bound] com::sun::star::sdbc::XConnection ActiveConnection
+ {
+ set raises (com::sun::star::lang::IllegalArgumentException);
+ };
+ /** is the name of the data source to use, this could be a named data source
+ or the URL of a data access component.
+ */
+ [attribute,bound] string DataSourceName;
+};
+
+
+ }; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl b/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl
new file mode 100644
index 000000000..f856c9dd5
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl
@@ -0,0 +1,73 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XLabeledDataSequence_idl
+#define com_sun_star_chart2_data_XLabeledDataSequence_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/chart2/data/XDataSequence.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** allows access to a one-dimensional sequence of data.
+
+ <p>The data that is stored in this container may contain different
+ types.</p>
+ */
+interface XLabeledDataSequence : ::com::sun::star::uno::XInterface
+{
+ /** returns an XDataSequence containing the actual
+ data.
+ */
+ XDataSequence getValues();
+
+ /** sets a new XDataSequence containing the actual
+ data.
+ */
+ void setValues( [in] XDataSequence xSequence );
+
+ /** returns an XDataSequence containing the label for
+ the labeled sequence.
+ */
+ XDataSequence getLabel();
+
+ /** sets a new XDataSequence containing the label for
+ the labeled sequence.
+ */
+ void setLabel( [in] XDataSequence xSequence );
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl b/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl
new file mode 100644
index 000000000..27016af0c
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl
@@ -0,0 +1,76 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XLabeledDataSequence2_idl
+#define com_sun_star_chart2_data_XLabeledDataSequence2_idl
+
+#include <com/sun/star/util/XCloneable.idl>
+#include <com/sun/star/util/XModifyBroadcaster.idl>
+#include <com/sun/star/chart2/data/XLabeledDataSequence.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/**
+ @since LibreOffice 4.1
+ */
+interface XLabeledDataSequence2
+{
+ /** provides read- and write-access to the underlying data.
+ */
+ interface XLabeledDataSequence;
+
+ /** is used to broadcast when the sequence for labels or values
+ change their identity, or their content changes.
+
+ <p>The LabeledDataSequence should add itself at its
+ XDataSequences for values and labels, and forward any change
+ events coming from there.</p>
+ */
+ interface com::sun::star::util::XModifyBroadcaster;
+
+ /** Allows creating copies of data sequences. If this interface
+ is not supported, the same object will be shared if used by
+ multiple objects.
+
+ <p>If a LabeledDataSequence is cloned, it has to
+ query its contents for the
+ com::sun::star::util::XCloneable interface
+ and use it if available.</p>
+ */
+ interface ::com::sun::star::util::XCloneable;
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl b/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl
new file mode 100644
index 000000000..972a98792
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl
@@ -0,0 +1,54 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XNumericalDataSequence_idl
+#define com_sun_star_chart2_data_XNumericalDataSequence_idl
+
+#include <com/sun/star/chart2/data/XDataSequence.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** allows access to a one-dimensional sequence of double precision
+ floating-point numbers.
+ */
+interface XNumericalDataSequence : ::com::sun::star::uno::XInterface
+{
+ /** retrieves data as `double` values.
+ */
+ sequence< double > getNumericalData();
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl b/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl
new file mode 100644
index 000000000..0405f4637
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl
@@ -0,0 +1,83 @@
+/* -*- 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
+ */
+ sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getColumnFields();
+
+ /** names of row fields from the associated pivot table
+ */
+ sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getRowFields();
+
+ /** names of page fields from the associated pivot table
+ */
+ sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getPageFields();
+
+ /** names of data fields from the associated pivot table
+ */
+ sequence<com::sun::star::chart2::data::PivotTableFieldEntry> getDataFields();
+
+ /** get the associated pivot table name
+ */
+ string getPivotTableName();
+
+ /** set the associated pivot table name
+ */
+ void setPivotTableName([in] string sPivotTableName);
+
+ /** check if the associated pivot table exists
+ */
+ boolean hasPivotTable();
+
+ /** creates a single data sequence of values for the given data series index.
+ *
+ * @param nIndex
+ * index of the data series
+ */
+ 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
+ */
+ XDataSequence createDataSequenceOfLabelsByIndex([in] long nIndex);
+
+ /** creates a single data sequence of categories.
+ */
+ XDataSequence createDataSequenceOfCategories();
+
+ /** field output description: either "- all -", "- multiple -", or specific value
+ *
+ * @param nDimensionIndex
+ * dimension index of the field
+ */
+ string getFieldOutputDescription([in] long nDimensionIndex);
+};
+
+};};};};};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XRangeHighlighter.idl b/offapi/com/sun/star/chart2/data/XRangeHighlighter.idl
new file mode 100644
index 000000000..8e1522721
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XRangeHighlighter.idl
@@ -0,0 +1,64 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XRangeHighlighter_idl
+#define com_sun_star_chart2_data_XRangeHighlighter_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/view/XSelectionChangeListener.idl>
+#include <com/sun/star/chart2/data/HighlightedRange.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+interface XRangeHighlighter : ::com::sun::star::uno::XInterface
+{
+ /** Returns a list of ranges that are used by objects that are
+ currently selected.
+ */
+ sequence< HighlightedRange > getSelectedRanges();
+
+ /** registers an event listener, which is called when the
+ selection is changed and affects different source ranges
+ */
+ void addSelectionChangeListener( [in] com::sun::star::view::XSelectionChangeListener xListener );
+
+ /** unregisters an event listener which was registered with
+ XRangeHighlighter::addSelectionChangeListener()
+ before.
+ */
+ void removeSelectionChangeListener( [in] com::sun::star::view::XSelectionChangeListener xListener );
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XRangeXMLConversion.idl b/offapi/com/sun/star/chart2/data/XRangeXMLConversion.idl
new file mode 100644
index 000000000..1bdffa1b9
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XRangeXMLConversion.idl
@@ -0,0 +1,66 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XRangeXMLConversion_idl
+#define com_sun_star_chart2_data_XRangeXMLConversion_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** An application that provides data for a chart must implement this
+ interface.
+ */
+interface XRangeXMLConversion : ::com::sun::star::uno::XInterface
+{
+ /** converts the range to a valid XML syntax.
+
+ <p>For example spreadsheet ranges consisting of more than one
+ consecutive region are usually separated by a semicolon
+ whereas in XML you separate multiple regions by a space.</p>
+ */
+ string convertRangeToXML( [in] string aRangeRepresentation )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** converts an XML-style range into the internal
+ DataProvider's format.
+ */
+ string convertRangeFromXML( [in] string aXMLRange )
+ raises( com::sun::star::lang::IllegalArgumentException );
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl b/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl
new file mode 100644
index 000000000..cb55e78cd
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl
@@ -0,0 +1,36 @@
+/* -*- 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_XSheetDataProvider_idl
+#define com_sun_star_chart2_data_XSheetDataProvider_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/chart2/data/XDataSequence.idl>
+#include <com/sun/star/sheet/FormulaToken.idl>
+
+module com { module sun { module star { module chart2 { module data {
+
+/**
+ * Interface specific to spreadsheet data provider backend.
+ */
+interface XSheetDataProvider : com::sun::star::uno::XInterface
+{
+ boolean createDataSequenceByFormulaTokensPossible(
+ [in] sequence< com::sun::star::sheet::FormulaToken > aTokens );
+
+ XDataSequence createDataSequenceByFormulaTokens(
+ [in] sequence< com::sun::star::sheet::FormulaToken > aTokens )
+ raises( com::sun::star::lang::IllegalArgumentException );
+};
+
+};};};};};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/XTextualDataSequence.idl b/offapi/com/sun/star/chart2/data/XTextualDataSequence.idl
new file mode 100644
index 000000000..8761f465e
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/XTextualDataSequence.idl
@@ -0,0 +1,53 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_XTextualDataSequence_idl
+#define com_sun_star_chart2_data_XTextualDataSequence_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module com
+{
+module sun
+{
+module star
+{
+module chart2
+{
+module data
+{
+
+/** allows access to a one-dimensional sequence of strings.
+ */
+interface XTextualDataSequence : ::com::sun::star::uno::XInterface
+{
+ /** retrieves the data as strings
+ */
+ sequence< string > getTextualData();
+};
+
+} ; // data
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */