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 24 #ifndef SC_DATAUNO_HXX 25 #define SC_DATAUNO_HXX 26 27 #include "global.hxx" 28 #include "queryparam.hxx" 29 30 #include <com/sun/star/sheet/TableFilterField.hpp> 31 #include <com/sun/star/sheet/GeneralFunction.hpp> 32 #include <com/sun/star/sheet/XCellRangeReferrer.hpp> 33 #include <com/sun/star/sheet/XSheetFilterDescriptor.hpp> 34 #include <com/sun/star/sheet/XConsolidationDescriptor.hpp> 35 #include <com/sun/star/sheet/XDatabaseRanges.hpp> 36 #include <com/sun/star/sheet/XDatabaseRange.hpp> 37 #include <com/sun/star/sheet/XSubTotalDescriptor.hpp> 38 #include <com/sun/star/sheet/XSubTotalField.hpp> 39 #include <com/sun/star/lang/XServiceInfo.hpp> 40 #include <com/sun/star/container/XEnumerationAccess.hpp> 41 #include <com/sun/star/container/XIndexAccess.hpp> 42 #include <com/sun/star/beans/XPropertySet.hpp> 43 #include <com/sun/star/lang/XUnoTunnel.hpp> 44 #include <com/sun/star/container/XNamed.hpp> 45 #include <com/sun/star/util/XRefreshable.hpp> 46 #include <com/sun/star/sheet/XSheetFilterDescriptor2.hpp> 47 #include <cppuhelper/implbase2.hxx> 48 #include <cppuhelper/implbase3.hxx> 49 #include <cppuhelper/implbase4.hxx> 50 #include <cppuhelper/implbase5.hxx> 51 #include <cppuhelper/implbase6.hxx> 52 #include "svl/itemprop.hxx" 53 #include "svl/lstner.hxx" 54 55 class ScDBData; 56 class ScDocShell; 57 58 class ScSubTotalFieldObj; 59 class ScDatabaseRangeObj; 60 class ScDataPilotDescriptorBase; 61 62 struct ScSortParam; 63 64 typedef ::com::sun::star::uno::Reference< 65 ::com::sun::star::util::XRefreshListener >* XDBRefreshListenerPtr; 66 SV_DECL_PTRARR_DEL( XDBRefreshListenerArr_Impl, XDBRefreshListenerPtr, 4, 4 ) 67 68 class ScDataUnoConversion 69 { 70 public: 71 static ScSubTotalFunc GeneralToSubTotal( com::sun::star::sheet::GeneralFunction eSummary ); 72 static com::sun::star::sheet::GeneralFunction SubTotalToGeneral( ScSubTotalFunc eSubTotal ); 73 }; 74 75 76 // ImportDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence 77 78 class ScImportDescriptor 79 { 80 public: 81 static void FillImportParam( 82 ScImportParam& rParam, 83 const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq ); 84 static void FillProperties( 85 com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq, 86 const ScImportParam& rParam ); 87 static long GetPropertyCount(); 88 }; 89 90 // SortDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence 91 92 class ScSortDescriptor 93 { 94 public: 95 static void FillSortParam( 96 ScSortParam& rParam, 97 const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq ); 98 static void FillProperties( 99 com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq, 100 const ScSortParam& rParam ); 101 static long GetPropertyCount(); 102 }; 103 104 105 // ScSubTotalDescriptorBase - Basisklasse fuer SubTotalDescriptor alleine und im DB-Bereich 106 107 // to uno, both look the same 108 109 class ScSubTotalDescriptorBase : public cppu::WeakImplHelper6< 110 com::sun::star::sheet::XSubTotalDescriptor, 111 com::sun::star::container::XEnumerationAccess, 112 com::sun::star::container::XIndexAccess, 113 com::sun::star::beans::XPropertySet, 114 com::sun::star::lang::XUnoTunnel, 115 com::sun::star::lang::XServiceInfo > 116 { 117 private: 118 SfxItemPropertySet aPropSet; 119 120 ScSubTotalFieldObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); 121 122 public: 123 ScSubTotalDescriptorBase(); 124 virtual ~ScSubTotalDescriptorBase(); 125 126 // in derived classes: 127 // (Fields are within the range) 128 virtual void GetData( ScSubTotalParam& rParam ) const = 0; 129 virtual void PutData( const ScSubTotalParam& rParam ) = 0; 130 131 // XSubTotalDescriptor 132 virtual void SAL_CALL addNew( const ::com::sun::star::uno::Sequence< 133 ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns, 134 sal_Int32 nGroupColumn ); 135 virtual void SAL_CALL clear(); 136 137 // XIndexAccess 138 virtual sal_Int32 SAL_CALL getCount(); 139 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ); 140 141 // XEnumerationAccess 142 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 143 createEnumeration(); 144 145 // XElementAccess 146 virtual ::com::sun::star::uno::Type SAL_CALL getElementType(); 147 virtual sal_Bool SAL_CALL hasElements(); 148 149 // XPropertySet 150 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 151 SAL_CALL getPropertySetInfo(); 152 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 153 const ::com::sun::star::uno::Any& aValue ); 154 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 155 const ::rtl::OUString& PropertyName ); 156 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 157 const ::com::sun::star::uno::Reference< 158 ::com::sun::star::beans::XPropertyChangeListener >& xListener ); 159 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 160 const ::com::sun::star::uno::Reference< 161 ::com::sun::star::beans::XPropertyChangeListener >& aListener ); 162 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 163 const ::com::sun::star::uno::Reference< 164 ::com::sun::star::beans::XVetoableChangeListener >& aListener ); 165 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 166 const ::com::sun::star::uno::Reference< 167 ::com::sun::star::beans::XVetoableChangeListener >& aListener ); 168 169 // XUnoTunnel 170 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< 171 sal_Int8 >& aIdentifier ); 172 173 static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); 174 static ScSubTotalDescriptorBase* getImplementation( const com::sun::star::uno::Reference< 175 com::sun::star::sheet::XSubTotalDescriptor> xObj ); 176 177 // XServiceInfo 178 virtual ::rtl::OUString SAL_CALL getImplementationName(); 179 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 180 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(); 181 }; 182 183 184 // ScSubTotalDescriptor - dummer Container zur Benutzung mit XImportTarget 185 186 class ScSubTotalDescriptor : public ScSubTotalDescriptorBase 187 { 188 private: 189 ScSubTotalParam aStoredParam; 190 191 public: 192 ScSubTotalDescriptor(); 193 virtual ~ScSubTotalDescriptor(); 194 195 // von ScSubTotalDescriptorBase: 196 virtual void GetData( ScSubTotalParam& rParam ) const; 197 virtual void PutData( const ScSubTotalParam& rParam ); 198 199 // Zugriff von aussen: 200 void SetParam( const ScSubTotalParam& rNew ); 201 // const ScSubTotalParam& GetParam() const { return aStoredParam; } 202 }; 203 204 205 // ScRangeSubTotalDescriptor - SubTotalDescriptor eines Datenbank-Bereichs 206 207 class ScRangeSubTotalDescriptor : public ScSubTotalDescriptorBase 208 { 209 private: 210 ScDatabaseRangeObj* pParent; 211 212 public: 213 ScRangeSubTotalDescriptor(ScDatabaseRangeObj* pPar); 214 virtual ~ScRangeSubTotalDescriptor(); 215 216 // von ScSubTotalDescriptorBase: 217 virtual void GetData( ScSubTotalParam& rParam ) const; 218 virtual void PutData( const ScSubTotalParam& rParam ); 219 }; 220 221 222 class ScSubTotalFieldObj : public cppu::WeakImplHelper2< 223 com::sun::star::sheet::XSubTotalField, 224 com::sun::star::lang::XServiceInfo > 225 { 226 private: 227 com::sun::star::uno::Reference<com::sun::star::sheet::XSubTotalDescriptor> xRef; 228 ScSubTotalDescriptorBase& rParent; 229 sal_uInt16 nPos; 230 231 public: 232 ScSubTotalFieldObj( ScSubTotalDescriptorBase* pDesc, sal_uInt16 nP ); 233 virtual ~ScSubTotalFieldObj(); 234 235 // XSubTotalField 236 virtual sal_Int32 SAL_CALL getGroupColumn(); 237 virtual void SAL_CALL setGroupColumn( sal_Int32 nGroupColumn ); 238 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::SubTotalColumn > SAL_CALL 239 getSubTotalColumns(); 240 virtual void SAL_CALL setSubTotalColumns( const ::com::sun::star::uno::Sequence< 241 ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns ); 242 243 // XServiceInfo 244 virtual ::rtl::OUString SAL_CALL getImplementationName(); 245 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 246 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(); 247 }; 248 249 250 class ScConsolidationDescriptor : public cppu::WeakImplHelper2< 251 com::sun::star::sheet::XConsolidationDescriptor, 252 com::sun::star::lang::XServiceInfo > 253 { 254 private: 255 ScConsolidateParam aParam; 256 257 public: 258 ScConsolidationDescriptor(); 259 virtual ~ScConsolidationDescriptor(); 260 261 void SetParam( const ScConsolidateParam& rNew ); GetParam() const262 const ScConsolidateParam& GetParam() const { return aParam; } 263 264 // XConsolidationDescriptor 265 virtual ::com::sun::star::sheet::GeneralFunction SAL_CALL getFunction(); 266 virtual void SAL_CALL setFunction( ::com::sun::star::sheet::GeneralFunction nFunction ); 267 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL 268 getSources( ); 269 virtual void SAL_CALL setSources( const ::com::sun::star::uno::Sequence< 270 ::com::sun::star::table::CellRangeAddress >& aSources ); 271 virtual ::com::sun::star::table::CellAddress SAL_CALL getStartOutputPosition(); 272 virtual void SAL_CALL setStartOutputPosition( 273 const ::com::sun::star::table::CellAddress& aStartOutputPosition ); 274 virtual sal_Bool SAL_CALL getUseColumnHeaders(); 275 virtual void SAL_CALL setUseColumnHeaders( sal_Bool bUseColumnHeaders ); 276 virtual sal_Bool SAL_CALL getUseRowHeaders(); 277 virtual void SAL_CALL setUseRowHeaders( sal_Bool bUseRowHeaders ); 278 virtual sal_Bool SAL_CALL getInsertLinks(); 279 virtual void SAL_CALL setInsertLinks( sal_Bool bInsertLinks ); 280 281 // XServiceInfo 282 virtual ::rtl::OUString SAL_CALL getImplementationName(); 283 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 284 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(); 285 }; 286 287 288 // ScFilterDescriptorBase - Basisklasse fuer FilterDescriptor 289 // alleine, im DB-Bereich und im DataPilot 290 291 // to uno, all three look the same 292 293 class ScFilterDescriptorBase : public cppu::WeakImplHelper4< 294 com::sun::star::sheet::XSheetFilterDescriptor, 295 com::sun::star::sheet::XSheetFilterDescriptor2, 296 com::sun::star::beans::XPropertySet, 297 com::sun::star::lang::XServiceInfo >, 298 public SfxListener 299 { 300 private: 301 SfxItemPropertySet aPropSet; 302 ScDocShell* pDocSh; 303 304 public: 305 ScFilterDescriptorBase(ScDocShell* pDocShell); 306 virtual ~ScFilterDescriptorBase(); 307 308 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 309 310 // in den Ableitungen: 311 // (nField[] hier innerhalb des Bereichs) 312 virtual void GetData( ScQueryParam& rParam ) const = 0; 313 virtual void PutData( const ScQueryParam& rParam ) = 0; 314 315 // XSheetFilterDescriptor 316 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TableFilterField > SAL_CALL 317 getFilterFields(); 318 virtual void SAL_CALL setFilterFields( const ::com::sun::star::uno::Sequence< 319 ::com::sun::star::sheet::TableFilterField >& aFilterFields ); 320 321 // XSheetFilterDescriptor2 322 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TableFilterField2 > SAL_CALL 323 getFilterFields2(); 324 virtual void SAL_CALL setFilterFields2( const ::com::sun::star::uno::Sequence< 325 ::com::sun::star::sheet::TableFilterField2 >& aFilterFields ); 326 327 // XPropertySet 328 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 329 SAL_CALL getPropertySetInfo(); 330 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 331 const ::com::sun::star::uno::Any& aValue ); 332 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 333 const ::rtl::OUString& PropertyName ); 334 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 335 const ::com::sun::star::uno::Reference< 336 ::com::sun::star::beans::XPropertyChangeListener >& xListener ); 337 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 338 const ::com::sun::star::uno::Reference< 339 ::com::sun::star::beans::XPropertyChangeListener >& aListener ); 340 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 341 const ::com::sun::star::uno::Reference< 342 ::com::sun::star::beans::XVetoableChangeListener >& aListener ); 343 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 344 const ::com::sun::star::uno::Reference< 345 ::com::sun::star::beans::XVetoableChangeListener >& aListener ); 346 347 // XServiceInfo 348 virtual ::rtl::OUString SAL_CALL getImplementationName(); 349 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 350 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(); 351 }; 352 353 354 // ScFilterDescriptor - dummer Container zur Benutzung mit XFilterable 355 356 class ScFilterDescriptor : public ScFilterDescriptorBase 357 { 358 private: 359 ScQueryParam aStoredParam; // nField[] hier innerhalb des Bereichs 360 361 public: 362 ScFilterDescriptor(ScDocShell* pDocSh); 363 virtual ~ScFilterDescriptor(); 364 365 // von ScFilterDescriptorBase: 366 virtual void GetData( ScQueryParam& rParam ) const; 367 virtual void PutData( const ScQueryParam& rParam ); 368 369 // Zugriff von aussen: 370 void SetParam( const ScQueryParam& rNew ); GetParam() const371 const ScQueryParam& GetParam() const { return aStoredParam; } 372 }; 373 374 375 // ScRangeFilterDescriptor - FilterDescriptor eines Datenbank-Bereichs 376 377 class ScRangeFilterDescriptor : public ScFilterDescriptorBase 378 { 379 private: 380 ScDatabaseRangeObj* pParent; 381 382 public: 383 ScRangeFilterDescriptor(ScDocShell* pDocSh, ScDatabaseRangeObj* pPar); 384 virtual ~ScRangeFilterDescriptor(); 385 386 // von ScFilterDescriptorBase: 387 virtual void GetData( ScQueryParam& rParam ) const; 388 virtual void PutData( const ScQueryParam& rParam ); 389 }; 390 391 392 // ScDataPilotFilterDescriptor - FilterDescriptor eines DataPilotDescriptors 393 394 class ScDataPilotFilterDescriptor : public ScFilterDescriptorBase 395 { 396 private: 397 ScDataPilotDescriptorBase* pParent; 398 399 public: 400 ScDataPilotFilterDescriptor(ScDocShell* pDocSh, ScDataPilotDescriptorBase* pPar); 401 virtual ~ScDataPilotFilterDescriptor(); 402 403 // von ScFilterDescriptorBase: 404 virtual void GetData( ScQueryParam& rParam ) const; 405 virtual void PutData( const ScQueryParam& rParam ); 406 }; 407 408 409 class ScDatabaseRangeObj : public cppu::WeakImplHelper6< 410 com::sun::star::sheet::XDatabaseRange, 411 com::sun::star::util::XRefreshable, 412 com::sun::star::container::XNamed, 413 com::sun::star::sheet::XCellRangeReferrer, 414 com::sun::star::beans::XPropertySet, 415 com::sun::star::lang::XServiceInfo >, 416 public SfxListener 417 { 418 private: 419 ScDocShell* pDocShell; 420 String aName; 421 SfxItemPropertySet aPropSet; 422 XDBRefreshListenerArr_Impl aRefreshListeners; 423 424 private: 425 ScDBData* GetDBData_Impl() const; 426 void Refreshed_Impl(); 427 428 public: 429 ScDatabaseRangeObj(ScDocShell* pDocSh, const String& rNm); 430 virtual ~ScDatabaseRangeObj(); 431 432 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 433 434 // nField[] hier innerhalb des Bereichs: 435 void GetQueryParam(ScQueryParam& rQueryParam) const; 436 void SetQueryParam(const ScQueryParam& rQueryParam); 437 void GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const; 438 void SetSubTotalParam(const ScSubTotalParam& rSubTotalParam); 439 440 // XNamed 441 virtual ::rtl::OUString SAL_CALL getName(); 442 virtual void SAL_CALL setName( const ::rtl::OUString& aName ); 443 444 // XDatabaseRange 445 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDataArea(); 446 virtual void SAL_CALL setDataArea( const ::com::sun::star::table::CellRangeAddress& aDataArea ); 447 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL 448 getSortDescriptor(); 449 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL 450 getFilterDescriptor(); 451 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSubTotalDescriptor > SAL_CALL 452 getSubTotalDescriptor(); 453 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL 454 getImportDescriptor(); 455 // implemented for the XRefreshable Interface 456 // virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); 457 458 // XRefreshable 459 virtual void SAL_CALL refresh(); 460 virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference< 461 ::com::sun::star::util::XRefreshListener >& l ); 462 virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference< 463 ::com::sun::star::util::XRefreshListener >& l ); 464 465 // XCellRangeReferrer 466 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL 467 getReferredCells(); 468 469 // XPropertySet 470 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 471 SAL_CALL getPropertySetInfo(); 472 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 473 const ::com::sun::star::uno::Any& aValue ); 474 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 475 const ::rtl::OUString& PropertyName ); 476 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 477 const ::com::sun::star::uno::Reference< 478 ::com::sun::star::beans::XPropertyChangeListener >& xListener ); 479 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 480 const ::com::sun::star::uno::Reference< 481 ::com::sun::star::beans::XPropertyChangeListener >& aListener ); 482 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 483 const ::com::sun::star::uno::Reference< 484 ::com::sun::star::beans::XVetoableChangeListener >& aListener ); 485 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 486 const ::com::sun::star::uno::Reference< 487 ::com::sun::star::beans::XVetoableChangeListener >& aListener ); 488 489 // XServiceInfo 490 virtual ::rtl::OUString SAL_CALL getImplementationName(); 491 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 492 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(); 493 }; 494 495 496 class ScDatabaseRangesObj : public cppu::WeakImplHelper4< 497 com::sun::star::sheet::XDatabaseRanges, 498 com::sun::star::container::XEnumerationAccess, 499 com::sun::star::container::XIndexAccess, 500 com::sun::star::lang::XServiceInfo >, 501 public SfxListener 502 { 503 private: 504 ScDocShell* pDocShell; 505 506 ScDatabaseRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); 507 ScDatabaseRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); 508 509 public: 510 ScDatabaseRangesObj(ScDocShell* pDocSh); 511 virtual ~ScDatabaseRangesObj(); 512 513 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 514 515 // XDatabaseRanges 516 virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName, 517 const ::com::sun::star::table::CellRangeAddress& aRange ); 518 virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ); 519 520 // XEnumerationAccess 521 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 522 createEnumeration(); 523 524 // XIndexAccess 525 virtual sal_Int32 SAL_CALL getCount(); 526 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ); 527 528 // XElementAccess 529 virtual ::com::sun::star::uno::Type SAL_CALL getElementType(); 530 virtual sal_Bool SAL_CALL hasElements(); 531 532 // XNameAccess 533 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ); 534 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(); 535 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ); 536 537 // XServiceInfo 538 virtual ::rtl::OUString SAL_CALL getImplementationName(); 539 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 540 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(); 541 }; 542 543 544 545 #endif 546