1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef com_sun_star_chart2_data_TabularDataProviderArguments_idl
28#define com_sun_star_chart2_data_TabularDataProviderArguments_idl
29
30#include <com/sun/star/chart/ChartDataRowSource.idl>
31
32module com
33{
34module sun
35{
36module star
37{
38module chart2
39{
40module data
41{
42
43/**
44  */
45service TabularDataProviderArguments
46{
47    /** the range address string spanning all data.
48
49        <p>The range adress string must be interpretable by the
50        component that implements <type>XDataProvider</type> and gets
51        this property as argument to
52        <member>XDataProvider::detectArguments</member>.</p>
53
54        <p>The representation string is of a form that may be used in the
55        user interface.  Example for OOo Calc: "$Sheet1.$A$1:$D$7",
56        example for OOo Writer: "&lt;Table1.A1:D7&gt;".</p>
57
58        <p>When used as input, this range will be split in columns or
59        rows depending on the property
60        <member>DataRowSource</member>.</p>
61
62        <p>When used as output of
63        <member>XDataProvider::detectArguments</member> this is the
64        range that spans the ranges of all given
65        <type>XDataSequence</type>s.  If the result is ambiguous,
66        i.e., a splitting of this range would not yield the same
67        result, this property should be empty.  The latter is the
68        case, when ranges are overlapping, the lengths of sequences
69        are not equal or even if the order of two sequences is swapped
70        (e.g. data comes from column A, C, B).</p>
71     */
72    [property]   string                                        CellRangeRepresentation;
73
74    /** determines, whether data sequences are created out of columns
75        or rows in a table.
76
77        <p>If this property is not given as argument it is assumed to
78        <member scope="com::sun::star::chart">ChartDataRowSource::COLUMNS</member>,
79        i.e., the default is "take data from columns".</p>
80     */
81    [property]   ::com::sun::star::chart::ChartDataRowSource   DataRowSource;
82
83    /** If data comes from columns, the first row will provide the
84        labels for all sequences, if data comes from rows, the first
85        column will provide the labels for all sequences.
86
87        <p>Even if this property is false, the
88        <type>XLabeledDataSequence</type> may contain a label, but
89        this will not be the first cell of the selection.  It may be a
90        generic string like "Column C".</p>
91
92        <p>If this property is not given as argument it is assumed to
93        be <FALSE/>, i.e., the default is "no labels".</p>
94     */
95    [property]   boolean                                       FirstCellAsLabel;
96
97    /** determines the order of the created labeled sequences
98
99        <p>For example a SequenceMapping of [3,0,2,1] indicates that
100        the sequence from old position '3' should now be the first one.
101        Then comes the sequence from old position '0'. Then that one
102        from old position '2' and then the sequence from old position '1'.</p>
103
104        <p>If the SequenceMapping contains invalid indexes just
105        ignore those single indexes. For example if you only have three
106        labeled sequences and a SequenceMapping [2,5,1,0], you should
107        ignore the '5' and continue to place the sequence from
108        old index '1' to the next new position and so on.</p>
109
110        <p>If the given SequenceMapping does not cover all exsisting
111        labeled sequences just put the remaining sequences in old order
112        behind the others. For example you have 4 sequences and a
113        SequenceMapping [3,1]. The result should be a as if [3,1,0,2]
114        was given.</p>
115     */
116    [property]   sequence< long >                              SequenceMapping;
117
118    /** If <FALSE/> the data provider may create a data sequence
119        containing generated categories that fit the rest of the data,
120        like e.g. "Row 12", "Row 13", etc.
121
122        <p>This property is not relevant for the splitting up of the
123        data.  It just indicates, if the chart wants to use part of
124        the data as categories, so that generic categories can be
125        returned if it doesn't.</p>
126
127        <p>The generic category labeled sequence returned should be
128        the first one in the returned <type>XDataSource</type>. It
129        needs no label. The values should have their role set to
130        "categories".  The generic strings returned should also be
131        localized.</p>
132     */
133    [optional, property] boolean                               HasCategories;
134
135    /** This property is for providing proprietary table indexes for
136        each table appearing in a range given in
137        CellRangeRepresentation.
138
139        @deprecated
140
141        <p>This argument is supported by Spreadsheets in order to be
142        able to export a document into the StarOffice 5.0 binary
143        format.</p>
144
145        <p>Example: If you have the sheets (Sheet1, Sheet2, Sheet3) in
146        your document and a chart uses the range
147        "Sheet2.A1:.A5 Sheet3.A1:.A5 Sheet2.B1:.B5 Sheet1:B1:.B5", your
148        TableNumberList would be "1 2 1 0".  A simple range like
149        "Sheet1.A1:.E4" would have the TableNumberList in "0"</p>.
150     */
151    [optional, property] string                               TableNumberList;
152};
153
154} ; // data
155} ; // chart2
156} ; // com
157} ; // sun
158} ; // star
159
160
161#endif
162