sync master with lastest vba changes
[ooovba.git] / sc / inc / datauno.hxx
blobff75ba837d8c170ac53df56c895d150c8db4c528
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: datauno.hxx,v $
10 * $Revision: 1.8.32.1 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef SC_DATAUNO_HXX
32 #define SC_DATAUNO_HXX
34 #include "global.hxx"
35 #include <svtools/itemprop.hxx>
36 #include <svtools/lstner.hxx>
37 #include <com/sun/star/sheet/TableFilterField.hpp>
38 #include <com/sun/star/sheet/GeneralFunction.hpp>
39 #include <com/sun/star/sheet/XCellRangeReferrer.hpp>
40 #include <com/sun/star/sheet/XSheetFilterDescriptor.hpp>
41 #include <com/sun/star/sheet/XConsolidationDescriptor.hpp>
42 #include <com/sun/star/sheet/XDatabaseRanges.hpp>
43 #include <com/sun/star/sheet/XDatabaseRange.hpp>
44 #include <com/sun/star/sheet/XSubTotalDescriptor.hpp>
45 #include <com/sun/star/sheet/XSubTotalField.hpp>
46 #include <com/sun/star/lang/XServiceInfo.hpp>
47 #include <com/sun/star/container/XEnumerationAccess.hpp>
48 #include <com/sun/star/container/XIndexAccess.hpp>
49 #include <com/sun/star/beans/XPropertySet.hpp>
50 #include <com/sun/star/lang/XUnoTunnel.hpp>
51 #include <com/sun/star/container/XNamed.hpp>
52 #include <com/sun/star/util/XRefreshable.hpp>
53 #include <cppuhelper/implbase2.hxx>
54 #include <cppuhelper/implbase3.hxx>
55 #include <cppuhelper/implbase4.hxx>
56 #include <cppuhelper/implbase5.hxx>
57 #include <cppuhelper/implbase6.hxx>
59 class ScDBData;
60 class ScDocShell;
62 class ScSubTotalFieldObj;
63 class ScDatabaseRangeObj;
64 class ScDataPilotDescriptorBase;
66 struct ScSortParam;
68 typedef ::com::sun::star::uno::Reference<
69 ::com::sun::star::util::XRefreshListener >* XDBRefreshListenerPtr;
70 SV_DECL_PTRARR_DEL( XDBRefreshListenerArr_Impl, XDBRefreshListenerPtr, 4, 4 )
72 class ScDataUnoConversion
74 public:
75 static ScSubTotalFunc GeneralToSubTotal( com::sun::star::sheet::GeneralFunction eSummary );
76 static com::sun::star::sheet::GeneralFunction SubTotalToGeneral( ScSubTotalFunc eSubTotal );
80 // ImportDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence
82 class ScImportDescriptor
84 public:
85 static void FillImportParam(
86 ScImportParam& rParam,
87 const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq );
88 static void FillProperties(
89 com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq,
90 const ScImportParam& rParam );
91 static long GetPropertyCount();
94 // SortDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence
96 class ScSortDescriptor
98 public:
99 static void FillSortParam(
100 ScSortParam& rParam,
101 const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq );
102 static void FillProperties(
103 com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq,
104 const ScSortParam& rParam );
105 static long GetPropertyCount();
109 // ScSubTotalDescriptorBase - Basisklasse fuer SubTotalDescriptor alleine und im DB-Bereich
111 // to uno, both look the same
113 class ScSubTotalDescriptorBase : public cppu::WeakImplHelper6<
114 com::sun::star::sheet::XSubTotalDescriptor,
115 com::sun::star::container::XEnumerationAccess,
116 com::sun::star::container::XIndexAccess,
117 com::sun::star::beans::XPropertySet,
118 com::sun::star::lang::XUnoTunnel,
119 com::sun::star::lang::XServiceInfo >
121 private:
122 SfxItemPropertySet aPropSet;
124 ScSubTotalFieldObj* GetObjectByIndex_Impl(USHORT nIndex);
126 public:
127 ScSubTotalDescriptorBase();
128 virtual ~ScSubTotalDescriptorBase();
130 // in derived classes:
131 // (Fields are within the range)
132 virtual void GetData( ScSubTotalParam& rParam ) const = 0;
133 virtual void PutData( const ScSubTotalParam& rParam ) = 0;
135 // XSubTotalDescriptor
136 virtual void SAL_CALL addNew( const ::com::sun::star::uno::Sequence<
137 ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns,
138 sal_Int32 nGroupColumn )
139 throw(::com::sun::star::uno::RuntimeException);
140 virtual void SAL_CALL clear() throw(::com::sun::star::uno::RuntimeException);
142 // XIndexAccess
143 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
144 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
145 throw(::com::sun::star::lang::IndexOutOfBoundsException,
146 ::com::sun::star::lang::WrappedTargetException,
147 ::com::sun::star::uno::RuntimeException);
149 // XEnumerationAccess
150 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
151 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
153 // XElementAccess
154 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
155 throw(::com::sun::star::uno::RuntimeException);
156 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
158 // XPropertySet
159 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
160 SAL_CALL getPropertySetInfo()
161 throw(::com::sun::star::uno::RuntimeException);
162 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
163 const ::com::sun::star::uno::Any& aValue )
164 throw(::com::sun::star::beans::UnknownPropertyException,
165 ::com::sun::star::beans::PropertyVetoException,
166 ::com::sun::star::lang::IllegalArgumentException,
167 ::com::sun::star::lang::WrappedTargetException,
168 ::com::sun::star::uno::RuntimeException);
169 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
170 const ::rtl::OUString& PropertyName )
171 throw(::com::sun::star::beans::UnknownPropertyException,
172 ::com::sun::star::lang::WrappedTargetException,
173 ::com::sun::star::uno::RuntimeException);
174 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
175 const ::com::sun::star::uno::Reference<
176 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
177 throw(::com::sun::star::beans::UnknownPropertyException,
178 ::com::sun::star::lang::WrappedTargetException,
179 ::com::sun::star::uno::RuntimeException);
180 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
181 const ::com::sun::star::uno::Reference<
182 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
183 throw(::com::sun::star::beans::UnknownPropertyException,
184 ::com::sun::star::lang::WrappedTargetException,
185 ::com::sun::star::uno::RuntimeException);
186 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
187 const ::com::sun::star::uno::Reference<
188 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
189 throw(::com::sun::star::beans::UnknownPropertyException,
190 ::com::sun::star::lang::WrappedTargetException,
191 ::com::sun::star::uno::RuntimeException);
192 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
193 const ::com::sun::star::uno::Reference<
194 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
195 throw(::com::sun::star::beans::UnknownPropertyException,
196 ::com::sun::star::lang::WrappedTargetException,
197 ::com::sun::star::uno::RuntimeException);
199 // XUnoTunnel
200 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence<
201 sal_Int8 >& aIdentifier )
202 throw(::com::sun::star::uno::RuntimeException);
204 static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
205 static ScSubTotalDescriptorBase* getImplementation( const com::sun::star::uno::Reference<
206 com::sun::star::sheet::XSubTotalDescriptor> xObj );
208 // XServiceInfo
209 virtual ::rtl::OUString SAL_CALL getImplementationName()
210 throw(::com::sun::star::uno::RuntimeException);
211 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
212 throw(::com::sun::star::uno::RuntimeException);
213 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
214 throw(::com::sun::star::uno::RuntimeException);
218 // ScSubTotalDescriptor - dummer Container zur Benutzung mit XImportTarget
220 class ScSubTotalDescriptor : public ScSubTotalDescriptorBase
222 private:
223 ScSubTotalParam aStoredParam;
225 public:
226 ScSubTotalDescriptor();
227 virtual ~ScSubTotalDescriptor();
229 // von ScSubTotalDescriptorBase:
230 virtual void GetData( ScSubTotalParam& rParam ) const;
231 virtual void PutData( const ScSubTotalParam& rParam );
233 // Zugriff von aussen:
234 void SetParam( const ScSubTotalParam& rNew );
235 // const ScSubTotalParam& GetParam() const { return aStoredParam; }
239 // ScRangeSubTotalDescriptor - SubTotalDescriptor eines Datenbank-Bereichs
241 class ScRangeSubTotalDescriptor : public ScSubTotalDescriptorBase
243 private:
244 ScDatabaseRangeObj* pParent;
246 public:
247 ScRangeSubTotalDescriptor(ScDatabaseRangeObj* pPar);
248 virtual ~ScRangeSubTotalDescriptor();
250 // von ScSubTotalDescriptorBase:
251 virtual void GetData( ScSubTotalParam& rParam ) const;
252 virtual void PutData( const ScSubTotalParam& rParam );
256 class ScSubTotalFieldObj : public cppu::WeakImplHelper2<
257 com::sun::star::sheet::XSubTotalField,
258 com::sun::star::lang::XServiceInfo >
260 private:
261 com::sun::star::uno::Reference<com::sun::star::sheet::XSubTotalDescriptor> xRef;
262 ScSubTotalDescriptorBase& rParent;
263 USHORT nPos;
265 public:
266 ScSubTotalFieldObj( ScSubTotalDescriptorBase* pDesc, USHORT nP );
267 virtual ~ScSubTotalFieldObj();
269 // XSubTotalField
270 virtual sal_Int32 SAL_CALL getGroupColumn() throw(::com::sun::star::uno::RuntimeException);
271 virtual void SAL_CALL setGroupColumn( sal_Int32 nGroupColumn )
272 throw(::com::sun::star::uno::RuntimeException);
273 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::SubTotalColumn > SAL_CALL
274 getSubTotalColumns() throw(::com::sun::star::uno::RuntimeException);
275 virtual void SAL_CALL setSubTotalColumns( const ::com::sun::star::uno::Sequence<
276 ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns )
277 throw(::com::sun::star::uno::RuntimeException);
279 // XServiceInfo
280 virtual ::rtl::OUString SAL_CALL getImplementationName()
281 throw(::com::sun::star::uno::RuntimeException);
282 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
283 throw(::com::sun::star::uno::RuntimeException);
284 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
285 throw(::com::sun::star::uno::RuntimeException);
289 class ScConsolidationDescriptor : public cppu::WeakImplHelper2<
290 com::sun::star::sheet::XConsolidationDescriptor,
291 com::sun::star::lang::XServiceInfo >
293 private:
294 ScConsolidateParam aParam;
296 public:
297 ScConsolidationDescriptor();
298 virtual ~ScConsolidationDescriptor();
300 void SetParam( const ScConsolidateParam& rNew );
301 const ScConsolidateParam& GetParam() const { return aParam; }
303 // XConsolidationDescriptor
304 virtual ::com::sun::star::sheet::GeneralFunction SAL_CALL getFunction()
305 throw(::com::sun::star::uno::RuntimeException);
306 virtual void SAL_CALL setFunction( ::com::sun::star::sheet::GeneralFunction nFunction )
307 throw(::com::sun::star::uno::RuntimeException);
308 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL
309 getSources( ) throw(::com::sun::star::uno::RuntimeException);
310 virtual void SAL_CALL setSources( const ::com::sun::star::uno::Sequence<
311 ::com::sun::star::table::CellRangeAddress >& aSources )
312 throw(::com::sun::star::uno::RuntimeException);
313 virtual ::com::sun::star::table::CellAddress SAL_CALL getStartOutputPosition()
314 throw(::com::sun::star::uno::RuntimeException);
315 virtual void SAL_CALL setStartOutputPosition(
316 const ::com::sun::star::table::CellAddress& aStartOutputPosition )
317 throw(::com::sun::star::uno::RuntimeException);
318 virtual sal_Bool SAL_CALL getUseColumnHeaders() throw(::com::sun::star::uno::RuntimeException);
319 virtual void SAL_CALL setUseColumnHeaders( sal_Bool bUseColumnHeaders )
320 throw(::com::sun::star::uno::RuntimeException);
321 virtual sal_Bool SAL_CALL getUseRowHeaders() throw(::com::sun::star::uno::RuntimeException);
322 virtual void SAL_CALL setUseRowHeaders( sal_Bool bUseRowHeaders )
323 throw(::com::sun::star::uno::RuntimeException);
324 virtual sal_Bool SAL_CALL getInsertLinks() throw(::com::sun::star::uno::RuntimeException);
325 virtual void SAL_CALL setInsertLinks( sal_Bool bInsertLinks )
326 throw(::com::sun::star::uno::RuntimeException);
328 // XServiceInfo
329 virtual ::rtl::OUString SAL_CALL getImplementationName()
330 throw(::com::sun::star::uno::RuntimeException);
331 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
332 throw(::com::sun::star::uno::RuntimeException);
333 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
334 throw(::com::sun::star::uno::RuntimeException);
338 // ScFilterDescriptorBase - Basisklasse fuer FilterDescriptor
339 // alleine, im DB-Bereich und im DataPilot
341 // to uno, all three look the same
343 class ScFilterDescriptorBase : public cppu::WeakImplHelper3<
344 com::sun::star::sheet::XSheetFilterDescriptor,
345 com::sun::star::beans::XPropertySet,
346 com::sun::star::lang::XServiceInfo >,
347 public SfxListener
349 private:
350 SfxItemPropertySet aPropSet;
351 ScDocShell* pDocSh;
353 public:
354 ScFilterDescriptorBase(ScDocShell* pDocShell);
355 virtual ~ScFilterDescriptorBase();
357 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
359 // in den Ableitungen:
360 // (nField[] hier innerhalb des Bereichs)
361 virtual void GetData( ScQueryParam& rParam ) const = 0;
362 virtual void PutData( const ScQueryParam& rParam ) = 0;
364 // XSheetFilterDescriptor
365 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TableFilterField > SAL_CALL
366 getFilterFields() throw(::com::sun::star::uno::RuntimeException);
367 virtual void SAL_CALL setFilterFields( const ::com::sun::star::uno::Sequence<
368 ::com::sun::star::sheet::TableFilterField >& aFilterFields )
369 throw(::com::sun::star::uno::RuntimeException);
371 // XPropertySet
372 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
373 SAL_CALL getPropertySetInfo()
374 throw(::com::sun::star::uno::RuntimeException);
375 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
376 const ::com::sun::star::uno::Any& aValue )
377 throw(::com::sun::star::beans::UnknownPropertyException,
378 ::com::sun::star::beans::PropertyVetoException,
379 ::com::sun::star::lang::IllegalArgumentException,
380 ::com::sun::star::lang::WrappedTargetException,
381 ::com::sun::star::uno::RuntimeException);
382 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
383 const ::rtl::OUString& PropertyName )
384 throw(::com::sun::star::beans::UnknownPropertyException,
385 ::com::sun::star::lang::WrappedTargetException,
386 ::com::sun::star::uno::RuntimeException);
387 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
388 const ::com::sun::star::uno::Reference<
389 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
390 throw(::com::sun::star::beans::UnknownPropertyException,
391 ::com::sun::star::lang::WrappedTargetException,
392 ::com::sun::star::uno::RuntimeException);
393 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
394 const ::com::sun::star::uno::Reference<
395 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
396 throw(::com::sun::star::beans::UnknownPropertyException,
397 ::com::sun::star::lang::WrappedTargetException,
398 ::com::sun::star::uno::RuntimeException);
399 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
400 const ::com::sun::star::uno::Reference<
401 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
402 throw(::com::sun::star::beans::UnknownPropertyException,
403 ::com::sun::star::lang::WrappedTargetException,
404 ::com::sun::star::uno::RuntimeException);
405 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
406 const ::com::sun::star::uno::Reference<
407 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
408 throw(::com::sun::star::beans::UnknownPropertyException,
409 ::com::sun::star::lang::WrappedTargetException,
410 ::com::sun::star::uno::RuntimeException);
412 // XServiceInfo
413 virtual ::rtl::OUString SAL_CALL getImplementationName()
414 throw(::com::sun::star::uno::RuntimeException);
415 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
416 throw(::com::sun::star::uno::RuntimeException);
417 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
418 throw(::com::sun::star::uno::RuntimeException);
422 // ScFilterDescriptor - dummer Container zur Benutzung mit XFilterable
424 class ScFilterDescriptor : public ScFilterDescriptorBase
426 private:
427 ScQueryParam aStoredParam; // nField[] hier innerhalb des Bereichs
429 public:
430 ScFilterDescriptor(ScDocShell* pDocSh);
431 virtual ~ScFilterDescriptor();
433 // von ScFilterDescriptorBase:
434 virtual void GetData( ScQueryParam& rParam ) const;
435 virtual void PutData( const ScQueryParam& rParam );
437 // Zugriff von aussen:
438 void SetParam( const ScQueryParam& rNew );
439 const ScQueryParam& GetParam() const { return aStoredParam; }
443 // ScRangeFilterDescriptor - FilterDescriptor eines Datenbank-Bereichs
445 class ScRangeFilterDescriptor : public ScFilterDescriptorBase
447 private:
448 ScDatabaseRangeObj* pParent;
450 public:
451 ScRangeFilterDescriptor(ScDocShell* pDocSh, ScDatabaseRangeObj* pPar);
452 virtual ~ScRangeFilterDescriptor();
454 // von ScFilterDescriptorBase:
455 virtual void GetData( ScQueryParam& rParam ) const;
456 virtual void PutData( const ScQueryParam& rParam );
460 // ScDataPilotFilterDescriptor - FilterDescriptor eines DataPilotDescriptors
462 class ScDataPilotFilterDescriptor : public ScFilterDescriptorBase
464 private:
465 ScDataPilotDescriptorBase* pParent;
467 public:
468 ScDataPilotFilterDescriptor(ScDocShell* pDocSh, ScDataPilotDescriptorBase* pPar);
469 virtual ~ScDataPilotFilterDescriptor();
471 // von ScFilterDescriptorBase:
472 virtual void GetData( ScQueryParam& rParam ) const;
473 virtual void PutData( const ScQueryParam& rParam );
477 class ScDatabaseRangeObj : public cppu::WeakImplHelper6<
478 com::sun::star::sheet::XDatabaseRange,
479 com::sun::star::util::XRefreshable,
480 com::sun::star::container::XNamed,
481 com::sun::star::sheet::XCellRangeReferrer,
482 com::sun::star::beans::XPropertySet,
483 com::sun::star::lang::XServiceInfo >,
484 public SfxListener
486 private:
487 ScDocShell* pDocShell;
488 String aName;
489 SfxItemPropertySet aPropSet;
490 XDBRefreshListenerArr_Impl aRefreshListeners;
492 private:
493 ScDBData* GetDBData_Impl() const;
494 void Refreshed_Impl();
496 public:
497 ScDatabaseRangeObj(ScDocShell* pDocSh, const String& rNm);
498 virtual ~ScDatabaseRangeObj();
500 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
502 // nField[] hier innerhalb des Bereichs:
503 void GetQueryParam(ScQueryParam& rQueryParam) const;
504 void SetQueryParam(const ScQueryParam& rQueryParam);
505 void GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const;
506 void SetSubTotalParam(const ScSubTotalParam& rSubTotalParam);
508 // XNamed
509 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
510 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
511 throw(::com::sun::star::uno::RuntimeException);
513 // XDatabaseRange
514 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDataArea()
515 throw(::com::sun::star::uno::RuntimeException);
516 virtual void SAL_CALL setDataArea( const ::com::sun::star::table::CellRangeAddress& aDataArea )
517 throw(::com::sun::star::uno::RuntimeException);
518 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL
519 getSortDescriptor() throw(::com::sun::star::uno::RuntimeException);
520 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL
521 getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException);
522 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSubTotalDescriptor > SAL_CALL
523 getSubTotalDescriptor() throw(::com::sun::star::uno::RuntimeException);
524 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL
525 getImportDescriptor() throw(::com::sun::star::uno::RuntimeException);
526 // implemented for the XRefreshable Interface
527 // virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException);
529 // XRefreshable
530 virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException);
531 virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference<
532 ::com::sun::star::util::XRefreshListener >& l )
533 throw(::com::sun::star::uno::RuntimeException);
534 virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference<
535 ::com::sun::star::util::XRefreshListener >& l )
536 throw(::com::sun::star::uno::RuntimeException);
538 // XCellRangeReferrer
539 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL
540 getReferredCells() throw(::com::sun::star::uno::RuntimeException);
542 // XPropertySet
543 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
544 SAL_CALL getPropertySetInfo()
545 throw(::com::sun::star::uno::RuntimeException);
546 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
547 const ::com::sun::star::uno::Any& aValue )
548 throw(::com::sun::star::beans::UnknownPropertyException,
549 ::com::sun::star::beans::PropertyVetoException,
550 ::com::sun::star::lang::IllegalArgumentException,
551 ::com::sun::star::lang::WrappedTargetException,
552 ::com::sun::star::uno::RuntimeException);
553 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
554 const ::rtl::OUString& PropertyName )
555 throw(::com::sun::star::beans::UnknownPropertyException,
556 ::com::sun::star::lang::WrappedTargetException,
557 ::com::sun::star::uno::RuntimeException);
558 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
559 const ::com::sun::star::uno::Reference<
560 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
561 throw(::com::sun::star::beans::UnknownPropertyException,
562 ::com::sun::star::lang::WrappedTargetException,
563 ::com::sun::star::uno::RuntimeException);
564 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
565 const ::com::sun::star::uno::Reference<
566 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
567 throw(::com::sun::star::beans::UnknownPropertyException,
568 ::com::sun::star::lang::WrappedTargetException,
569 ::com::sun::star::uno::RuntimeException);
570 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
571 const ::com::sun::star::uno::Reference<
572 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
573 throw(::com::sun::star::beans::UnknownPropertyException,
574 ::com::sun::star::lang::WrappedTargetException,
575 ::com::sun::star::uno::RuntimeException);
576 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
577 const ::com::sun::star::uno::Reference<
578 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
579 throw(::com::sun::star::beans::UnknownPropertyException,
580 ::com::sun::star::lang::WrappedTargetException,
581 ::com::sun::star::uno::RuntimeException);
583 // XServiceInfo
584 virtual ::rtl::OUString SAL_CALL getImplementationName()
585 throw(::com::sun::star::uno::RuntimeException);
586 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
587 throw(::com::sun::star::uno::RuntimeException);
588 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
589 throw(::com::sun::star::uno::RuntimeException);
593 class ScDatabaseRangesObj : public cppu::WeakImplHelper4<
594 com::sun::star::sheet::XDatabaseRanges,
595 com::sun::star::container::XEnumerationAccess,
596 com::sun::star::container::XIndexAccess,
597 com::sun::star::lang::XServiceInfo >,
598 public SfxListener
600 private:
601 ScDocShell* pDocShell;
603 ScDatabaseRangeObj* GetObjectByIndex_Impl(USHORT nIndex);
604 ScDatabaseRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName);
606 public:
607 ScDatabaseRangesObj(ScDocShell* pDocSh);
608 virtual ~ScDatabaseRangesObj();
610 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
612 // XDatabaseRanges
613 virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName,
614 const ::com::sun::star::table::CellRangeAddress& aRange )
615 throw(::com::sun::star::uno::RuntimeException);
616 virtual void SAL_CALL removeByName( const ::rtl::OUString& aName )
617 throw(::com::sun::star::uno::RuntimeException);
619 // XEnumerationAccess
620 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
621 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
623 // XIndexAccess
624 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
625 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
626 throw(::com::sun::star::lang::IndexOutOfBoundsException,
627 ::com::sun::star::lang::WrappedTargetException,
628 ::com::sun::star::uno::RuntimeException);
630 // XElementAccess
631 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
632 throw(::com::sun::star::uno::RuntimeException);
633 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
635 // XNameAccess
636 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
637 throw(::com::sun::star::container::NoSuchElementException,
638 ::com::sun::star::lang::WrappedTargetException,
639 ::com::sun::star::uno::RuntimeException);
640 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
641 throw(::com::sun::star::uno::RuntimeException);
642 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
643 throw(::com::sun::star::uno::RuntimeException);
645 // XServiceInfo
646 virtual ::rtl::OUString SAL_CALL getImplementationName()
647 throw(::com::sun::star::uno::RuntimeException);
648 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
649 throw(::com::sun::star::uno::RuntimeException);
650 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
651 throw(::com::sun::star::uno::RuntimeException);
656 #endif