1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef com_sun_star_chart2_DataSeries_idl
24#define com_sun_star_chart2_DataSeries_idl
25
26#include <com/sun/star/beans/PropertySet.idl>
27#include <com/sun/star/container/XIndexContainer.idl>
28#include <com/sun/star/container/XContainer.idl>
29#include <com/sun/star/style/XStyle.idl>
30
31//#include <com/sun/star/chart2/ChartTypeSupplier.idl>
32#include <com/sun/star/chart2/CoordinateSystemSupplier.idl>
33#include <com/sun/star/chart2/data/XDataSink.idl>
34#include <com/sun/star/chart2/data/XDataSource.idl>
35#include <com/sun/star/chart2/data/XDataSeries.idl>
36#include <com/sun/star/chart2/XRegressionCurveContainer.idl>
37
38module com
39{
40module sun
41{
42module star
43{
44module chart2
45{
46
47    // NOTES
48
49    // kombinierbarkeit - data series combiner (andere Komponente?)
50    //
51    // coordinatesystem-supplier
52    //
53    // chart-typ ? property string rendererServiceName
54
55
56/** reflects the model data of the object that has all the information
57    for a <type>DataRenderer</type> to create a visible data series in
58    a chart.
59
60    <p>It combines one or more <type>DataSequence</type>s which are
61    interpreted by evaluating their role-string.</p>
62
63    @see DataSequenceRole
64  */
65service DataSeries
66{
67    /** allows to connect a CoordinateSystem to a DataSeries
68     */
69//     service CoordinateSystemSupplier;
70
71//    service ChartTypeSupplier;
72    /** the property interface by which the properties of all
73        supported services are exchanged
74    */
75    service ::com::sun::star::beans::PropertySet;
76
77    /** these properties serve as default for data points.
78
79        <p>So, an attribute for a data point comes from one point in
80        the following hierarchy:</p>
81
82        <ul>
83         <li>default value of data series</li>
84         <li>value from style of data series (if a style was set)</li>
85         <li>value from hard attribute of data series (set with setPropertyValue)</li>
86         <li>value from style of data point (if a style was set)</li>
87         <li>value from hard attribute of data point (set with setPropertyValue)</li>
88        </ul>
89     */
90    service DataPointProperties;
91
92    // ----------------------------------------------------------------------
93
94    /** allows setting a coordinate-system
95     */
96    interface XDataSeries;
97
98    /** allows attaching data sequences to a series.
99     */
100    interface data::XDataSink;
101
102    /** allows querying the data that was set.
103     */
104    interface data::XDataSource;
105
106    /** gives access to the data points contained in a data series.
107
108        <p>The objects returned by the
109        <type scope="com::sun::star::container">XIndexAccess</type>
110        are of type
111        <type scope="com::sun::star::beans">XPropertySet</type>
112        and support the service
113        <type>DataPoint</type>.
114    */
115//     interface ::com::sun::star::container::XIndexContainer;
116
117    /** establishes a broadcaster-listener mechanism for the
118        <type scope="com::sun::star::container">XIndexContainer</type>
119        to keep changes and the property
120        <member>DataSeries::AttributedDataPoints</member> in sync.
121     */
122//     interface ::com::sun::star::container::XContainer;
123
124    /** Holds regression curves (aka trend-lines) for a data series.
125     */
126    [optional] interface XRegressionCurveContainer;
127
128    // ----------------------------------------------------------------------
129
130    /** This service will be used to render this data series.
131
132        <p>This service name can be used to determine which DataSeries
133        are of the same type.</p>
134
135        <p>The result of the
136        <member>DataSeries::DataSequenceRoles</member> depends on the
137        renderer service set here.</p>
138     */
139    // stored at the DataSeriesGroup now
140//     [property] string                             DataRendererServiceName;
141
142    /** a sequence of indexes denoting which data points have set
143        properties that differ from the default.
144
145        <p>The default values are determined by the properties set at
146        the <member>DataPointProperties</member> of the data
147        series.</p>
148
149        <p>If the sequence is empty, that means that all data points
150        look alike.  They are formatted using the propery values set
151        in the data series.</p>
152
153        <p>The indexes in this sequence match the indexes used by the
154        <type>XIndexContainer</type>.</p>
155
156        <p>This property is especially useful for large data series
157        with only some formatted data points, because you do not have
158        to iterate over all elements.</p>
159     */
160    [readonly, optional, property] sequence< long > AttributedDataPoints;
161
162    /** indicates wether this series should be stacked with respect to the previous series.
163    */
164    [property] StackingDirection StackingDirection;
165
166    /** If <TRUE/>, the data points of this series get different
167        colors by default, like in a pie chart.
168     */
169    [optional, property] boolean                    VaryColorsByPoint;
170
171    /** This property describes wether the series should be shown at
172        the main value axis or at the secondary value axis.  Having
173        this property not set or setting it to 0 means that this data
174        series will be scaled at the primary y-axis ( of the
175        coordinate system in which this series is hosted ).
176
177        <p>Setting this property to 1 means that this series should be
178        scaled at the secondary y-axis.  If there is no secondary axis
179        the main axis should be used for scaling instead.</p>
180
181        <p>If you want to scale a series at a different x or z axis
182        you need to create an additional coordinate system and host
183        this series there.</p>
184    */
185    [optional, property] long                       AttachedAxisIndex;
186};
187
188} ; // chart2
189} ; // com
190} ; // sun
191} ; // star
192
193
194#endif
195