update emoji autocorrect entries from po-files
[LibreOffice.git] / sc / inc / dapiuno.hxx
blob09ee64ca1438179b30a94b386f9022a0838a3a6e
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SC_INC_DAPIUNO_HXX
21 #define INCLUDED_SC_INC_DAPIUNO_HXX
23 #include "global.hxx"
24 #include "dpobject.hxx"
25 #include "rangeutl.hxx"
26 #include "cellsuno.hxx"
28 #include <svl/lstner.hxx>
29 #include <svl/itemprop.hxx>
31 #include <com/sun/star/lang/XServiceInfo.hpp>
32 #include <com/sun/star/lang/XUnoTunnel.hpp>
33 #include <com/sun/star/beans/XPropertySet.hpp>
34 #include <com/sun/star/container/XEnumerationAccess.hpp>
35 #include <com/sun/star/container/XNameContainer.hpp>
36 #include <com/sun/star/util/XModifyBroadcaster.hpp>
38 #include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp>
39 #include <com/sun/star/sheet/DataPilotFieldGroupInfo.hpp>
40 #include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp>
41 #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
42 #include <com/sun/star/sheet/DataPilotFieldReference.hpp>
43 #include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
44 #include <com/sun/star/sheet/GeneralFunction.hpp>
45 #include <com/sun/star/sheet/XDataPilotDataLayoutFieldSupplier.hpp>
46 #include <com/sun/star/sheet/XDataPilotDescriptor.hpp>
47 #include <com/sun/star/sheet/XDataPilotField.hpp>
48 #include <com/sun/star/sheet/XDataPilotFieldGrouping.hpp>
49 #include <com/sun/star/sheet/XDataPilotTable.hpp>
50 #include <com/sun/star/sheet/XDataPilotTable2.hpp>
51 #include <com/sun/star/sheet/XDataPilotTables.hpp>
53 #include <cppuhelper/implbase2.hxx>
54 #include <cppuhelper/implbase3.hxx>
55 #include <cppuhelper/implbase4.hxx>
56 #include <cppuhelper/implbase5.hxx>
58 #include <vector>
60 namespace com { namespace sun { namespace star { namespace sheet {
61 struct DataPilotFieldFilter;
62 struct DataPilotTablePositionData;
63 }}}}
65 class ScDocShell;
66 class ScDPSaveDimension;
67 struct ScDPNumGroupInfo;
69 class ScDataPilotTableObj;
70 class ScDataPilotFieldObj;
71 class ScDataPilotItemObj;
73 class ScDataPilotConversion
75 public:
76 static com::sun::star::sheet::GeneralFunction FirstFunc( sal_uInt16 nBits );
77 static sal_uInt16 FunctionBit( com::sun::star::sheet::GeneralFunction eFunc );
79 static void FillGroupInfo(
80 ::com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo,
81 const ScDPNumGroupInfo& rGroupInfo );
84 /** DataPilotTables collection per sheet. */
85 class ScDataPilotTablesObj : public cppu::WeakImplHelper4<
86 com::sun::star::sheet::XDataPilotTables,
87 com::sun::star::container::XEnumerationAccess,
88 com::sun::star::container::XIndexAccess,
89 com::sun::star::lang::XServiceInfo>,
90 public SfxListener
92 private:
93 ScDocShell* pDocShell;
94 SCTAB nTab;
96 ScDataPilotTableObj* GetObjectByIndex_Impl( sal_Int32 nIndex );
97 ScDataPilotTableObj* GetObjectByName_Impl(const OUString& aName);
99 public:
100 ScDataPilotTablesObj(ScDocShell* pDocSh, SCTAB nT);
101 virtual ~ScDataPilotTablesObj();
103 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
105 // XDataPilotTables
106 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotDescriptor > SAL_CALL
107 createDataPilotDescriptor() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
108 virtual void SAL_CALL insertNewByName( const OUString& aName,
109 const ::com::sun::star::table::CellAddress& aOutputAddress,
110 const ::com::sun::star::uno::Reference<
111 ::com::sun::star::sheet::XDataPilotDescriptor >& xDescriptor )
112 throw(::com::sun::star::uno::RuntimeException,
113 std::exception) SAL_OVERRIDE;
114 virtual void SAL_CALL removeByName( const OUString& aName )
115 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
117 // XNameAccess
118 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
119 throw(::com::sun::star::container::NoSuchElementException,
120 ::com::sun::star::lang::WrappedTargetException,
121 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
122 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
123 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
124 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
125 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
127 // XIndexAccess
128 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
129 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
130 throw(::com::sun::star::lang::IndexOutOfBoundsException,
131 ::com::sun::star::lang::WrappedTargetException,
132 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
134 // XEnumerationAccess
135 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
136 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
138 // XElementAccess
139 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
140 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
141 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
143 // XServiceInfo
144 virtual OUString SAL_CALL getImplementationName()
145 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
146 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
147 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
148 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
149 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
152 // ScDataPilotDescriptorBase is never instantiated directly
153 class ScDataPilotDescriptorBase : public com::sun::star::sheet::XDataPilotDescriptor,
154 public com::sun::star::beans::XPropertySet,
155 public com::sun::star::sheet::XDataPilotDataLayoutFieldSupplier,
156 public com::sun::star::lang::XServiceInfo,
157 public com::sun::star::lang::XUnoTunnel,
158 public com::sun::star::lang::XTypeProvider,
159 public cppu::OWeakObject,
160 public SfxListener
162 private:
163 SfxItemPropertySet maPropSet;
164 ScDocShell* pDocShell;
166 public:
167 ScDataPilotDescriptorBase(ScDocShell* pDocSh);
168 virtual ~ScDataPilotDescriptorBase();
170 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
171 const ::com::sun::star::uno::Type & rType )
172 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
173 virtual void SAL_CALL acquire() throw() SAL_OVERRIDE;
174 virtual void SAL_CALL release() throw() SAL_OVERRIDE;
176 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
178 ScDocShell* GetDocShell() const { return pDocShell; }
180 // in the derivatives:
181 virtual ScDPObject* GetDPObject() const = 0;
182 virtual void SetDPObject(ScDPObject* pDPObj) = 0;
184 // XDataPilotDescriptor
185 // getName, setName, getTag, setTag in derived classes
187 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getSourceRange()
188 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
189 virtual void SAL_CALL setSourceRange( const ::com::sun::star::table::CellRangeAddress& aSourceRange )
190 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
191 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL
192 getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
193 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
194 getDataPilotFields() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
195 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
196 getColumnFields() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
197 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
198 getRowFields() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
199 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
200 getPageFields() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
201 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
202 getDataFields() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
203 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
204 getHiddenFields() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
206 // XPropertySet
207 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
208 SAL_CALL getPropertySetInfo( )
209 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
210 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
211 const ::com::sun::star::uno::Any& aValue )
212 throw(::com::sun::star::beans::UnknownPropertyException,
213 ::com::sun::star::beans::PropertyVetoException,
214 ::com::sun::star::lang::IllegalArgumentException,
215 ::com::sun::star::lang::WrappedTargetException,
216 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
217 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
218 const OUString& PropertyName )
219 throw (::com::sun::star::beans::UnknownPropertyException,
220 ::com::sun::star::lang::WrappedTargetException,
221 ::com::sun::star::uno::RuntimeException,
222 std::exception) SAL_OVERRIDE;
223 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
224 const ::com::sun::star::uno::Reference<
225 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
226 throw(::com::sun::star::beans::UnknownPropertyException,
227 ::com::sun::star::lang::WrappedTargetException,
228 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
229 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
230 const ::com::sun::star::uno::Reference<
231 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
232 throw(::com::sun::star::beans::UnknownPropertyException,
233 ::com::sun::star::lang::WrappedTargetException,
234 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
235 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
236 const ::com::sun::star::uno::Reference<
237 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
238 throw(::com::sun::star::beans::UnknownPropertyException,
239 ::com::sun::star::lang::WrappedTargetException,
240 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
241 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
242 const ::com::sun::star::uno::Reference<
243 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
244 throw(::com::sun::star::beans::UnknownPropertyException,
245 ::com::sun::star::lang::WrappedTargetException,
246 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
248 // XDataPilotDataLayoutFieldSupplier
249 virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotField >
250 SAL_CALL getDataLayoutField()
251 throw (::com::sun::star::uno::RuntimeException,
252 std::exception) SAL_OVERRIDE;
254 // XUnoTunnel
255 virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence<
256 sal_Int8 >& aIdentifier )
257 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
259 static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
260 SC_DLLPUBLIC static ScDataPilotDescriptorBase* getImplementation(const css::uno::Reference<css::sheet::XDataPilotDescriptor>& rObj);
262 // XTypeProvider (override in ScDataPilotTableObj)
263 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
264 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
265 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
266 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
268 // XServiceInfo is in derived classes
271 class ScDataPilotDescriptor : public ScDataPilotDescriptorBase
273 private:
274 ScDPObject* mpDPObject;
276 public:
277 ScDataPilotDescriptor(ScDocShell* pDocSh);
278 virtual ~ScDataPilotDescriptor();
280 virtual ScDPObject* GetDPObject() const SAL_OVERRIDE;
281 virtual void SetDPObject(ScDPObject* pDPObj) SAL_OVERRIDE;
283 // rest of XDataPilotDescriptor (incl. XNamed)
284 virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
285 virtual void SAL_CALL setName( const OUString& aName )
286 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
287 virtual OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
288 virtual void SAL_CALL setTag( const OUString& aTag )
289 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
291 // XServiceInfo
292 virtual OUString SAL_CALL getImplementationName()
293 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
294 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
295 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
296 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
297 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
300 class ScDataPilotTableObj : public ScDataPilotDescriptorBase,
301 public com::sun::star::sheet::XDataPilotTable2,
302 public com::sun::star::util::XModifyBroadcaster
304 private:
305 SCTAB nTab;
306 OUString aName;
307 XModifyListenerArr_Impl aModifyListeners;
309 void Refreshed_Impl();
311 public:
312 ScDataPilotTableObj(ScDocShell* pDocSh, SCTAB nT, const OUString& rN);
313 virtual ~ScDataPilotTableObj();
315 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
316 const ::com::sun::star::uno::Type & rType )
317 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
318 virtual void SAL_CALL acquire() throw() SAL_OVERRIDE;
319 virtual void SAL_CALL release() throw() SAL_OVERRIDE;
321 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) SAL_OVERRIDE;
323 virtual ScDPObject* GetDPObject() const SAL_OVERRIDE;
324 virtual void SetDPObject(ScDPObject* pDPObj) SAL_OVERRIDE;
326 // rest of XDataPilotDescriptor (incl. XNamed)
327 virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
328 virtual void SAL_CALL setName( const OUString& aName )
329 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
330 virtual OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
331 virtual void SAL_CALL setTag( const OUString& aTag )
332 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
334 // XDataPilotTable
335 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRange()
336 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
337 virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
339 // XDataPilotTable2
340 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >
341 SAL_CALL getDrillDownData(const ::com::sun::star::table::CellAddress& aAddr)
342 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
344 virtual ::com::sun::star::sheet::DataPilotTablePositionData
345 SAL_CALL getPositionData(const ::com::sun::star::table::CellAddress& aAddr)
346 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
348 virtual void SAL_CALL insertDrillDownSheet(const ::com::sun::star::table::CellAddress& aAddr)
349 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
351 virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRangeByType( sal_Int32 nType )
352 throw(::com::sun::star::lang::IllegalArgumentException,
353 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
355 // XModifyBroadcaster
356 virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference<
357 ::com::sun::star::util::XModifyListener >& aListener )
358 throw (::com::sun::star::uno::RuntimeException,
359 std::exception) SAL_OVERRIDE;
360 virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference<
361 ::com::sun::star::util::XModifyListener >& aListener )
362 throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
364 // XTypeProvider (override)
365 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
366 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
367 virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
368 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
370 // XServiceInfo
371 virtual OUString SAL_CALL getImplementationName()
372 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
373 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
374 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
375 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
376 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
379 struct ScFieldIdentifier
381 OUString maFieldName; /// Source field name.
382 sal_Int32 mnFieldIdx; /// Field index (if several fields with same name exist).
383 bool mbDataLayout; /// True = data layout field collecting all data fields as items.
385 inline explicit ScFieldIdentifier() :
386 mnFieldIdx( 0 ), mbDataLayout( false ) {}
388 inline explicit ScFieldIdentifier( const OUString& rFieldName, sal_Int32 nFieldIdx, bool bDataLayout ) :
389 maFieldName( rFieldName ), mnFieldIdx( nFieldIdx ), mbDataLayout( bDataLayout ) {}
392 /** Base class of all implementation objects based on a DataPilot descriptor
393 or DataPilot table object. Wraps acquiring and releasing the parent. */
394 class ScDataPilotChildObjBase
396 protected:
397 explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent );
398 explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
399 virtual ~ScDataPilotChildObjBase();
401 /** Returns the wrapped DataPilot object (calls GetDPObject() at parent). */
402 ScDPObject* GetDPObject() const;
403 /** Sets the passed DataPilot object (calls SetDPObject() at parent). */
404 void SetDPObject( ScDPObject* pDPObject );
406 /** Returns the DataPilot dimension object related to the field described by maFieldId. */
407 ScDPSaveDimension* GetDPDimension( ScDPObject** ppDPObject = 0 ) const;
409 /** Returns the number of members for the field described by maFieldId. */
410 sal_Int32 GetMemberCount() const;
411 /** Returns the collection of members for the field described by maFieldId. */
412 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
413 GetMembers() const;
415 ScDocShell* GetDocShell() const;
416 protected:
417 ScDataPilotDescriptorBase& mrParent;
418 ScFieldIdentifier maFieldId;
420 private:
421 ScDataPilotChildObjBase& operator=( const ScDataPilotChildObjBase& ) SAL_DELETED_FUNCTION;
424 typedef ::cppu::WeakImplHelper4
426 ::com::sun::star::container::XEnumerationAccess,
427 ::com::sun::star::container::XIndexAccess,
428 ::com::sun::star::container::XNameAccess,
429 ::com::sun::star::lang::XServiceInfo
431 ScDataPilotFieldsObjImpl;
433 /** Collection of all DataPilot fields, or of all fields from a specific dimension. */
434 class ScDataPilotFieldsObj : public ScDataPilotChildObjBase, public ScDataPilotFieldsObjImpl
436 public:
437 explicit ScDataPilotFieldsObj(
438 ScDataPilotDescriptorBase& rParent );
440 explicit ScDataPilotFieldsObj(
441 ScDataPilotDescriptorBase& rParent,
442 ::com::sun::star::sheet::DataPilotFieldOrientation eOrient );
444 virtual ~ScDataPilotFieldsObj();
446 // XNameAccess
447 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
448 throw(::com::sun::star::container::NoSuchElementException,
449 ::com::sun::star::lang::WrappedTargetException,
450 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
451 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
452 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
453 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
454 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
456 // XIndexAccess
457 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
458 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
459 throw(::com::sun::star::lang::IndexOutOfBoundsException,
460 ::com::sun::star::lang::WrappedTargetException,
461 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
463 // XEnumerationAccess
464 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
465 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
467 // XElementAccess
468 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
469 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
470 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
472 // XServiceInfo
473 virtual OUString SAL_CALL getImplementationName()
474 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
475 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
476 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
477 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
478 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
480 private:
481 ScDataPilotFieldObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
482 ScDataPilotFieldObj* GetObjectByName_Impl( const OUString& rName ) const;
484 private:
485 ::com::sun::star::uno::Any maOrient; /// Field orientation, no value = all fields.
488 typedef ::cppu::WeakImplHelper5
490 ::com::sun::star::container::XNamed,
491 ::com::sun::star::beans::XPropertySet,
492 ::com::sun::star::sheet::XDataPilotField,
493 ::com::sun::star::sheet::XDataPilotFieldGrouping,
494 ::com::sun::star::lang::XServiceInfo
496 ScDataPilotFieldObjImpl;
498 /** Implementation of a single DataPilot field. */
499 class ScDataPilotFieldObj : public ScDataPilotChildObjBase, public ScDataPilotFieldObjImpl
501 public:
502 ScDataPilotFieldObj(
503 ScDataPilotDescriptorBase& rParent,
504 const ScFieldIdentifier& rIdent );
506 ScDataPilotFieldObj(
507 ScDataPilotDescriptorBase& rParent,
508 const ScFieldIdentifier& rIdent,
509 const ::com::sun::star::uno::Any& rOrient );
511 virtual ~ScDataPilotFieldObj();
513 // XNamed
514 virtual OUString SAL_CALL getName()
515 throw (::com::sun::star::uno::RuntimeException,
516 std::exception) SAL_OVERRIDE;
517 virtual void SAL_CALL setName(const OUString& aName)
518 throw (::com::sun::star::uno::RuntimeException,
519 std::exception) SAL_OVERRIDE;
521 // XPropertySet
522 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
523 SAL_CALL getPropertySetInfo( )
524 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
525 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
526 const ::com::sun::star::uno::Any& aValue )
527 throw (::com::sun::star::beans::UnknownPropertyException,
528 ::com::sun::star::beans::PropertyVetoException,
529 ::com::sun::star::lang::IllegalArgumentException,
530 ::com::sun::star::lang::WrappedTargetException,
531 ::com::sun::star::uno::RuntimeException,
532 std::exception) SAL_OVERRIDE;
533 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
534 const OUString& PropertyName )
535 throw (::com::sun::star::beans::UnknownPropertyException,
536 ::com::sun::star::lang::WrappedTargetException,
537 ::com::sun::star::uno::RuntimeException,
538 std::exception) SAL_OVERRIDE;
539 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
540 const ::com::sun::star::uno::Reference<
541 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
542 throw(::com::sun::star::beans::UnknownPropertyException,
543 ::com::sun::star::lang::WrappedTargetException,
544 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
545 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
546 const ::com::sun::star::uno::Reference<
547 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
548 throw(::com::sun::star::beans::UnknownPropertyException,
549 ::com::sun::star::lang::WrappedTargetException,
550 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
551 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
552 const ::com::sun::star::uno::Reference<
553 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
554 throw(::com::sun::star::beans::UnknownPropertyException,
555 ::com::sun::star::lang::WrappedTargetException,
556 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
557 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
558 const ::com::sun::star::uno::Reference<
559 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
560 throw(::com::sun::star::beans::UnknownPropertyException,
561 ::com::sun::star::lang::WrappedTargetException,
562 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
564 // XDatePilotField
565 virtual com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> SAL_CALL
566 getItems() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
568 // only called from property-functions:
569 com::sun::star::sheet::DataPilotFieldOrientation getOrientation() const;
570 void setOrientation(com::sun::star::sheet::DataPilotFieldOrientation Orientation);
571 com::sun::star::sheet::GeneralFunction getFunction() const;
572 void setFunction(com::sun::star::sheet::GeneralFunction Function);
573 com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction > getSubtotals() const;
574 void setSubtotals(const com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction >& rFunctions);
575 static OUString getCurrentPage();
576 void setCurrentPage(const OUString& sPage);
577 void setUseCurrentPage(bool bUse);
578 const com::sun::star::sheet::DataPilotFieldAutoShowInfo* getAutoShowInfo();
579 void setAutoShowInfo(const com::sun::star::sheet::DataPilotFieldAutoShowInfo* pInfo);
580 const com::sun::star::sheet::DataPilotFieldLayoutInfo* getLayoutInfo();
581 void setLayoutInfo(const com::sun::star::sheet::DataPilotFieldLayoutInfo* pInfo);
582 const com::sun::star::sheet::DataPilotFieldReference* getReference();
583 void setReference(const com::sun::star::sheet::DataPilotFieldReference* pInfo);
584 const com::sun::star::sheet::DataPilotFieldSortInfo* getSortInfo();
585 void setSortInfo(const com::sun::star::sheet::DataPilotFieldSortInfo* pInfo);
586 bool getShowEmpty() const;
587 void setShowEmpty(bool bShow);
588 bool getRepeatItemLabels() const;
589 void setRepeatItemLabels(bool bShow);
591 bool hasGroupInfo();
592 com::sun::star::sheet::DataPilotFieldGroupInfo getGroupInfo();
593 void setGroupInfo(const com::sun::star::sheet::DataPilotFieldGroupInfo* pInfo);
595 // XDataPilotFieldGrouping
596 static bool HasString(const com::sun::star::uno::Sequence< OUString >& aItems, const OUString& aString);
597 virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
598 createNameGroup(const com::sun::star::uno::Sequence< OUString >& aItems)
599 throw (::com::sun::star::uno::RuntimeException,
600 ::com::sun::star::lang::IllegalArgumentException,
601 std::exception) SAL_OVERRIDE;
602 virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
603 createDateGroup(const com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo)
604 throw (::com::sun::star::uno::RuntimeException,
605 ::com::sun::star::lang::IllegalArgumentException,
606 std::exception) SAL_OVERRIDE;
608 // XServiceInfo
609 virtual OUString SAL_CALL getImplementationName()
610 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
611 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
612 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
613 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
614 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
616 private:
617 ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
618 mxItems;
619 SfxItemPropertySet maPropSet;
620 ::com::sun::star::uno::Any maOrient;
623 typedef ::std::vector< OUString > ScFieldGroupMembers;
625 struct ScFieldGroup
627 OUString maName;
628 ScFieldGroupMembers maMembers;
631 typedef ::std::vector< ScFieldGroup > ScFieldGroups;
633 typedef ::cppu::WeakImplHelper4
635 ::com::sun::star::container::XNameContainer,
636 ::com::sun::star::container::XEnumerationAccess,
637 ::com::sun::star::container::XIndexAccess,
638 ::com::sun::star::lang::XServiceInfo
640 ScDataPilotFieldGroupsObjImpl;
642 /** Implementation of all grouped items in a DataPilot field.
644 This is a stand-alone object without any connection to the base DataPilot
645 field. Grouping info has to be written back with the GroupInfo property of
646 the DataPilot field after modifying this object.
648 class ScDataPilotFieldGroupsObj : public ScDataPilotFieldGroupsObjImpl
650 public:
651 explicit ScDataPilotFieldGroupsObj( const ScFieldGroups& rGroups );
652 virtual ~ScDataPilotFieldGroupsObj();
654 // XNameAccess
655 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
656 throw(::com::sun::star::container::NoSuchElementException,
657 ::com::sun::star::lang::WrappedTargetException,
658 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
659 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
660 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
661 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
662 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
664 // XNameReplace
665 virtual void SAL_CALL replaceByName( const OUString& aName,
666 const ::com::sun::star::uno::Any& aElement )
667 throw (::com::sun::star::lang::IllegalArgumentException,
668 ::com::sun::star::container::NoSuchElementException,
669 ::com::sun::star::lang::WrappedTargetException,
670 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
672 // XNameContainer
673 virtual void SAL_CALL insertByName( const OUString& aName,
674 const ::com::sun::star::uno::Any& aElement )
675 throw (::com::sun::star::lang::IllegalArgumentException,
676 ::com::sun::star::container::ElementExistException,
677 ::com::sun::star::lang::WrappedTargetException,
678 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
679 virtual void SAL_CALL removeByName( const OUString& Name )
680 throw (::com::sun::star::container::NoSuchElementException,
681 ::com::sun::star::lang::WrappedTargetException,
682 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
684 // XIndexAccess
685 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
686 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
687 throw(::com::sun::star::lang::IndexOutOfBoundsException,
688 ::com::sun::star::lang::WrappedTargetException,
689 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
691 // XEnumerationAccess
692 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
693 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
695 // XElementAccess
696 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
697 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
698 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
700 // XServiceInfo
701 virtual OUString SAL_CALL getImplementationName()
702 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
703 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
704 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
705 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
706 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
708 // implementation
709 ScFieldGroup& getFieldGroup( const OUString& rName ) throw(::com::sun::star::uno::RuntimeException);
710 void renameFieldGroup( const OUString& rOldName, const OUString& rNewName ) throw(::com::sun::star::uno::RuntimeException);
712 private:
713 ScFieldGroups::iterator implFindByName( const OUString& rName );
715 private:
716 ScFieldGroups maGroups;
719 typedef ::cppu::WeakImplHelper5
721 ::com::sun::star::container::XNameContainer,
722 ::com::sun::star::container::XEnumerationAccess,
723 ::com::sun::star::container::XIndexAccess,
724 ::com::sun::star::container::XNamed,
725 ::com::sun::star::lang::XServiceInfo
727 ScDataPilotFieldGroupObjImpl;
729 class ScDataPilotFieldGroupObj : public ScDataPilotFieldGroupObjImpl
731 public:
732 explicit ScDataPilotFieldGroupObj( ScDataPilotFieldGroupsObj& rParent, const OUString& rGroupName );
733 virtual ~ScDataPilotFieldGroupObj();
735 // XNameAccess
736 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
737 throw(::com::sun::star::container::NoSuchElementException,
738 ::com::sun::star::lang::WrappedTargetException,
739 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
740 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
741 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
742 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
743 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
745 // XNameReplace
746 virtual void SAL_CALL replaceByName( const OUString& aName,
747 const ::com::sun::star::uno::Any& aElement )
748 throw (::com::sun::star::lang::IllegalArgumentException,
749 ::com::sun::star::container::NoSuchElementException,
750 ::com::sun::star::lang::WrappedTargetException,
751 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
753 // XNameContainer
754 virtual void SAL_CALL insertByName( const OUString& aName,
755 const ::com::sun::star::uno::Any& aElement )
756 throw (::com::sun::star::lang::IllegalArgumentException,
757 ::com::sun::star::container::ElementExistException,
758 ::com::sun::star::lang::WrappedTargetException,
759 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
760 virtual void SAL_CALL removeByName( const OUString& Name )
761 throw (::com::sun::star::container::NoSuchElementException,
762 ::com::sun::star::lang::WrappedTargetException,
763 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
765 // XIndexAccess
766 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
767 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
768 throw(::com::sun::star::lang::IndexOutOfBoundsException,
769 ::com::sun::star::lang::WrappedTargetException,
770 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
772 // XEnumerationAccess
773 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
774 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
776 // XElementAccess
777 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
778 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
779 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
781 // XNamed
782 virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
783 virtual void SAL_CALL setName( const OUString& aName )
784 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
786 // XServiceInfo
787 virtual OUString SAL_CALL getImplementationName()
788 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
789 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
790 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
791 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
792 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
794 private:
795 ScDataPilotFieldGroupsObj& mrParent;
796 OUString maGroupName;
799 typedef ::cppu::WeakImplHelper2
801 ::com::sun::star::container::XNamed,
802 ::com::sun::star::lang::XServiceInfo
804 ScDataPilotFieldGroupItemObjImpl;
806 class ScDataPilotFieldGroupItemObj : public ScDataPilotFieldGroupItemObjImpl
808 public:
809 explicit ScDataPilotFieldGroupItemObj( ScDataPilotFieldGroupObj& rParent, const OUString& rName );
810 virtual ~ScDataPilotFieldGroupItemObj();
812 // XNamed
813 virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
814 virtual void SAL_CALL setName( const OUString& aName )
815 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
817 // XServiceInfo
818 virtual OUString SAL_CALL getImplementationName()
819 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
820 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
821 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
822 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
823 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
825 private:
826 ScDataPilotFieldGroupObj& mrParent;
827 OUString maName;
830 typedef ::cppu::WeakImplHelper4
832 ::com::sun::star::container::XEnumerationAccess,
833 ::com::sun::star::container::XIndexAccess,
834 ::com::sun::star::container::XNameAccess,
835 ::com::sun::star::lang::XServiceInfo
837 ScDataPilotItemsObjImpl;
839 class ScDataPilotItemsObj : public ScDataPilotChildObjBase, public ScDataPilotItemsObjImpl
841 public:
842 explicit ScDataPilotItemsObj( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
843 virtual ~ScDataPilotItemsObj();
845 // XNameAccess
846 virtual ::com::sun::star::uno::Any SAL_CALL getByName( const OUString& aName )
847 throw(::com::sun::star::container::NoSuchElementException,
848 ::com::sun::star::lang::WrappedTargetException,
849 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
850 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getElementNames()
851 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
852 virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
853 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
855 // XIndexAccess
856 virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
857 virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
858 throw(::com::sun::star::lang::IndexOutOfBoundsException,
859 ::com::sun::star::lang::WrappedTargetException,
860 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
862 // XEnumerationAccess
863 virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
864 createEnumeration() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
866 // XElementAccess
867 virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
868 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
869 virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
871 // XServiceInfo
872 virtual OUString SAL_CALL getImplementationName()
873 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
874 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
875 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
876 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
877 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
879 private:
880 ScDataPilotItemObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
883 typedef ::cppu::WeakImplHelper3
885 ::com::sun::star::container::XNamed,
886 ::com::sun::star::beans::XPropertySet,
887 ::com::sun::star::lang::XServiceInfo
889 ScDataPilotItemObjImpl;
891 class ScDataPilotItemObj : public ScDataPilotChildObjBase, public ScDataPilotItemObjImpl
893 public:
894 explicit ScDataPilotItemObj(
895 ScDataPilotDescriptorBase& rParent,
896 const ScFieldIdentifier& rFieldId,
897 sal_Int32 nIndex );
899 virtual ~ScDataPilotItemObj();
901 // XNamed
902 virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
903 virtual void SAL_CALL setName( const OUString& aName )
904 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
906 // XPropertySet
907 virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
908 SAL_CALL getPropertySetInfo( )
909 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
910 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
911 const ::com::sun::star::uno::Any& aValue )
912 throw (::com::sun::star::beans::UnknownPropertyException,
913 ::com::sun::star::beans::PropertyVetoException,
914 ::com::sun::star::lang::IllegalArgumentException,
915 ::com::sun::star::lang::WrappedTargetException,
916 ::com::sun::star::uno::RuntimeException,
917 std::exception) SAL_OVERRIDE;
918 virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
919 const OUString& PropertyName )
920 throw (::com::sun::star::beans::UnknownPropertyException,
921 ::com::sun::star::lang::WrappedTargetException,
922 ::com::sun::star::uno::RuntimeException,
923 std::exception) SAL_OVERRIDE;
924 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
925 const ::com::sun::star::uno::Reference<
926 ::com::sun::star::beans::XPropertyChangeListener >& xListener )
927 throw(::com::sun::star::beans::UnknownPropertyException,
928 ::com::sun::star::lang::WrappedTargetException,
929 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
930 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
931 const ::com::sun::star::uno::Reference<
932 ::com::sun::star::beans::XPropertyChangeListener >& aListener )
933 throw(::com::sun::star::beans::UnknownPropertyException,
934 ::com::sun::star::lang::WrappedTargetException,
935 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
936 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
937 const ::com::sun::star::uno::Reference<
938 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
939 throw(::com::sun::star::beans::UnknownPropertyException,
940 ::com::sun::star::lang::WrappedTargetException,
941 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
942 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
943 const ::com::sun::star::uno::Reference<
944 ::com::sun::star::beans::XVetoableChangeListener >& aListener )
945 throw(::com::sun::star::beans::UnknownPropertyException,
946 ::com::sun::star::lang::WrappedTargetException,
947 ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
949 // XServiceInfo
950 virtual OUString SAL_CALL getImplementationName()
951 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
952 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName )
953 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
954 virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
955 throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
957 private:
958 SfxItemPropertySet maPropSet;
959 sal_Int32 mnIndex;
962 #endif
964 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */