update dev300-m58
[ooovba.git] / sc / inc / dapiuno.hxx
blob056fb152aff721bad8ff29967689b7e9210288bf
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: dapiuno.hxx,v $
10 * $Revision: 1.10.30.2 $
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_DAPIUNO_HXX
32 #define SC_DAPIUNO_HXX
34 #include "global.hxx"
35 #include "dpobject.hxx"
36 #include "rangeutl.hxx" // ScArea
37 #include <svtools/lstner.hxx>
38 #include <svtools/itemprop.hxx>
40 #include <com/sun/star/lang/XServiceInfo.hpp>
41 #include <com/sun/star/lang/XUnoTunnel.hpp>
42 #include <com/sun/star/beans/XPropertySet.hpp>
43 #include <com/sun/star/container/XEnumerationAccess.hpp>
44 #include <com/sun/star/container/XNameContainer.hpp>
46 #include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp>
47 #include <com/sun/star/sheet/DataPilotFieldGroupInfo.hpp>
48 #include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp>
49 #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
50 #include <com/sun/star/sheet/DataPilotFieldReference.hpp>
51 #include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
52 #include <com/sun/star/sheet/GeneralFunction.hpp>
53 #include <com/sun/star/sheet/XDataPilotDataLayoutFieldSupplier.hpp>
54 #include <com/sun/star/sheet/XDataPilotDescriptor.hpp>
55 #include <com/sun/star/sheet/XDataPilotField.hpp>
56 #include <com/sun/star/sheet/XDataPilotFieldGrouping.hpp>
57 #include <com/sun/star/sheet/XDataPilotTable.hpp>
58 #include <com/sun/star/sheet/XDataPilotTable2.hpp>
59 #include <com/sun/star/sheet/XDataPilotTables.hpp>
61 #include <cppuhelper/implbase2.hxx>
62 #include <cppuhelper/implbase3.hxx>
63 #include <cppuhelper/implbase4.hxx>
64 #include <cppuhelper/implbase5.hxx>
66 #include <memory>
67 #include <vector>
69 namespace com { namespace sun { namespace star { namespace sheet {
70 struct DataPilotFieldFilter;
71 struct DataPilotTablePositionData;
72 }}}}
74 class ScDocShell;
75 class ScDPSaveDimension;
76 class ScDPSaveGroupDimension;
77 class ScDPSaveNumGroupDimension;
78 struct ScDPNumGroupInfo;
80 class ScDataPilotTableObj;
81 class ScDataPilotFieldObj;
82 class ScDataPilotItemObj;
85 class ScDataPilotConversion
87 public:
88 static com::sun::star::sheet::GeneralFunction FirstFunc( USHORT nBits );
89 static USHORT FunctionBit( com::sun::star::sheet::GeneralFunction eFunc );
91 static void FillGroupInfo(
92 ::com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo,
93 const ScDPNumGroupInfo& rGroupInfo );
96 // ============================================================================
98 /** DataPilotTables collection per sheet. */
99 class ScDataPilotTablesObj : public cppu::WeakImplHelper4<
100 com::sun::star::sheet::XDataPilotTables,
101 com::sun::star::container::XEnumerationAccess,
102 com::sun::star::container::XIndexAccess,
103 com::sun::star::lang::XServiceInfo>,
104 public SfxListener
106 private:
107 ScDocShell* pDocShell;
108 SCTAB nTab;
110 ScDataPilotTableObj* GetObjectByIndex_Impl( sal_Int32 nIndex );
111 ScDataPilotTableObj* GetObjectByName_Impl(const ::rtl::OUString& aName);
113 public:
114 ScDataPilotTablesObj(ScDocShell* pDocSh, SCTAB nT);
115 virtual ~ScDataPilotTablesObj();
117 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
119 // XDataPilotTables
120 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotDescriptor > SAL_CALL
121 createDataPilotDescriptor() throw(::com::sun::star::uno::RuntimeException);
122 virtual void SAL_CALL insertNewByName( const ::rtl::OUString& aName,
123 const ::com::sun::star::table::CellAddress& aOutputAddress,
124 const ::com::sun::star::uno::Reference<
125 ::com::sun::star::sheet::XDataPilotDescriptor >& xDescriptor )
126 throw(::com::sun::star::uno::RuntimeException);
127 virtual void SAL_CALL removeByName( const ::rtl::OUString& aName )
128 throw(::com::sun::star::uno::RuntimeException);
130 // XNameAccess
131 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
132 throw(::com::sun::star::container::NoSuchElementException,
133 ::com::sun::star::lang::WrappedTargetException,
134 ::com::sun::star::uno::RuntimeException);
135 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
136 throw(::com::sun::star::uno::RuntimeException);
137 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
138 throw(::com::sun::star::uno::RuntimeException);
140 // XIndexAccess
141 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
142 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
143 throw(::com::sun::star::lang::IndexOutOfBoundsException,
144 ::com::sun::star::lang::WrappedTargetException,
145 ::com::sun::star::uno::RuntimeException);
147 // XEnumerationAccess
148 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
149 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
151 // XElementAccess
152 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
153 throw(::com::sun::star::uno::RuntimeException);
154 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
156 // XServiceInfo
157 virtual ::rtl::OUString SAL_CALL getImplementationName()
158 throw(::com::sun::star::uno::RuntimeException);
159 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
160 throw(::com::sun::star::uno::RuntimeException);
161 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
162 throw(::com::sun::star::uno::RuntimeException);
165 // ============================================================================
167 // ScDataPilotDescriptorBase is never instantiated directly
168 class ScDataPilotDescriptorBase : public com::sun::star::sheet::XDataPilotDescriptor,
169 public com::sun::star::beans::XPropertySet,
170 public com::sun::star::sheet::XDataPilotDataLayoutFieldSupplier,
171 public com::sun::star::lang::XServiceInfo,
172 public com::sun::star::lang::XUnoTunnel,
173 public com::sun::star::lang::XTypeProvider,
174 public cppu::OWeakObject,
175 public SfxListener
177 private:
178 SfxItemPropertySet maPropSet;
179 ScDocShell* pDocShell;
181 public:
182 ScDataPilotDescriptorBase(ScDocShell* pDocSh);
183 virtual ~ScDataPilotDescriptorBase();
185 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
186 const ::com::sun::star::uno::Type & rType )
187 throw(::com::sun::star::uno::RuntimeException);
188 virtual void SAL_CALL acquire() throw();
189 virtual void SAL_CALL release() throw();
191 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
193 ScDocShell* GetDocShell() const { return pDocShell; }
195 // in den Ableitungen:
196 virtual ScDPObject* GetDPObject() const = 0;
197 virtual void SetDPObject(ScDPObject* pDPObj) = 0;
199 // XDataPilotDescriptor
200 // getName, setName, getTag, setTag in derived classes
202 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getSourceRange()
203 throw(::com::sun::star::uno::RuntimeException);
204 virtual void SAL_CALL setSourceRange( const ::com::sun::star::table::CellRangeAddress& aSourceRange )
205 throw(::com::sun::star::uno::RuntimeException);
206 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL
207 getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException);
208 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
209 getDataPilotFields() throw(::com::sun::star::uno::RuntimeException);
210 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
211 getColumnFields() throw(::com::sun::star::uno::RuntimeException);
212 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
213 getRowFields() throw(::com::sun::star::uno::RuntimeException);
214 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
215 getPageFields() throw(::com::sun::star::uno::RuntimeException);
216 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
217 getDataFields() throw(::com::sun::star::uno::RuntimeException);
218 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
219 getHiddenFields() throw(::com::sun::star::uno::RuntimeException);
221 // XPropertySet
222 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
223 SAL_CALL getPropertySetInfo( )
224 throw(::com::sun::star::uno::RuntimeException);
225 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
226 const ::com::sun::star::uno::Any& aValue )
227 throw(::com::sun::star::beans::UnknownPropertyException,
228 ::com::sun::star::beans::PropertyVetoException,
229 ::com::sun::star::lang::IllegalArgumentException,
230 ::com::sun::star::lang::WrappedTargetException,
231 ::com::sun::star::uno::RuntimeException);
232 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
233 const ::rtl::OUString& PropertyName )
234 throw(::com::sun::star::beans::UnknownPropertyException,
235 ::com::sun::star::lang::WrappedTargetException,
236 ::com::sun::star::uno::RuntimeException);
237 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
238 const ::com::sun::star::uno::Reference<
239 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
240 throw(::com::sun::star::beans::UnknownPropertyException,
241 ::com::sun::star::lang::WrappedTargetException,
242 ::com::sun::star::uno::RuntimeException);
243 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
244 const ::com::sun::star::uno::Reference<
245 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
246 throw(::com::sun::star::beans::UnknownPropertyException,
247 ::com::sun::star::lang::WrappedTargetException,
248 ::com::sun::star::uno::RuntimeException);
249 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
250 const ::com::sun::star::uno::Reference<
251 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
252 throw(::com::sun::star::beans::UnknownPropertyException,
253 ::com::sun::star::lang::WrappedTargetException,
254 ::com::sun::star::uno::RuntimeException);
255 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
256 const ::com::sun::star::uno::Reference<
257 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
258 throw(::com::sun::star::beans::UnknownPropertyException,
259 ::com::sun::star::lang::WrappedTargetException,
260 ::com::sun::star::uno::RuntimeException);
262 // XDataPilotDataLayoutFieldSupplier
263 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotField >
264 SAL_CALL getDataLayoutField()
265 throw(::com::sun::star::uno::RuntimeException);
267 // XUnoTunnel
268 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence<
269 sal_Int8 >& aIdentifier )
270 throw(::com::sun::star::uno::RuntimeException);
272 static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
273 static ScDataPilotDescriptorBase* getImplementation( const com::sun::star::uno::Reference<
274 com::sun::star::sheet::XDataPilotDescriptor> xObj );
276 // XTypeProvider (overloaded in ScDataPilotTableObj)
277 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
278 throw(::com::sun::star::uno::RuntimeException);
279 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
280 throw(::com::sun::star::uno::RuntimeException);
282 // XServiceInfo is in derived classes
285 // ============================================================================
287 class ScDataPilotDescriptor : public ScDataPilotDescriptorBase
289 private:
290 ScDPObject* mpDPObject;
292 public:
293 ScDataPilotDescriptor(ScDocShell* pDocSh);
294 virtual ~ScDataPilotDescriptor();
296 virtual ScDPObject* GetDPObject() const;
297 virtual void SetDPObject(ScDPObject* pDPObj);
299 // rest of XDataPilotDescriptor (incl. XNamed)
300 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
301 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
302 throw(::com::sun::star::uno::RuntimeException);
303 virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException);
304 virtual void SAL_CALL setTag( const ::rtl::OUString& aTag )
305 throw(::com::sun::star::uno::RuntimeException);
307 // XServiceInfo
308 virtual ::rtl::OUString SAL_CALL getImplementationName()
309 throw(::com::sun::star::uno::RuntimeException);
310 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
311 throw(::com::sun::star::uno::RuntimeException);
312 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
313 throw(::com::sun::star::uno::RuntimeException);
316 // ============================================================================
318 class ScDataPilotTableObj : public ScDataPilotDescriptorBase,
319 public com::sun::star::sheet::XDataPilotTable2
321 private:
322 SCTAB nTab;
323 String aName;
325 public:
326 ScDataPilotTableObj(ScDocShell* pDocSh, SCTAB nT, const String& rN);
327 virtual ~ScDataPilotTableObj();
329 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
330 const ::com::sun::star::uno::Type & rType )
331 throw(::com::sun::star::uno::RuntimeException);
332 virtual void SAL_CALL acquire() throw();
333 virtual void SAL_CALL release() throw();
335 virtual ScDPObject* GetDPObject() const;
336 virtual void SetDPObject(ScDPObject* pDPObj);
338 // rest of XDataPilotDescriptor (incl. XNamed)
339 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
340 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
341 throw(::com::sun::star::uno::RuntimeException);
342 virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException);
343 virtual void SAL_CALL setTag( const ::rtl::OUString& aTag )
344 throw(::com::sun::star::uno::RuntimeException);
346 // XDataPilotTable
347 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRange()
348 throw(::com::sun::star::uno::RuntimeException);
349 virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException);
351 // XDataPilotTable2
352 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >
353 SAL_CALL getDrillDownData(const ::com::sun::star::table::CellAddress& aAddr)
354 throw(::com::sun::star::uno::RuntimeException);
356 virtual ::com::sun::star::sheet::DataPilotTablePositionData
357 SAL_CALL getPositionData(const ::com::sun::star::table::CellAddress& aAddr)
358 throw(::com::sun::star::uno::RuntimeException);
360 virtual void SAL_CALL insertDrillDownSheet(const ::com::sun::star::table::CellAddress& aAddr)
361 throw(::com::sun::star::uno::RuntimeException);
363 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRangeByType( sal_Int32 nType )
364 throw(::com::sun::star::lang::IllegalArgumentException,
365 ::com::sun::star::uno::RuntimeException);
367 // XTypeProvider (overloaded)
368 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
369 throw(::com::sun::star::uno::RuntimeException);
370 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
371 throw(::com::sun::star::uno::RuntimeException);
373 // XServiceInfo
374 virtual ::rtl::OUString SAL_CALL getImplementationName()
375 throw(::com::sun::star::uno::RuntimeException);
376 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
377 throw(::com::sun::star::uno::RuntimeException);
378 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
379 throw(::com::sun::star::uno::RuntimeException);
382 // ============================================================================
384 struct ScFieldIdentifier
386 ::rtl::OUString maFieldName; /// Source field name.
387 sal_Int32 mnFieldIdx; /// Field index (if several fields with same name exist).
388 bool mbDataLayout; /// True = data layout field collecting all data fields as items.
390 inline explicit ScFieldIdentifier() :
391 mnFieldIdx( 0 ), mbDataLayout( false ) {}
393 inline explicit ScFieldIdentifier( const ::rtl::OUString& rFieldName, sal_Int32 nFieldIdx, bool bDataLayout ) :
394 maFieldName( rFieldName ), mnFieldIdx( nFieldIdx ), mbDataLayout( bDataLayout ) {}
397 // ============================================================================
399 /** Base class of all implementation objects based on a DataPilot descriptor
400 or DataPilot table object. Wraps acquiring and releasing the parent. */
401 class ScDataPilotChildObjBase
403 protected:
404 explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent );
405 explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
406 virtual ~ScDataPilotChildObjBase();
408 /** Returns the wrapped DataPilot object (calls GetDPObject() at parent). */
409 ScDPObject* GetDPObject() const;
410 /** Sets the passed DataPilot object (calls SetDPObject() at parent). */
411 void SetDPObject( ScDPObject* pDPObject );
413 /** Returns the DataPilot dimension object related to the field described by maFieldId. */
414 ScDPSaveDimension* GetDPDimension( ScDPObject** ppDPObject = 0 ) const;
416 /** Returns the number of members for the field described by maFieldId. */
417 sal_Int32 GetMemberCount() const;
418 /** Returns the collection of members for the field described by maFieldId. */
419 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
420 GetMembers() const;
422 protected:
423 ScDataPilotDescriptorBase& mrParent;
424 ScFieldIdentifier maFieldId;
426 private:
427 ScDataPilotChildObjBase& operator=( const ScDataPilotChildObjBase& );
430 // ============================================================================
432 typedef ::cppu::WeakImplHelper4
434 ::com::sun::star::container::XEnumerationAccess,
435 ::com::sun::star::container::XIndexAccess,
436 ::com::sun::star::container::XNameAccess,
437 ::com::sun::star::lang::XServiceInfo
439 ScDataPilotFieldsObjImpl;
441 /** Collection of all DataPilot fields, or of all fields from a specific dimension. */
442 class ScDataPilotFieldsObj : public ScDataPilotChildObjBase, public ScDataPilotFieldsObjImpl
444 public:
445 explicit ScDataPilotFieldsObj(
446 ScDataPilotDescriptorBase& rParent );
448 explicit ScDataPilotFieldsObj(
449 ScDataPilotDescriptorBase& rParent,
450 ::com::sun::star::sheet::DataPilotFieldOrientation eOrient );
452 virtual ~ScDataPilotFieldsObj();
454 // XNameAccess
455 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
456 throw(::com::sun::star::container::NoSuchElementException,
457 ::com::sun::star::lang::WrappedTargetException,
458 ::com::sun::star::uno::RuntimeException);
459 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
460 throw(::com::sun::star::uno::RuntimeException);
461 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
462 throw(::com::sun::star::uno::RuntimeException);
464 // XIndexAccess
465 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
466 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
467 throw(::com::sun::star::lang::IndexOutOfBoundsException,
468 ::com::sun::star::lang::WrappedTargetException,
469 ::com::sun::star::uno::RuntimeException);
471 // XEnumerationAccess
472 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
473 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
475 // XElementAccess
476 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
477 throw(::com::sun::star::uno::RuntimeException);
478 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
480 // XServiceInfo
481 virtual ::rtl::OUString SAL_CALL getImplementationName()
482 throw(::com::sun::star::uno::RuntimeException);
483 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
484 throw(::com::sun::star::uno::RuntimeException);
485 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
486 throw(::com::sun::star::uno::RuntimeException);
488 private:
489 ScDataPilotFieldObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
490 ScDataPilotFieldObj* GetObjectByName_Impl( const ::rtl::OUString& rName ) const;
492 private:
493 ::com::sun::star::uno::Any maOrient; /// Field orientation, no value = all fields.
496 // ============================================================================
498 typedef ::cppu::WeakImplHelper5
500 ::com::sun::star::container::XNamed,
501 ::com::sun::star::beans::XPropertySet,
502 ::com::sun::star::sheet::XDataPilotField,
503 ::com::sun::star::sheet::XDataPilotFieldGrouping,
504 ::com::sun::star::lang::XServiceInfo
506 ScDataPilotFieldObjImpl;
508 /** Implementation of a single DataPilot field. */
509 class ScDataPilotFieldObj : public ScDataPilotChildObjBase, public ScDataPilotFieldObjImpl
511 public:
512 ScDataPilotFieldObj(
513 ScDataPilotDescriptorBase& rParent,
514 const ScFieldIdentifier& rIdent );
516 ScDataPilotFieldObj(
517 ScDataPilotDescriptorBase& rParent,
518 const ScFieldIdentifier& rIdent,
519 const ::com::sun::star::uno::Any& rOrient );
521 virtual ~ScDataPilotFieldObj();
523 // XNamed
524 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
525 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
526 throw(::com::sun::star::uno::RuntimeException);
528 // XPropertySet
529 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
530 SAL_CALL getPropertySetInfo( )
531 throw(::com::sun::star::uno::RuntimeException);
532 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
533 const ::com::sun::star::uno::Any& aValue )
534 throw(::com::sun::star::beans::UnknownPropertyException,
535 ::com::sun::star::beans::PropertyVetoException,
536 ::com::sun::star::lang::IllegalArgumentException,
537 ::com::sun::star::lang::WrappedTargetException,
538 ::com::sun::star::uno::RuntimeException);
539 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
540 const ::rtl::OUString& PropertyName )
541 throw(::com::sun::star::beans::UnknownPropertyException,
542 ::com::sun::star::lang::WrappedTargetException,
543 ::com::sun::star::uno::RuntimeException);
544 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
545 const ::com::sun::star::uno::Reference<
546 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
547 throw(::com::sun::star::beans::UnknownPropertyException,
548 ::com::sun::star::lang::WrappedTargetException,
549 ::com::sun::star::uno::RuntimeException);
550 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
551 const ::com::sun::star::uno::Reference<
552 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
553 throw(::com::sun::star::beans::UnknownPropertyException,
554 ::com::sun::star::lang::WrappedTargetException,
555 ::com::sun::star::uno::RuntimeException);
556 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
557 const ::com::sun::star::uno::Reference<
558 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
559 throw(::com::sun::star::beans::UnknownPropertyException,
560 ::com::sun::star::lang::WrappedTargetException,
561 ::com::sun::star::uno::RuntimeException);
562 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
563 const ::com::sun::star::uno::Reference<
564 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
565 throw(::com::sun::star::beans::UnknownPropertyException,
566 ::com::sun::star::lang::WrappedTargetException,
567 ::com::sun::star::uno::RuntimeException);
569 // XDatePilotField
570 virtual com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> SAL_CALL
571 getItems() throw (::com::sun::star::uno::RuntimeException);
573 // nur noch aus Property-Funktionen gerufen:
574 com::sun::star::sheet::DataPilotFieldOrientation getOrientation(void) const;
575 void setOrientation(com::sun::star::sheet::DataPilotFieldOrientation Orientation);
576 com::sun::star::sheet::GeneralFunction getFunction(void) const;
577 void setFunction(com::sun::star::sheet::GeneralFunction Function);
578 com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction > getSubtotals() const;
579 void setSubtotals(const com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction >& rFunctions);
580 rtl::OUString getCurrentPage() const;
581 void setCurrentPage(const rtl::OUString& sPage);
582 sal_Bool getUseCurrentPage() const;
583 void setUseCurrentPage(sal_Bool bUse);
584 const com::sun::star::sheet::DataPilotFieldAutoShowInfo* getAutoShowInfo();
585 void setAutoShowInfo(const com::sun::star::sheet::DataPilotFieldAutoShowInfo* pInfo);
586 const com::sun::star::sheet::DataPilotFieldLayoutInfo* getLayoutInfo();
587 void setLayoutInfo(const com::sun::star::sheet::DataPilotFieldLayoutInfo* pInfo);
588 const com::sun::star::sheet::DataPilotFieldReference* getReference();
589 void setReference(const com::sun::star::sheet::DataPilotFieldReference* pInfo);
590 const com::sun::star::sheet::DataPilotFieldSortInfo* getSortInfo();
591 void setSortInfo(const com::sun::star::sheet::DataPilotFieldSortInfo* pInfo);
592 sal_Bool getShowEmpty() const;
593 void setShowEmpty(sal_Bool bShow);
595 sal_Bool hasGroupInfo();
596 com::sun::star::sheet::DataPilotFieldGroupInfo getGroupInfo();
597 void setGroupInfo(const com::sun::star::sheet::DataPilotFieldGroupInfo* pInfo);
599 // XDataPilotFieldGrouping
600 sal_Bool HasString(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems, const ::rtl::OUString& aString);
601 virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
602 createNameGroup(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems)
603 throw (::com::sun::star::uno::RuntimeException,
604 ::com::sun::star::lang::IllegalArgumentException);
605 virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
606 createDateGroup(const com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo)
607 throw (::com::sun::star::uno::RuntimeException,
608 ::com::sun::star::lang::IllegalArgumentException);
610 // XServiceInfo
611 virtual ::rtl::OUString SAL_CALL getImplementationName()
612 throw(::com::sun::star::uno::RuntimeException);
613 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
614 throw(::com::sun::star::uno::RuntimeException);
615 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
616 throw(::com::sun::star::uno::RuntimeException);
618 private:
619 ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
620 mxItems;
621 SfxItemPropertySet maPropSet;
622 ::com::sun::star::uno::Any maOrient;
625 // ============================================================================
627 typedef ::std::vector< ::rtl::OUString > ScFieldGroupMembers;
629 struct ScFieldGroup
631 ::rtl::OUString maName;
632 ScFieldGroupMembers maMembers;
635 typedef ::std::vector< ScFieldGroup > ScFieldGroups;
637 // ============================================================================
639 typedef ::cppu::WeakImplHelper4
641 ::com::sun::star::container::XNameContainer,
642 ::com::sun::star::container::XEnumerationAccess,
643 ::com::sun::star::container::XIndexAccess,
644 ::com::sun::star::lang::XServiceInfo
646 ScDataPilotFieldGroupsObjImpl;
648 /** Implementation of all grouped items in a DataPilot field.
650 This is a stand-alone object without any connection to the base DataPilot
651 field. Grouping info has to be written back with the GroupInfo property of
652 the DataPilot field after modifying this object.
654 class ScDataPilotFieldGroupsObj : public ScDataPilotFieldGroupsObjImpl
656 public:
657 explicit ScDataPilotFieldGroupsObj( const ScFieldGroups& rGroups );
658 virtual ~ScDataPilotFieldGroupsObj();
660 // XNameAccess
661 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
662 throw(::com::sun::star::container::NoSuchElementException,
663 ::com::sun::star::lang::WrappedTargetException,
664 ::com::sun::star::uno::RuntimeException);
665 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
666 throw(::com::sun::star::uno::RuntimeException);
667 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
668 throw(::com::sun::star::uno::RuntimeException);
670 // XNameReplace
671 virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName,
672 const ::com::sun::star::uno::Any& aElement )
673 throw (::com::sun::star::lang::IllegalArgumentException,
674 ::com::sun::star::container::NoSuchElementException,
675 ::com::sun::star::lang::WrappedTargetException,
676 ::com::sun::star::uno::RuntimeException);
678 // XNameContainer
679 virtual void SAL_CALL insertByName( const ::rtl::OUString& aName,
680 const ::com::sun::star::uno::Any& aElement )
681 throw (::com::sun::star::lang::IllegalArgumentException,
682 ::com::sun::star::container::ElementExistException,
683 ::com::sun::star::lang::WrappedTargetException,
684 ::com::sun::star::uno::RuntimeException);
685 virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
686 throw (::com::sun::star::container::NoSuchElementException,
687 ::com::sun::star::lang::WrappedTargetException,
688 ::com::sun::star::uno::RuntimeException);
690 // XIndexAccess
691 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
692 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
693 throw(::com::sun::star::lang::IndexOutOfBoundsException,
694 ::com::sun::star::lang::WrappedTargetException,
695 ::com::sun::star::uno::RuntimeException);
697 // XEnumerationAccess
698 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
699 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
701 // XElementAccess
702 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
703 throw(::com::sun::star::uno::RuntimeException);
704 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
706 // XServiceInfo
707 virtual ::rtl::OUString SAL_CALL getImplementationName()
708 throw(::com::sun::star::uno::RuntimeException);
709 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
710 throw(::com::sun::star::uno::RuntimeException);
711 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
712 throw(::com::sun::star::uno::RuntimeException);
714 // implementation
715 ScFieldGroup& getFieldGroup( const ::rtl::OUString& rName ) throw(::com::sun::star::uno::RuntimeException);
716 void renameFieldGroup( const ::rtl::OUString& rOldName, const ::rtl::OUString& rNewName ) throw(::com::sun::star::uno::RuntimeException);
718 private:
719 ScFieldGroups::iterator implFindByName( const ::rtl::OUString& rName );
721 private:
722 ScFieldGroups maGroups;
725 // ============================================================================
727 typedef ::cppu::WeakImplHelper5
729 ::com::sun::star::container::XNameContainer,
730 ::com::sun::star::container::XEnumerationAccess,
731 ::com::sun::star::container::XIndexAccess,
732 ::com::sun::star::container::XNamed,
733 ::com::sun::star::lang::XServiceInfo
735 ScDataPilotFieldGroupObjImpl;
737 class ScDataPilotFieldGroupObj : public ScDataPilotFieldGroupObjImpl
739 public:
740 explicit ScDataPilotFieldGroupObj( ScDataPilotFieldGroupsObj& rParent, const ::rtl::OUString& rGroupName );
741 virtual ~ScDataPilotFieldGroupObj();
743 // XNameAccess
744 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
745 throw(::com::sun::star::container::NoSuchElementException,
746 ::com::sun::star::lang::WrappedTargetException,
747 ::com::sun::star::uno::RuntimeException);
748 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
749 throw(::com::sun::star::uno::RuntimeException);
750 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
751 throw(::com::sun::star::uno::RuntimeException);
753 // XNameReplace
754 virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName,
755 const ::com::sun::star::uno::Any& aElement )
756 throw (::com::sun::star::lang::IllegalArgumentException,
757 ::com::sun::star::container::NoSuchElementException,
758 ::com::sun::star::lang::WrappedTargetException,
759 ::com::sun::star::uno::RuntimeException);
761 // XNameContainer
762 virtual void SAL_CALL insertByName( const ::rtl::OUString& aName,
763 const ::com::sun::star::uno::Any& aElement )
764 throw (::com::sun::star::lang::IllegalArgumentException,
765 ::com::sun::star::container::ElementExistException,
766 ::com::sun::star::lang::WrappedTargetException,
767 ::com::sun::star::uno::RuntimeException);
768 virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
769 throw (::com::sun::star::container::NoSuchElementException,
770 ::com::sun::star::lang::WrappedTargetException,
771 ::com::sun::star::uno::RuntimeException);
773 // XIndexAccess
774 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
775 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
776 throw(::com::sun::star::lang::IndexOutOfBoundsException,
777 ::com::sun::star::lang::WrappedTargetException,
778 ::com::sun::star::uno::RuntimeException);
780 // XEnumerationAccess
781 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
782 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
784 // XElementAccess
785 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
786 throw(::com::sun::star::uno::RuntimeException);
787 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
789 // XNamed
790 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
791 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
792 throw(::com::sun::star::uno::RuntimeException);
794 // XServiceInfo
795 virtual ::rtl::OUString SAL_CALL getImplementationName()
796 throw(::com::sun::star::uno::RuntimeException);
797 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
798 throw(::com::sun::star::uno::RuntimeException);
799 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
800 throw(::com::sun::star::uno::RuntimeException);
802 private:
803 ScDataPilotFieldGroupsObj& mrParent;
804 ::rtl::OUString maGroupName;
807 // ============================================================================
809 typedef ::cppu::WeakImplHelper2
811 ::com::sun::star::container::XNamed,
812 ::com::sun::star::lang::XServiceInfo
814 ScDataPilotFieldGroupItemObjImpl;
816 class ScDataPilotFieldGroupItemObj : public ScDataPilotFieldGroupItemObjImpl
818 public:
819 explicit ScDataPilotFieldGroupItemObj( ScDataPilotFieldGroupObj& rParent, const ::rtl::OUString& rName );
820 virtual ~ScDataPilotFieldGroupItemObj();
822 // XNamed
823 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
824 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
825 throw(::com::sun::star::uno::RuntimeException);
827 // XServiceInfo
828 virtual ::rtl::OUString SAL_CALL getImplementationName()
829 throw(::com::sun::star::uno::RuntimeException);
830 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
831 throw(::com::sun::star::uno::RuntimeException);
832 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
833 throw(::com::sun::star::uno::RuntimeException);
835 private:
836 ScDataPilotFieldGroupObj& mrParent;
837 ::rtl::OUString maName;
840 // ============================================================================
842 typedef ::cppu::WeakImplHelper4
844 ::com::sun::star::container::XEnumerationAccess,
845 ::com::sun::star::container::XIndexAccess,
846 ::com::sun::star::container::XNameAccess,
847 ::com::sun::star::lang::XServiceInfo
849 ScDataPilotItemsObjImpl;
851 class ScDataPilotItemsObj : public ScDataPilotChildObjBase, public ScDataPilotItemsObjImpl
853 public:
854 explicit ScDataPilotItemsObj( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
855 virtual ~ScDataPilotItemsObj();
857 // XNameAccess
858 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
859 throw(::com::sun::star::container::NoSuchElementException,
860 ::com::sun::star::lang::WrappedTargetException,
861 ::com::sun::star::uno::RuntimeException);
862 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
863 throw(::com::sun::star::uno::RuntimeException);
864 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
865 throw(::com::sun::star::uno::RuntimeException);
867 // XIndexAccess
868 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
869 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
870 throw(::com::sun::star::lang::IndexOutOfBoundsException,
871 ::com::sun::star::lang::WrappedTargetException,
872 ::com::sun::star::uno::RuntimeException);
874 // XEnumerationAccess
875 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
876 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
878 // XElementAccess
879 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
880 throw(::com::sun::star::uno::RuntimeException);
881 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
883 // XServiceInfo
884 virtual ::rtl::OUString SAL_CALL getImplementationName()
885 throw(::com::sun::star::uno::RuntimeException);
886 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
887 throw(::com::sun::star::uno::RuntimeException);
888 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
889 throw(::com::sun::star::uno::RuntimeException);
891 private:
892 ScDataPilotItemObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
895 // ============================================================================
897 typedef ::cppu::WeakImplHelper3
899 ::com::sun::star::container::XNamed,
900 ::com::sun::star::beans::XPropertySet,
901 ::com::sun::star::lang::XServiceInfo
903 ScDataPilotItemObjImpl;
905 class ScDataPilotItemObj : public ScDataPilotChildObjBase, public ScDataPilotItemObjImpl
907 public:
908 explicit ScDataPilotItemObj(
909 ScDataPilotDescriptorBase& rParent,
910 const ScFieldIdentifier& rFieldId,
911 sal_Int32 nIndex );
913 virtual ~ScDataPilotItemObj();
915 // XNamed
916 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
917 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
918 throw(::com::sun::star::uno::RuntimeException);
920 // XPropertySet
921 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
922 SAL_CALL getPropertySetInfo( )
923 throw(::com::sun::star::uno::RuntimeException);
924 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
925 const ::com::sun::star::uno::Any& aValue )
926 throw(::com::sun::star::beans::UnknownPropertyException,
927 ::com::sun::star::beans::PropertyVetoException,
928 ::com::sun::star::lang::IllegalArgumentException,
929 ::com::sun::star::lang::WrappedTargetException,
930 ::com::sun::star::uno::RuntimeException);
931 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
932 const ::rtl::OUString& PropertyName )
933 throw(::com::sun::star::beans::UnknownPropertyException,
934 ::com::sun::star::lang::WrappedTargetException,
935 ::com::sun::star::uno::RuntimeException);
936 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
937 const ::com::sun::star::uno::Reference<
938 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
939 throw(::com::sun::star::beans::UnknownPropertyException,
940 ::com::sun::star::lang::WrappedTargetException,
941 ::com::sun::star::uno::RuntimeException);
942 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
943 const ::com::sun::star::uno::Reference<
944 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
945 throw(::com::sun::star::beans::UnknownPropertyException,
946 ::com::sun::star::lang::WrappedTargetException,
947 ::com::sun::star::uno::RuntimeException);
948 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
949 const ::com::sun::star::uno::Reference<
950 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
951 throw(::com::sun::star::beans::UnknownPropertyException,
952 ::com::sun::star::lang::WrappedTargetException,
953 ::com::sun::star::uno::RuntimeException);
954 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
955 const ::com::sun::star::uno::Reference<
956 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
957 throw(::com::sun::star::beans::UnknownPropertyException,
958 ::com::sun::star::lang::WrappedTargetException,
959 ::com::sun::star::uno::RuntimeException);
961 // XServiceInfo
962 virtual ::rtl::OUString SAL_CALL getImplementationName()
963 throw(::com::sun::star::uno::RuntimeException);
964 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
965 throw(::com::sun::star::uno::RuntimeException);
966 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
967 throw(::com::sun::star::uno::RuntimeException);
969 private:
970 SfxItemPropertySet maPropSet;
971 sal_Int32 mnIndex;
974 // ============================================================================
976 #endif