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: "<Table1.A1:D7>".</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