merged tag ooo/OOO330_m14
[LibreOffice.git] / sc / inc / dapiuno.hxx
blobc9a5305a05ca97863bb8bbf6a1cbbb726ce05ec3
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
28 #ifndef SC_DAPIUNO_HXX
29 #define SC_DAPIUNO_HXX
31 #include "global.hxx"
32 #include "dpobject.hxx"
33 #include "rangeutl.hxx" // ScArea
34 #include "cellsuno.hxx" // for XModifyListenerArr_Impl
36 #include <svl/lstner.hxx>
37 #include <svl/itemprop.hxx>
39 #include <com/sun/star/lang/XServiceInfo.hpp>
40 #include <com/sun/star/lang/XUnoTunnel.hpp>
41 #include <com/sun/star/beans/XPropertySet.hpp>
42 #include <com/sun/star/container/XEnumerationAccess.hpp>
43 #include <com/sun/star/container/XNameContainer.hpp>
44 #include <com/sun/star/util/XModifyBroadcaster.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,
320 public com::sun::star::util::XModifyBroadcaster
322 private:
323 SCTAB nTab;
324 String aName;
325 XModifyListenerArr_Impl aModifyListeners;
327 void Refreshed_Impl();
329 public:
330 ScDataPilotTableObj(ScDocShell* pDocSh, SCTAB nT, const String& rN);
331 virtual ~ScDataPilotTableObj();
333 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
334 const ::com::sun::star::uno::Type & rType )
335 throw(::com::sun::star::uno::RuntimeException);
336 virtual void SAL_CALL acquire() throw();
337 virtual void SAL_CALL release() throw();
339 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
341 virtual ScDPObject* GetDPObject() const;
342 virtual void SetDPObject(ScDPObject* pDPObj);
344 // rest of XDataPilotDescriptor (incl. XNamed)
345 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
346 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
347 throw(::com::sun::star::uno::RuntimeException);
348 virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException);
349 virtual void SAL_CALL setTag( const ::rtl::OUString& aTag )
350 throw(::com::sun::star::uno::RuntimeException);
352 // XDataPilotTable
353 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRange()
354 throw(::com::sun::star::uno::RuntimeException);
355 virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException);
357 // XDataPilotTable2
358 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >
359 SAL_CALL getDrillDownData(const ::com::sun::star::table::CellAddress& aAddr)
360 throw(::com::sun::star::uno::RuntimeException);
362 virtual ::com::sun::star::sheet::DataPilotTablePositionData
363 SAL_CALL getPositionData(const ::com::sun::star::table::CellAddress& aAddr)
364 throw(::com::sun::star::uno::RuntimeException);
366 virtual void SAL_CALL insertDrillDownSheet(const ::com::sun::star::table::CellAddress& aAddr)
367 throw(::com::sun::star::uno::RuntimeException);
369 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRangeByType( sal_Int32 nType )
370 throw(::com::sun::star::lang::IllegalArgumentException,
371 ::com::sun::star::uno::RuntimeException);
373 // XModifyBroadcaster
374 virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference<
375 ::com::sun::star::util::XModifyListener >& aListener )
376 throw (::com::sun::star::uno::RuntimeException);
377 virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference<
378 ::com::sun::star::util::XModifyListener >& aListener )
379 throw (::com::sun::star::uno::RuntimeException);
381 // XTypeProvider (overloaded)
382 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
383 throw(::com::sun::star::uno::RuntimeException);
384 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
385 throw(::com::sun::star::uno::RuntimeException);
387 // XServiceInfo
388 virtual ::rtl::OUString SAL_CALL getImplementationName()
389 throw(::com::sun::star::uno::RuntimeException);
390 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
391 throw(::com::sun::star::uno::RuntimeException);
392 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
393 throw(::com::sun::star::uno::RuntimeException);
396 // ============================================================================
398 struct ScFieldIdentifier
400 ::rtl::OUString maFieldName; /// Source field name.
401 sal_Int32 mnFieldIdx; /// Field index (if several fields with same name exist).
402 bool mbDataLayout; /// True = data layout field collecting all data fields as items.
404 inline explicit ScFieldIdentifier() :
405 mnFieldIdx( 0 ), mbDataLayout( false ) {}
407 inline explicit ScFieldIdentifier( const ::rtl::OUString& rFieldName, sal_Int32 nFieldIdx, bool bDataLayout ) :
408 maFieldName( rFieldName ), mnFieldIdx( nFieldIdx ), mbDataLayout( bDataLayout ) {}
411 // ============================================================================
413 /** Base class of all implementation objects based on a DataPilot descriptor
414 or DataPilot table object. Wraps acquiring and releasing the parent. */
415 class ScDataPilotChildObjBase
417 protected:
418 explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent );
419 explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
420 virtual ~ScDataPilotChildObjBase();
422 /** Returns the wrapped DataPilot object (calls GetDPObject() at parent). */
423 ScDPObject* GetDPObject() const;
424 /** Sets the passed DataPilot object (calls SetDPObject() at parent). */
425 void SetDPObject( ScDPObject* pDPObject );
427 /** Returns the DataPilot dimension object related to the field described by maFieldId. */
428 ScDPSaveDimension* GetDPDimension( ScDPObject** ppDPObject = 0 ) const;
430 /** Returns the number of members for the field described by maFieldId. */
431 sal_Int32 GetMemberCount() const;
432 /** Returns the collection of members for the field described by maFieldId. */
433 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
434 GetMembers() const;
436 protected:
437 ScDataPilotDescriptorBase& mrParent;
438 ScFieldIdentifier maFieldId;
440 private:
441 ScDataPilotChildObjBase& operator=( const ScDataPilotChildObjBase& );
444 // ============================================================================
446 typedef ::cppu::WeakImplHelper4
448 ::com::sun::star::container::XEnumerationAccess,
449 ::com::sun::star::container::XIndexAccess,
450 ::com::sun::star::container::XNameAccess,
451 ::com::sun::star::lang::XServiceInfo
453 ScDataPilotFieldsObjImpl;
455 /** Collection of all DataPilot fields, or of all fields from a specific dimension. */
456 class ScDataPilotFieldsObj : public ScDataPilotChildObjBase, public ScDataPilotFieldsObjImpl
458 public:
459 explicit ScDataPilotFieldsObj(
460 ScDataPilotDescriptorBase& rParent );
462 explicit ScDataPilotFieldsObj(
463 ScDataPilotDescriptorBase& rParent,
464 ::com::sun::star::sheet::DataPilotFieldOrientation eOrient );
466 virtual ~ScDataPilotFieldsObj();
468 // XNameAccess
469 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
470 throw(::com::sun::star::container::NoSuchElementException,
471 ::com::sun::star::lang::WrappedTargetException,
472 ::com::sun::star::uno::RuntimeException);
473 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
474 throw(::com::sun::star::uno::RuntimeException);
475 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
476 throw(::com::sun::star::uno::RuntimeException);
478 // XIndexAccess
479 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
480 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
481 throw(::com::sun::star::lang::IndexOutOfBoundsException,
482 ::com::sun::star::lang::WrappedTargetException,
483 ::com::sun::star::uno::RuntimeException);
485 // XEnumerationAccess
486 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
487 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
489 // XElementAccess
490 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
491 throw(::com::sun::star::uno::RuntimeException);
492 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
494 // XServiceInfo
495 virtual ::rtl::OUString SAL_CALL getImplementationName()
496 throw(::com::sun::star::uno::RuntimeException);
497 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
498 throw(::com::sun::star::uno::RuntimeException);
499 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
500 throw(::com::sun::star::uno::RuntimeException);
502 private:
503 ScDataPilotFieldObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
504 ScDataPilotFieldObj* GetObjectByName_Impl( const ::rtl::OUString& rName ) const;
506 private:
507 ::com::sun::star::uno::Any maOrient; /// Field orientation, no value = all fields.
510 // ============================================================================
512 typedef ::cppu::WeakImplHelper5
514 ::com::sun::star::container::XNamed,
515 ::com::sun::star::beans::XPropertySet,
516 ::com::sun::star::sheet::XDataPilotField,
517 ::com::sun::star::sheet::XDataPilotFieldGrouping,
518 ::com::sun::star::lang::XServiceInfo
520 ScDataPilotFieldObjImpl;
522 /** Implementation of a single DataPilot field. */
523 class ScDataPilotFieldObj : public ScDataPilotChildObjBase, public ScDataPilotFieldObjImpl
525 public:
526 ScDataPilotFieldObj(
527 ScDataPilotDescriptorBase& rParent,
528 const ScFieldIdentifier& rIdent );
530 ScDataPilotFieldObj(
531 ScDataPilotDescriptorBase& rParent,
532 const ScFieldIdentifier& rIdent,
533 const ::com::sun::star::uno::Any& rOrient );
535 virtual ~ScDataPilotFieldObj();
537 // XNamed
538 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
539 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
540 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 // XDatePilotField
584 virtual com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> SAL_CALL
585 getItems() throw (::com::sun::star::uno::RuntimeException);
587 // nur noch aus Property-Funktionen gerufen:
588 com::sun::star::sheet::DataPilotFieldOrientation getOrientation(void) const;
589 void setOrientation(com::sun::star::sheet::DataPilotFieldOrientation Orientation);
590 com::sun::star::sheet::GeneralFunction getFunction(void) const;
591 void setFunction(com::sun::star::sheet::GeneralFunction Function);
592 com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction > getSubtotals() const;
593 void setSubtotals(const com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction >& rFunctions);
594 rtl::OUString getCurrentPage() const;
595 void setCurrentPage(const rtl::OUString& sPage);
596 sal_Bool getUseCurrentPage() const;
597 void setUseCurrentPage(sal_Bool bUse);
598 const com::sun::star::sheet::DataPilotFieldAutoShowInfo* getAutoShowInfo();
599 void setAutoShowInfo(const com::sun::star::sheet::DataPilotFieldAutoShowInfo* pInfo);
600 const com::sun::star::sheet::DataPilotFieldLayoutInfo* getLayoutInfo();
601 void setLayoutInfo(const com::sun::star::sheet::DataPilotFieldLayoutInfo* pInfo);
602 const com::sun::star::sheet::DataPilotFieldReference* getReference();
603 void setReference(const com::sun::star::sheet::DataPilotFieldReference* pInfo);
604 const com::sun::star::sheet::DataPilotFieldSortInfo* getSortInfo();
605 void setSortInfo(const com::sun::star::sheet::DataPilotFieldSortInfo* pInfo);
606 sal_Bool getShowEmpty() const;
607 void setShowEmpty(sal_Bool bShow);
609 sal_Bool hasGroupInfo();
610 com::sun::star::sheet::DataPilotFieldGroupInfo getGroupInfo();
611 void setGroupInfo(const com::sun::star::sheet::DataPilotFieldGroupInfo* pInfo);
613 // XDataPilotFieldGrouping
614 sal_Bool HasString(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems, const ::rtl::OUString& aString);
615 virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
616 createNameGroup(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems)
617 throw (::com::sun::star::uno::RuntimeException,
618 ::com::sun::star::lang::IllegalArgumentException);
619 virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
620 createDateGroup(const com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo)
621 throw (::com::sun::star::uno::RuntimeException,
622 ::com::sun::star::lang::IllegalArgumentException);
624 // XServiceInfo
625 virtual ::rtl::OUString SAL_CALL getImplementationName()
626 throw(::com::sun::star::uno::RuntimeException);
627 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
628 throw(::com::sun::star::uno::RuntimeException);
629 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
630 throw(::com::sun::star::uno::RuntimeException);
632 private:
633 ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
634 mxItems;
635 SfxItemPropertySet maPropSet;
636 ::com::sun::star::uno::Any maOrient;
639 // ============================================================================
641 typedef ::std::vector< ::rtl::OUString > ScFieldGroupMembers;
643 struct ScFieldGroup
645 ::rtl::OUString maName;
646 ScFieldGroupMembers maMembers;
649 typedef ::std::vector< ScFieldGroup > ScFieldGroups;
651 // ============================================================================
653 typedef ::cppu::WeakImplHelper4
655 ::com::sun::star::container::XNameContainer,
656 ::com::sun::star::container::XEnumerationAccess,
657 ::com::sun::star::container::XIndexAccess,
658 ::com::sun::star::lang::XServiceInfo
660 ScDataPilotFieldGroupsObjImpl;
662 /** Implementation of all grouped items in a DataPilot field.
664 This is a stand-alone object without any connection to the base DataPilot
665 field. Grouping info has to be written back with the GroupInfo property of
666 the DataPilot field after modifying this object.
668 class ScDataPilotFieldGroupsObj : public ScDataPilotFieldGroupsObjImpl
670 public:
671 explicit ScDataPilotFieldGroupsObj( const ScFieldGroups& rGroups );
672 virtual ~ScDataPilotFieldGroupsObj();
674 // XNameAccess
675 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
676 throw(::com::sun::star::container::NoSuchElementException,
677 ::com::sun::star::lang::WrappedTargetException,
678 ::com::sun::star::uno::RuntimeException);
679 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
680 throw(::com::sun::star::uno::RuntimeException);
681 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
682 throw(::com::sun::star::uno::RuntimeException);
684 // XNameReplace
685 virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName,
686 const ::com::sun::star::uno::Any& aElement )
687 throw (::com::sun::star::lang::IllegalArgumentException,
688 ::com::sun::star::container::NoSuchElementException,
689 ::com::sun::star::lang::WrappedTargetException,
690 ::com::sun::star::uno::RuntimeException);
692 // XNameContainer
693 virtual void SAL_CALL insertByName( const ::rtl::OUString& aName,
694 const ::com::sun::star::uno::Any& aElement )
695 throw (::com::sun::star::lang::IllegalArgumentException,
696 ::com::sun::star::container::ElementExistException,
697 ::com::sun::star::lang::WrappedTargetException,
698 ::com::sun::star::uno::RuntimeException);
699 virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
700 throw (::com::sun::star::container::NoSuchElementException,
701 ::com::sun::star::lang::WrappedTargetException,
702 ::com::sun::star::uno::RuntimeException);
704 // XIndexAccess
705 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
706 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
707 throw(::com::sun::star::lang::IndexOutOfBoundsException,
708 ::com::sun::star::lang::WrappedTargetException,
709 ::com::sun::star::uno::RuntimeException);
711 // XEnumerationAccess
712 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
713 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
715 // XElementAccess
716 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
717 throw(::com::sun::star::uno::RuntimeException);
718 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
720 // XServiceInfo
721 virtual ::rtl::OUString SAL_CALL getImplementationName()
722 throw(::com::sun::star::uno::RuntimeException);
723 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
724 throw(::com::sun::star::uno::RuntimeException);
725 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
726 throw(::com::sun::star::uno::RuntimeException);
728 // implementation
729 ScFieldGroup& getFieldGroup( const ::rtl::OUString& rName ) throw(::com::sun::star::uno::RuntimeException);
730 void renameFieldGroup( const ::rtl::OUString& rOldName, const ::rtl::OUString& rNewName ) throw(::com::sun::star::uno::RuntimeException);
732 private:
733 ScFieldGroups::iterator implFindByName( const ::rtl::OUString& rName );
735 private:
736 ScFieldGroups maGroups;
739 // ============================================================================
741 typedef ::cppu::WeakImplHelper5
743 ::com::sun::star::container::XNameContainer,
744 ::com::sun::star::container::XEnumerationAccess,
745 ::com::sun::star::container::XIndexAccess,
746 ::com::sun::star::container::XNamed,
747 ::com::sun::star::lang::XServiceInfo
749 ScDataPilotFieldGroupObjImpl;
751 class ScDataPilotFieldGroupObj : public ScDataPilotFieldGroupObjImpl
753 public:
754 explicit ScDataPilotFieldGroupObj( ScDataPilotFieldGroupsObj& rParent, const ::rtl::OUString& rGroupName );
755 virtual ~ScDataPilotFieldGroupObj();
757 // XNameAccess
758 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
759 throw(::com::sun::star::container::NoSuchElementException,
760 ::com::sun::star::lang::WrappedTargetException,
761 ::com::sun::star::uno::RuntimeException);
762 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
763 throw(::com::sun::star::uno::RuntimeException);
764 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
765 throw(::com::sun::star::uno::RuntimeException);
767 // XNameReplace
768 virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName,
769 const ::com::sun::star::uno::Any& aElement )
770 throw (::com::sun::star::lang::IllegalArgumentException,
771 ::com::sun::star::container::NoSuchElementException,
772 ::com::sun::star::lang::WrappedTargetException,
773 ::com::sun::star::uno::RuntimeException);
775 // XNameContainer
776 virtual void SAL_CALL insertByName( const ::rtl::OUString& aName,
777 const ::com::sun::star::uno::Any& aElement )
778 throw (::com::sun::star::lang::IllegalArgumentException,
779 ::com::sun::star::container::ElementExistException,
780 ::com::sun::star::lang::WrappedTargetException,
781 ::com::sun::star::uno::RuntimeException);
782 virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
783 throw (::com::sun::star::container::NoSuchElementException,
784 ::com::sun::star::lang::WrappedTargetException,
785 ::com::sun::star::uno::RuntimeException);
787 // XIndexAccess
788 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
789 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
790 throw(::com::sun::star::lang::IndexOutOfBoundsException,
791 ::com::sun::star::lang::WrappedTargetException,
792 ::com::sun::star::uno::RuntimeException);
794 // XEnumerationAccess
795 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
796 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
798 // XElementAccess
799 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
800 throw(::com::sun::star::uno::RuntimeException);
801 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
803 // XNamed
804 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
805 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
806 throw(::com::sun::star::uno::RuntimeException);
808 // XServiceInfo
809 virtual ::rtl::OUString SAL_CALL getImplementationName()
810 throw(::com::sun::star::uno::RuntimeException);
811 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
812 throw(::com::sun::star::uno::RuntimeException);
813 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
814 throw(::com::sun::star::uno::RuntimeException);
816 private:
817 ScDataPilotFieldGroupsObj& mrParent;
818 ::rtl::OUString maGroupName;
821 // ============================================================================
823 typedef ::cppu::WeakImplHelper2
825 ::com::sun::star::container::XNamed,
826 ::com::sun::star::lang::XServiceInfo
828 ScDataPilotFieldGroupItemObjImpl;
830 class ScDataPilotFieldGroupItemObj : public ScDataPilotFieldGroupItemObjImpl
832 public:
833 explicit ScDataPilotFieldGroupItemObj( ScDataPilotFieldGroupObj& rParent, const ::rtl::OUString& rName );
834 virtual ~ScDataPilotFieldGroupItemObj();
836 // XNamed
837 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
838 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
839 throw(::com::sun::star::uno::RuntimeException);
841 // XServiceInfo
842 virtual ::rtl::OUString SAL_CALL getImplementationName()
843 throw(::com::sun::star::uno::RuntimeException);
844 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
845 throw(::com::sun::star::uno::RuntimeException);
846 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
847 throw(::com::sun::star::uno::RuntimeException);
849 private:
850 ScDataPilotFieldGroupObj& mrParent;
851 ::rtl::OUString maName;
854 // ============================================================================
856 typedef ::cppu::WeakImplHelper4
858 ::com::sun::star::container::XEnumerationAccess,
859 ::com::sun::star::container::XIndexAccess,
860 ::com::sun::star::container::XNameAccess,
861 ::com::sun::star::lang::XServiceInfo
863 ScDataPilotItemsObjImpl;
865 class ScDataPilotItemsObj : public ScDataPilotChildObjBase, public ScDataPilotItemsObjImpl
867 public:
868 explicit ScDataPilotItemsObj( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
869 virtual ~ScDataPilotItemsObj();
871 // XNameAccess
872 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
873 throw(::com::sun::star::container::NoSuchElementException,
874 ::com::sun::star::lang::WrappedTargetException,
875 ::com::sun::star::uno::RuntimeException);
876 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
877 throw(::com::sun::star::uno::RuntimeException);
878 virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
879 throw(::com::sun::star::uno::RuntimeException);
881 // XIndexAccess
882 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
883 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
884 throw(::com::sun::star::lang::IndexOutOfBoundsException,
885 ::com::sun::star::lang::WrappedTargetException,
886 ::com::sun::star::uno::RuntimeException);
888 // XEnumerationAccess
889 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
890 createEnumeration() throw(::com::sun::star::uno::RuntimeException);
892 // XElementAccess
893 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
894 throw(::com::sun::star::uno::RuntimeException);
895 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
897 // XServiceInfo
898 virtual ::rtl::OUString SAL_CALL getImplementationName()
899 throw(::com::sun::star::uno::RuntimeException);
900 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
901 throw(::com::sun::star::uno::RuntimeException);
902 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
903 throw(::com::sun::star::uno::RuntimeException);
905 private:
906 ScDataPilotItemObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
909 // ============================================================================
911 typedef ::cppu::WeakImplHelper3
913 ::com::sun::star::container::XNamed,
914 ::com::sun::star::beans::XPropertySet,
915 ::com::sun::star::lang::XServiceInfo
917 ScDataPilotItemObjImpl;
919 class ScDataPilotItemObj : public ScDataPilotChildObjBase, public ScDataPilotItemObjImpl
921 public:
922 explicit ScDataPilotItemObj(
923 ScDataPilotDescriptorBase& rParent,
924 const ScFieldIdentifier& rFieldId,
925 sal_Int32 nIndex );
927 virtual ~ScDataPilotItemObj();
929 // XNamed
930 virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
931 virtual void SAL_CALL setName( const ::rtl::OUString& aName )
932 throw(::com::sun::star::uno::RuntimeException);
934 // XPropertySet
935 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
936 SAL_CALL getPropertySetInfo( )
937 throw(::com::sun::star::uno::RuntimeException);
938 virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
939 const ::com::sun::star::uno::Any& aValue )
940 throw(::com::sun::star::beans::UnknownPropertyException,
941 ::com::sun::star::beans::PropertyVetoException,
942 ::com::sun::star::lang::IllegalArgumentException,
943 ::com::sun::star::lang::WrappedTargetException,
944 ::com::sun::star::uno::RuntimeException);
945 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
946 const ::rtl::OUString& PropertyName )
947 throw(::com::sun::star::beans::UnknownPropertyException,
948 ::com::sun::star::lang::WrappedTargetException,
949 ::com::sun::star::uno::RuntimeException);
950 virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
951 const ::com::sun::star::uno::Reference<
952 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
953 throw(::com::sun::star::beans::UnknownPropertyException,
954 ::com::sun::star::lang::WrappedTargetException,
955 ::com::sun::star::uno::RuntimeException);
956 virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
957 const ::com::sun::star::uno::Reference<
958 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
959 throw(::com::sun::star::beans::UnknownPropertyException,
960 ::com::sun::star::lang::WrappedTargetException,
961 ::com::sun::star::uno::RuntimeException);
962 virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
963 const ::com::sun::star::uno::Reference<
964 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
965 throw(::com::sun::star::beans::UnknownPropertyException,
966 ::com::sun::star::lang::WrappedTargetException,
967 ::com::sun::star::uno::RuntimeException);
968 virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
969 const ::com::sun::star::uno::Reference<
970 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
971 throw(::com::sun::star::beans::UnknownPropertyException,
972 ::com::sun::star::lang::WrappedTargetException,
973 ::com::sun::star::uno::RuntimeException);
975 // XServiceInfo
976 virtual ::rtl::OUString SAL_CALL getImplementationName()
977 throw(::com::sun::star::uno::RuntimeException);
978 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
979 throw(::com::sun::star::uno::RuntimeException);
980 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
981 throw(::com::sun::star::uno::RuntimeException);
983 private:
984 SfxItemPropertySet maPropSet;
985 sal_Int32 mnIndex;
988 // ============================================================================
990 #endif