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