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