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