xref: /aoo4110/main/sw/inc/unochart.hxx (revision b1cdbd2c)
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 _UNOCHART_HXX
24 #define _UNOCHART_HXX
25 
26 #include <map>
27 #include <set>
28 
29 #include <com/sun/star/lang/XUnoTunnel.hpp>
30 #include <com/sun/star/chart2/data/XDataProvider.hpp>
31 #include <com/sun/star/chart2/data/XDataSource.hpp>
32 #include <com/sun/star/chart2/data/XDataSequence.hpp>
33 #include <com/sun/star/chart2/data/XTextualDataSequence.hpp>
34 #include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
35 #include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
36 #include <com/sun/star/chart2/data/XRangeXMLConversion.hpp>
37 #include <com/sun/star/chart2/data/DataSequenceRole.hpp>
38 #include <com/sun/star/lang/XServiceInfo.hpp>
39 #include <com/sun/star/beans/XPropertySet.hpp>
40 #include <com/sun/star/util/XCloneable.hpp>
41 #include <com/sun/star/lang/XComponent.hpp>
42 #include <com/sun/star/lang/XEventListener.hpp>
43 #include <com/sun/star/util/XModifiable.hpp>
44 #include <com/sun/star/util/XModifyBroadcaster.hpp>
45 #include <com/sun/star/util/XModifyListener.hpp>
46 #include <com/sun/star/chart/ChartDataRowSource.hpp>
47 
48 #include <cppuhelper/interfacecontainer.h>  //OMultiTypeInterfaceContainerHelper
49 #include <cppuhelper/implbase2.hxx> // helper for implementations
50 #include <cppuhelper/implbase4.hxx> // helper for implementations
51 #include <cppuhelper/implbase6.hxx> // helper for implementations
52 #include <cppuhelper/implbase10.hxx> // helper for implementations
53 #include <cppuhelper/weakref.hxx>
54 
55 #include <tools/string.hxx>
56 #include <tools/link.hxx>
57 #include <vcl/timer.hxx>
58 
59 #include <calbck.hxx>
60 
61 
62 class SfxItemPropertySet;
63 class SwDoc;
64 class SwTable;
65 class SwTableBox;
66 class SwUnoCrsr;
67 struct SwRangeDescriptor;
68 class SwSelBoxes;
69 class SwFrmFmt;
70 
71 //////////////////////////////////////////////////////////////////////
72 
73 sal_Bool FillRangeDescriptor( SwRangeDescriptor &rDesc, const String &rCellRangeName );
74 
75 //////////////////////////////////////////////////////////////////////
76 
77 class SwChartHelper
78 {
79 public:
80     static void DoUpdateAllCharts( SwDoc* pDoc );
81 };
82 
83 //////////////////////////////////////////////////////////////////////
84 
85 class SwChartLockController_Helper
86 {
87     SwDoc   *pDoc;
88 
89     DECL_LINK( DoUnlockAllCharts, Timer * );
90     Timer   aUnlockTimer;   // timer to unlock chart controllers
91     bool    bIsLocked;
92 
93 
94     // disallow use of d-tor, copy c-tor and assignment operator
95     SwChartLockController_Helper( const SwChartLockController_Helper & );
96     SwChartLockController_Helper & operator = ( const SwChartLockController_Helper & );
97 
98     void LockUnlockAllCharts( sal_Bool bLock );
LockAllCharts()99     void LockAllCharts()    { LockUnlockAllCharts( sal_True ); };
UnlockAllCharts()100     void UnlockAllCharts()  { LockUnlockAllCharts( sal_False ); };
101 
102 public:
103     SwChartLockController_Helper( SwDoc *pDocument );
104     ~SwChartLockController_Helper();
105 
106     void StartOrContinueLocking();
107     void Disconnect();
108 };
109 
110 //////////////////////////////////////////////////////////////////////
111 
112 typedef cppu::WeakImplHelper4
113 <
114     ::com::sun::star::chart2::data::XDataProvider,
115     ::com::sun::star::chart2::data::XRangeXMLConversion,
116     ::com::sun::star::lang::XComponent,
117     ::com::sun::star::lang::XServiceInfo
118 >
119 SwChartDataProviderBaseClass;
120 
121 class SwChartDataProvider :
122     public SwChartDataProviderBaseClass,
123     public SwClient
124 {
125 
126     // used to keep weak-references to all data-sequences of a single table
127     // see set definition below...
128     struct lt_DataSequenceRef
129     {
operator ()SwChartDataProvider::lt_DataSequenceRef130         bool operator()( ::com::sun::star::uno::WeakReference< ::com::sun::star::chart2::data::XDataSequence > xWRef1, ::com::sun::star::uno::WeakReference< ::com::sun::star::chart2::data::XDataSequence > xWRef2 ) const
131         {
132             ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > xRef1( xWRef1 );
133             ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > xRef2( xWRef2 );
134             return xRef1.get() < xRef2.get();
135         }
136     };
137     typedef std::set< ::com::sun::star::uno::WeakReference < ::com::sun::star::chart2::data::XDataSequence >, lt_DataSequenceRef > Set_DataSequenceRef_t;
138 
139     // map of data-sequence sets for each table
140     struct lt_SwTable_Ptr
141     {
operator ()SwChartDataProvider::lt_SwTable_Ptr142         bool operator()( const SwTable *p1, const SwTable *p2 ) const
143         {
144             return p1 < p2;
145         }
146     };
147     typedef std::map< const SwTable *, Set_DataSequenceRef_t, lt_SwTable_Ptr > Map_Set_DataSequenceRef_t;
148 
149 
150     // map of all data-sequences provided directly or indirectly (e.g. via
151     // data-source) by this object. Since there is only one object of this type
152     // for each document it should hold references to all used data-sequences for
153     // all tables of the document.
154     mutable Map_Set_DataSequenceRef_t       aDataSequences;
155 
156     ::cppu::OInterfaceContainerHelper       aEvtListeners;
157     const SwDoc *                           pDoc;
158     sal_Bool                                bDisposed;
159 
160 
161     // disallow use of c-tor and assignment operator
162     SwChartDataProvider( const SwChartDataProvider & );
163     SwChartDataProvider & operator = ( const SwChartDataProvider & );
164 
165     ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSource > SAL_CALL Impl_createDataSource( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArguments, sal_Bool bTestOnly = sal_False ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
166     ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > SAL_CALL Impl_createDataSequenceByRangeRepresentation( const ::rtl::OUString& aRangeRepresentation, sal_Bool bTestOnly = sal_False  ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
167 
168     rtl::OUString GetBrokenCellRangeForExport( const rtl::OUString &rCellRangeRepresentation );
169 
170 protected:
171     //SwClient
172     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
173 
174 public:
175     SwChartDataProvider( const SwDoc* pDoc );
176     virtual ~SwChartDataProvider();
177 
178     // XDataProvider
179     virtual ::sal_Bool SAL_CALL createDataSourcePossible( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArguments ) throw (::com::sun::star::uno::RuntimeException);
180     virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSource > SAL_CALL createDataSource( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArguments ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
181     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL detectArguments( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSource >& xDataSource ) throw (::com::sun::star::uno::RuntimeException);
182     virtual ::sal_Bool SAL_CALL createDataSequenceByRangeRepresentationPossible( const ::rtl::OUString& aRangeRepresentation ) throw (::com::sun::star::uno::RuntimeException);
183     virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > SAL_CALL createDataSequenceByRangeRepresentation( const ::rtl::OUString& aRangeRepresentation ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
184     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XRangeSelection > SAL_CALL getRangeSelection(  ) throw (::com::sun::star::uno::RuntimeException);
185 
186     // XRangeXMLConversion
187     virtual ::rtl::OUString SAL_CALL convertRangeToXML( const ::rtl::OUString& aRangeRepresentation ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
188     virtual ::rtl::OUString SAL_CALL convertRangeFromXML( const ::rtl::OUString& aXMLRange ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
189 
190     // XComponent
191     virtual void SAL_CALL dispose(  ) throw (::com::sun::star::uno::RuntimeException);
192     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
193     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
194 
195     // XServiceInfo
196     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
197     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
198     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
199 
GetFrmFmt() const200     SwFrmFmt*       GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
201 
202     void        AddDataSequence( const SwTable &rTable, ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > &rxDataSequence );
203     void        RemoveDataSequence( const SwTable &rTable, ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > &rxDataSequence );
204 
205     // will send modifdied events for all data-sequences of the table
206     void        InvalidateTable( const SwTable *pTable );
207     sal_Bool    DeleteBox( const SwTable *pTable, const SwTableBox &rBox );
208     void        DisposeAllDataSequences( const SwTable *pTable );
209 
210     // functionality needed to get notified about new added rows/cols
211     void        AddRowCols( const SwTable &rTable, const SwSelBoxes& rBoxes, sal_uInt16 nLines, sal_Bool bBehind );
212 };
213 
214 //////////////////////////////////////////////////////////////////////
215 
216 typedef cppu::WeakImplHelper2
217 <
218     ::com::sun::star::chart2::data::XDataSource,
219     ::com::sun::star::lang::XServiceInfo
220 >
221 SwChartDataSourceBaseClass;
222 
223 class SwChartDataSource :
224     public SwChartDataSourceBaseClass
225 {
226     com::sun::star::uno::Sequence<
227         com::sun::star::uno::Reference<
228             com::sun::star::chart2::data::XLabeledDataSequence > > aLDS;
229 
230     // disallow use of c-tor and assignment operator
231     SwChartDataSource( const SwChartDataSource & );
232     SwChartDataSource & operator = ( const SwChartDataSource & );
233 
234 public:
235     SwChartDataSource( const com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::chart2::data::XLabeledDataSequence > > &rLDS );
236     virtual ~SwChartDataSource();
237 
238     // XDataSource
239     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences(  ) throw (::com::sun::star::uno::RuntimeException);
240 
241     // XServiceInfo
242     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
243     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
244     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
245 };
246 
247 //////////////////////////////////////////////////////////////////////
248 
249 typedef cppu::WeakImplHelper10
250 <
251     ::com::sun::star::chart2::data::XDataSequence,
252     ::com::sun::star::chart2::data::XTextualDataSequence,
253     ::com::sun::star::chart2::data::XNumericalDataSequence,
254     ::com::sun::star::util::XCloneable,
255     ::com::sun::star::beans::XPropertySet,
256     ::com::sun::star::lang::XServiceInfo,
257     ::com::sun::star::lang::XUnoTunnel,
258     ::com::sun::star::util::XModifiable,
259     ::com::sun::star::lang::XEventListener,
260     ::com::sun::star::lang::XComponent
261 >
262 SwChartDataSequenceBaseClass;
263 
264 class SwChartDataSequence :
265     public SwChartDataSequenceBaseClass,
266     public SwClient
267 {
268     ::cppu::OInterfaceContainerHelper                       aEvtListeners;
269     ::cppu::OInterfaceContainerHelper                       aModifyListeners;
270     ::com::sun::star::chart2::data::DataSequenceRole        aRole;
271 
272     String  aRowLabelText;
273     String  aColLabelText;
274 
275     // holds a reference to the data-provider to guarantee it's lifetime last as
276     // long as the pointer may be used.
277     ::com::sun::star::uno::Reference< com::sun::star::chart2::data::XDataProvider >    xDataProvider;
278     SwChartDataProvider *                   pDataProvider;
279 
280     SwUnoCrsr*                  pTblCrsr;   // cursor spanned over cells to use
281 	SwDepend					aCursorDepend; //the cursor is removed after the doc has been removed
282 
283     const SfxItemPropertySet*   _pPropSet;
284 
285     sal_Bool    bDisposed;
286 
287     // disallow use of c-tor and assignment operator
288     SwChartDataSequence( const SwChartDataSequence &rObj );
289     SwChartDataSequence & operator = ( const SwChartDataSequence & );
290 
291 protected:
292     //SwClient
293     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
294 
295 public:
296     SwChartDataSequence( SwChartDataProvider &rProvider,
297                          SwFrmFmt   &rTblFmt,
298                          SwUnoCrsr  *pTableCursor );
299     virtual ~SwChartDataSequence();
300 
301     static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
302 
303     //XUnoTunnel
304     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
305 
306     // XDataSequence
307     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getData(  ) throw (::com::sun::star::uno::RuntimeException);
308     virtual ::rtl::OUString SAL_CALL getSourceRangeRepresentation(  ) throw (::com::sun::star::uno::RuntimeException);
309     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL generateLabel( ::com::sun::star::chart2::data::LabelOrigin eLabelOrigin ) throw (::com::sun::star::uno::RuntimeException);
310     virtual ::sal_Int32 SAL_CALL getNumberFormatKeyByIndex( ::sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
311 
312     // XTextualDataSequence
313     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getTextualData(  ) throw (::com::sun::star::uno::RuntimeException);
314 
315     // XNumericalDataSequence
316     virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getNumericalData(  ) throw (::com::sun::star::uno::RuntimeException);
317 
318     // XCloneable
319     virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone(  ) throw (::com::sun::star::uno::RuntimeException);
320 
321     // XPropertySet
322     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw (::com::sun::star::uno::RuntimeException);
323     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
324     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
325     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
326     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
327     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
328     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
329 
330     // XServiceInfo
331     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
332     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
333     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
334 
335     // XModifiable
336     virtual ::sal_Bool SAL_CALL isModified(  ) throw (::com::sun::star::uno::RuntimeException);
337     virtual void SAL_CALL setModified( ::sal_Bool bModified ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
338 
339     // XModifyBroadcaster
340     virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
341     virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
342 
343     // XEventListener
344     virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
345 
346     // XComponent
347     virtual void SAL_CALL dispose(  ) throw (::com::sun::star::uno::RuntimeException);
348     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
349     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
350 
GetFrmFmt() const351     SwFrmFmt*   GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
352     sal_Bool    DeleteBox( const SwTableBox &rBox );
353 
354     void        FillRangeDesc( SwRangeDescriptor &rRangeDesc ) const;
355     bool        ExtendTo( bool bExtendCol, sal_Int32 nFirstNew, sal_Int32 nCount );
356 };
357 
358 //////////////////////////////////////////////////////////////////////
359 
360 typedef cppu::WeakImplHelper6
361 <
362     ::com::sun::star::chart2::data::XLabeledDataSequence,
363     ::com::sun::star::util::XCloneable,
364     ::com::sun::star::lang::XServiceInfo,
365     ::com::sun::star::util::XModifyListener,
366     ::com::sun::star::util::XModifyBroadcaster,
367     ::com::sun::star::lang::XComponent
368 >
369 SwChartLabeledDataSequenceBaseClass;
370 
371 class SwChartLabeledDataSequence :
372     public SwChartLabeledDataSequenceBaseClass
373 {
374     ::cppu::OInterfaceContainerHelper                           aEvtListeners;
375     ::cppu::OInterfaceContainerHelper                           aModifyListeners;
376 
377     ::com::sun::star::uno::Reference<
378             ::com::sun::star::chart2::data::XDataSequence >     xData;
379     ::com::sun::star::uno::Reference<
380             ::com::sun::star::chart2::data::XDataSequence >     xLabels;
381 
382     sal_Bool    bDisposed;
383 
384     // disallow use of c-tor and assignment operator
385     SwChartLabeledDataSequence( const SwChartLabeledDataSequence & );
386     SwChartLabeledDataSequence & operator = ( const SwChartLabeledDataSequence & );
387 
388 	void	SetDataSequence( ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence >& rxDest, const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence >& rxSource );
389 
390 
391 public:
392     SwChartLabeledDataSequence();
393     virtual ~SwChartLabeledDataSequence();
394 
395     // XLabeledDataSequence
396     virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > SAL_CALL getValues(  ) throw (::com::sun::star::uno::RuntimeException);
397     virtual void SAL_CALL setValues( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence >& xSequence ) throw (::com::sun::star::uno::RuntimeException);
398     virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > SAL_CALL getLabel(  ) throw (::com::sun::star::uno::RuntimeException);
399     virtual void SAL_CALL setLabel( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence >& xSequence ) throw (::com::sun::star::uno::RuntimeException);
400 
401     // XCloneable
402     virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone(  ) throw (::com::sun::star::uno::RuntimeException);
403 
404     // XServiceInfo
405     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
406     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
407     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
408 
409     // XEventListener
410     virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
411 
412     // XModifyListener
413     virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
414 
415     // XModifyBroadcaster
416     virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
417     virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
418 
419     // XComponent
420     virtual void SAL_CALL dispose(  ) throw (::com::sun::star::uno::RuntimeException);
421     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
422     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
423 };
424 
425 //////////////////////////////////////////////////////////////////////
426 
427 #endif
428 
429