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