16155fdc39
Patches contributed by Herbert Duerr i#118735 prevent endless loop if vlookup/hlookup doesn't find anything http://svn.apache.org/viewvc?view=revision&revision=1239673 Patches contributed by Andre Fischer remove lp_solver http://svn.apache.org/viewvc?view=revision&revision=1199180 i#118160: Added external CoinMP library. http://svn.apache.org/viewvc?view=revision&revision=1233909 Patches contributed by Armin Le-Grand i#118485 - Styles for OLEs are not saved. http://svn.apache.org/viewvc?view=revision&revision=1182166 i#118524: apply patch, followup fixes to 118485 http://svn.apache.org/viewvc?view=revision&revision=1186077 Patches contributed by lihuiibm i#108860 - Fix range validation. http://svn.apache.org/viewvc?view=revision&revision=1242846 i#118954 Chart data will lost after copy to different file http://svn.apache.org/viewvc?view=revision&revision=1301345 Patches contributed by Ariel Constenla-Haile Fix Linux build breaker: extra qualification on member http://svn.apache.org/viewvc?view=revision&revision=1301591 i#118696 - i#118697 - Fix some Sheet Tab Color API issues http://svn.apache.org/viewvc?view=revision&revision=1225428 i#118697 - Fix uninitialized variable http://svn.apache.org/viewvc?view=revision&revision=1225859 i#118771 - ScUndoImportTab should preserve tab background color http://svn.apache.org/viewvc?view=revision&revision=1230356 i#118921 - Repaint linked sheet tab background color after updating link http://svn.apache.org/viewvc?view=revision&revision=1245177 i#118927 - Undo/Redo "Update Link" does not reset sheet tab color http://svn.apache.org/viewvc?view=revision&revision=1245241 i#118747 - Copy tab color when transferring sheets across documents http://svn.apache.org/viewvc?view=revision&revision=1230355 Patch contributed by Oliver Rainer-Wittman i#118012 - methods <ScBroadcastAreaSlot::AreaBroadcast(..)> and <ScBroadcastAreaSlot::AreaBroadcastInRange(..)> adapt stl-container iteration in order to avoid destroyed iterators during iteration. http://svn.apache.org/viewvc?view=revision&revision=1297916 Patches contributed by Mathias Bauer gnumake4 work variously http://svn.apache.org/viewvc?view=revision&revision=1394707 http://svn.apache.org/viewvc?view=revision&revision=1394326 http://svn.apache.org/viewvc?view=revision&revision=1396797 http://svn.apache.org/viewvc?view=revision&revision=1397315 Patch contributed by Daniel Rentz calc69: #i116936# fix VBA symbol Cells http://svn.apache.org/viewvc?view=revision&revision=1172135 Patches contributed by leiw: i#118546 CPU 100% on switched off AutoCalculate with Conditional Formatting on date values http://svn.apache.org/viewvc?view=revision&revision=1301380 Re-add new function documentation. Many various cleanups. Add missing calc66: #o11817313# also look at formula result number format, remove redundant binaries.
953 lines
52 KiB
C++
953 lines
52 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
#ifndef SC_DAPIUNO_HXX
|
|
#define SC_DAPIUNO_HXX
|
|
|
|
#include "global.hxx"
|
|
#include "dpobject.hxx"
|
|
#include "rangeutl.hxx" // ScArea
|
|
#include "cellsuno.hxx" // for XModifyListenerArr_Impl
|
|
|
|
#include <svl/lstner.hxx>
|
|
#include <svl/itemprop.hxx>
|
|
|
|
#include <com/sun/star/lang/XServiceInfo.hpp>
|
|
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
|
#include <com/sun/star/beans/XPropertySet.hpp>
|
|
#include <com/sun/star/container/XEnumerationAccess.hpp>
|
|
#include <com/sun/star/container/XNameContainer.hpp>
|
|
#include <com/sun/star/util/XModifyBroadcaster.hpp>
|
|
|
|
#include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp>
|
|
#include <com/sun/star/sheet/DataPilotFieldGroupInfo.hpp>
|
|
#include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp>
|
|
#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
|
|
#include <com/sun/star/sheet/DataPilotFieldReference.hpp>
|
|
#include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
|
|
#include <com/sun/star/sheet/GeneralFunction.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotDataLayoutFieldSupplier.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotDescriptor.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotField.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotFieldGrouping.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotTable.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotTable2.hpp>
|
|
#include <com/sun/star/sheet/XDataPilotTables.hpp>
|
|
|
|
#include <cppuhelper/implbase2.hxx>
|
|
#include <cppuhelper/implbase3.hxx>
|
|
#include <cppuhelper/implbase4.hxx>
|
|
#include <cppuhelper/implbase5.hxx>
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
namespace com { namespace sun { namespace star { namespace sheet {
|
|
struct DataPilotFieldFilter;
|
|
struct DataPilotTablePositionData;
|
|
}}}}
|
|
|
|
class ScDocShell;
|
|
class ScDPSaveDimension;
|
|
struct ScDPNumGroupInfo;
|
|
|
|
class ScDataPilotTableObj;
|
|
class ScDataPilotFieldObj;
|
|
class ScDataPilotItemObj;
|
|
|
|
|
|
class ScDataPilotConversion
|
|
{
|
|
public:
|
|
static com::sun::star::sheet::GeneralFunction FirstFunc( sal_uInt16 nBits );
|
|
static sal_uInt16 FunctionBit( com::sun::star::sheet::GeneralFunction eFunc );
|
|
|
|
static void FillGroupInfo(
|
|
::com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo,
|
|
const ScDPNumGroupInfo& rGroupInfo );
|
|
};
|
|
|
|
/** DataPilotTables collection per sheet. */
|
|
class ScDataPilotTablesObj : public cppu::WeakImplHelper4<
|
|
com::sun::star::sheet::XDataPilotTables,
|
|
com::sun::star::container::XEnumerationAccess,
|
|
com::sun::star::container::XIndexAccess,
|
|
com::sun::star::lang::XServiceInfo>,
|
|
public SfxListener
|
|
{
|
|
private:
|
|
ScDocShell* pDocShell;
|
|
SCTAB nTab;
|
|
|
|
ScDataPilotTableObj* GetObjectByIndex_Impl( sal_Int32 nIndex );
|
|
ScDataPilotTableObj* GetObjectByName_Impl(const ::rtl::OUString& aName);
|
|
|
|
public:
|
|
ScDataPilotTablesObj(ScDocShell* pDocSh, SCTAB nT);
|
|
virtual ~ScDataPilotTablesObj();
|
|
|
|
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
|
|
|
|
// XDataPilotTables
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotDescriptor > SAL_CALL
|
|
createDataPilotDescriptor() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL insertNewByName( const ::rtl::OUString& aName,
|
|
const ::com::sun::star::table::CellAddress& aOutputAddress,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::sheet::XDataPilotDescriptor >& xDescriptor )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XNameAccess
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XIndexAccess
|
|
virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
|
|
throw(::com::sun::star::lang::IndexOutOfBoundsException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XEnumerationAccess
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
|
|
createEnumeration() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XElementAccess
|
|
virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
};
|
|
|
|
// ScDataPilotDescriptorBase is never instantiated directly
|
|
class ScDataPilotDescriptorBase : public com::sun::star::sheet::XDataPilotDescriptor,
|
|
public com::sun::star::beans::XPropertySet,
|
|
public com::sun::star::sheet::XDataPilotDataLayoutFieldSupplier,
|
|
public com::sun::star::lang::XServiceInfo,
|
|
public com::sun::star::lang::XUnoTunnel,
|
|
public com::sun::star::lang::XTypeProvider,
|
|
public cppu::OWeakObject,
|
|
public SfxListener
|
|
{
|
|
private:
|
|
SfxItemPropertySet maPropSet;
|
|
ScDocShell* pDocShell;
|
|
|
|
public:
|
|
ScDataPilotDescriptorBase(ScDocShell* pDocSh);
|
|
virtual ~ScDataPilotDescriptorBase();
|
|
|
|
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
|
|
const ::com::sun::star::uno::Type & rType )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL acquire() throw();
|
|
virtual void SAL_CALL release() throw();
|
|
|
|
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
|
|
|
|
ScDocShell* GetDocShell() const { return pDocShell; }
|
|
|
|
// in the derivatives:
|
|
virtual ScDPObject* GetDPObject() const = 0;
|
|
virtual void SetDPObject(ScDPObject* pDPObj) = 0;
|
|
|
|
// XDataPilotDescriptor
|
|
// getName, setName, getTag, setTag in derived classes
|
|
|
|
virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getSourceRange()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setSourceRange( const ::com::sun::star::table::CellRangeAddress& aSourceRange )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL
|
|
getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
|
|
getDataPilotFields() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
|
|
getColumnFields() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
|
|
getRowFields() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
|
|
getPageFields() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
|
|
getDataFields() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL
|
|
getHiddenFields() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XPropertySet
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
|
|
SAL_CALL getPropertySetInfo( )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Any& aValue )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::beans::PropertyVetoException,
|
|
::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
|
|
const ::rtl::OUString& PropertyName )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XPropertyChangeListener >& xListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XPropertyChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XVetoableChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XVetoableChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XDataPilotDataLayoutFieldSupplier
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotField >
|
|
SAL_CALL getDataLayoutField()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XUnoTunnel
|
|
virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence<
|
|
sal_Int8 >& aIdentifier )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
|
|
SC_DLLPUBLIC static ScDataPilotDescriptorBase* getImplementation( const com::sun::star::uno::Reference<
|
|
com::sun::star::sheet::XDataPilotDescriptor> xObj );
|
|
|
|
// XTypeProvider (overloaded in ScDataPilotTableObj)
|
|
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo is in derived classes
|
|
};
|
|
|
|
class ScDataPilotDescriptor : public ScDataPilotDescriptorBase
|
|
{
|
|
private:
|
|
ScDPObject* mpDPObject;
|
|
|
|
public:
|
|
ScDataPilotDescriptor(ScDocShell* pDocSh);
|
|
virtual ~ScDataPilotDescriptor();
|
|
|
|
virtual ScDPObject* GetDPObject() const;
|
|
virtual void SetDPObject(ScDPObject* pDPObj);
|
|
|
|
// rest of XDataPilotDescriptor (incl. XNamed)
|
|
virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setTag( const ::rtl::OUString& aTag )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
};
|
|
|
|
class ScDataPilotTableObj : public ScDataPilotDescriptorBase,
|
|
public com::sun::star::sheet::XDataPilotTable2,
|
|
public com::sun::star::util::XModifyBroadcaster
|
|
{
|
|
private:
|
|
SCTAB nTab;
|
|
String aName;
|
|
XModifyListenerArr_Impl aModifyListeners;
|
|
|
|
void Refreshed_Impl();
|
|
|
|
public:
|
|
ScDataPilotTableObj(ScDocShell* pDocSh, SCTAB nT, const String& rN);
|
|
virtual ~ScDataPilotTableObj();
|
|
|
|
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
|
|
const ::com::sun::star::uno::Type & rType )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL acquire() throw();
|
|
virtual void SAL_CALL release() throw();
|
|
|
|
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
|
|
|
|
virtual ScDPObject* GetDPObject() const;
|
|
virtual void SetDPObject(ScDPObject* pDPObj);
|
|
|
|
// rest of XDataPilotDescriptor (incl. XNamed)
|
|
virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setTag( const ::rtl::OUString& aTag )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XDataPilotTable
|
|
virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRange()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XDataPilotTable2
|
|
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >
|
|
SAL_CALL getDrillDownData(const ::com::sun::star::table::CellAddress& aAddr)
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
virtual ::com::sun::star::sheet::DataPilotTablePositionData
|
|
SAL_CALL getPositionData(const ::com::sun::star::table::CellAddress& aAddr)
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
virtual void SAL_CALL insertDrillDownSheet(const ::com::sun::star::table::CellAddress& aAddr)
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRangeByType( sal_Int32 nType )
|
|
throw(::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XModifyBroadcaster
|
|
virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::util::XModifyListener >& aListener )
|
|
throw (::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::util::XModifyListener >& aListener )
|
|
throw (::com::sun::star::uno::RuntimeException);
|
|
|
|
// XTypeProvider (overloaded)
|
|
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
};
|
|
|
|
struct ScFieldIdentifier
|
|
{
|
|
::rtl::OUString maFieldName; /// Source field name.
|
|
sal_Int32 mnFieldIdx; /// Field index (if several fields with same name exist).
|
|
bool mbDataLayout; /// True = data layout field collecting all data fields as items.
|
|
|
|
inline explicit ScFieldIdentifier() :
|
|
mnFieldIdx( 0 ), mbDataLayout( false ) {}
|
|
|
|
inline explicit ScFieldIdentifier( const ::rtl::OUString& rFieldName, sal_Int32 nFieldIdx, bool bDataLayout ) :
|
|
maFieldName( rFieldName ), mnFieldIdx( nFieldIdx ), mbDataLayout( bDataLayout ) {}
|
|
};
|
|
|
|
/** Base class of all implementation objects based on a DataPilot descriptor
|
|
or DataPilot table object. Wraps acquiring and releasing the parent. */
|
|
class ScDataPilotChildObjBase
|
|
{
|
|
protected:
|
|
explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent );
|
|
explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
|
|
virtual ~ScDataPilotChildObjBase();
|
|
|
|
/** Returns the wrapped DataPilot object (calls GetDPObject() at parent). */
|
|
ScDPObject* GetDPObject() const;
|
|
/** Sets the passed DataPilot object (calls SetDPObject() at parent). */
|
|
void SetDPObject( ScDPObject* pDPObject );
|
|
|
|
/** Returns the DataPilot dimension object related to the field described by maFieldId. */
|
|
ScDPSaveDimension* GetDPDimension( ScDPObject** ppDPObject = 0 ) const;
|
|
|
|
/** Returns the number of members for the field described by maFieldId. */
|
|
sal_Int32 GetMemberCount() const;
|
|
/** Returns the collection of members for the field described by maFieldId. */
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
|
|
GetMembers() const;
|
|
|
|
ScDocShell* GetDocShell() const;
|
|
protected:
|
|
ScDataPilotDescriptorBase& mrParent;
|
|
ScFieldIdentifier maFieldId;
|
|
|
|
private:
|
|
ScDataPilotChildObjBase& operator=( const ScDataPilotChildObjBase& );
|
|
};
|
|
|
|
typedef ::cppu::WeakImplHelper4
|
|
<
|
|
::com::sun::star::container::XEnumerationAccess,
|
|
::com::sun::star::container::XIndexAccess,
|
|
::com::sun::star::container::XNameAccess,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotFieldsObjImpl;
|
|
|
|
/** Collection of all DataPilot fields, or of all fields from a specific dimension. */
|
|
class ScDataPilotFieldsObj : public ScDataPilotChildObjBase, public ScDataPilotFieldsObjImpl
|
|
{
|
|
public:
|
|
explicit ScDataPilotFieldsObj(
|
|
ScDataPilotDescriptorBase& rParent );
|
|
|
|
explicit ScDataPilotFieldsObj(
|
|
ScDataPilotDescriptorBase& rParent,
|
|
::com::sun::star::sheet::DataPilotFieldOrientation eOrient );
|
|
|
|
virtual ~ScDataPilotFieldsObj();
|
|
|
|
// XNameAccess
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XIndexAccess
|
|
virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
|
|
throw(::com::sun::star::lang::IndexOutOfBoundsException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XEnumerationAccess
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
|
|
createEnumeration() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XElementAccess
|
|
virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
ScDataPilotFieldObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
|
|
ScDataPilotFieldObj* GetObjectByName_Impl( const ::rtl::OUString& rName ) const;
|
|
|
|
private:
|
|
::com::sun::star::uno::Any maOrient; /// Field orientation, no value = all fields.
|
|
};
|
|
|
|
typedef ::cppu::WeakImplHelper5
|
|
<
|
|
::com::sun::star::container::XNamed,
|
|
::com::sun::star::beans::XPropertySet,
|
|
::com::sun::star::sheet::XDataPilotField,
|
|
::com::sun::star::sheet::XDataPilotFieldGrouping,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotFieldObjImpl;
|
|
|
|
/** Implementation of a single DataPilot field. */
|
|
class ScDataPilotFieldObj : public ScDataPilotChildObjBase, public ScDataPilotFieldObjImpl
|
|
{
|
|
public:
|
|
ScDataPilotFieldObj(
|
|
ScDataPilotDescriptorBase& rParent,
|
|
const ScFieldIdentifier& rIdent );
|
|
|
|
ScDataPilotFieldObj(
|
|
ScDataPilotDescriptorBase& rParent,
|
|
const ScFieldIdentifier& rIdent,
|
|
const ::com::sun::star::uno::Any& rOrient );
|
|
|
|
virtual ~ScDataPilotFieldObj();
|
|
|
|
// XNamed
|
|
virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XPropertySet
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
|
|
SAL_CALL getPropertySetInfo( )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Any& aValue )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::beans::PropertyVetoException,
|
|
::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
|
|
const ::rtl::OUString& PropertyName )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XPropertyChangeListener >& xListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XPropertyChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XVetoableChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XVetoableChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XDatePilotField
|
|
virtual com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> SAL_CALL
|
|
getItems() throw (::com::sun::star::uno::RuntimeException);
|
|
|
|
// only called from property-functions:
|
|
com::sun::star::sheet::DataPilotFieldOrientation getOrientation(void) const;
|
|
void setOrientation(com::sun::star::sheet::DataPilotFieldOrientation Orientation);
|
|
com::sun::star::sheet::GeneralFunction getFunction(void) const;
|
|
void setFunction(com::sun::star::sheet::GeneralFunction Function);
|
|
com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction > getSubtotals() const;
|
|
void setSubtotals(const com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction >& rFunctions);
|
|
rtl::OUString getCurrentPage() const;
|
|
void setCurrentPage(const rtl::OUString& sPage);
|
|
sal_Bool getUseCurrentPage() const;
|
|
void setUseCurrentPage(sal_Bool bUse);
|
|
const com::sun::star::sheet::DataPilotFieldAutoShowInfo* getAutoShowInfo();
|
|
void setAutoShowInfo(const com::sun::star::sheet::DataPilotFieldAutoShowInfo* pInfo);
|
|
const com::sun::star::sheet::DataPilotFieldLayoutInfo* getLayoutInfo();
|
|
void setLayoutInfo(const com::sun::star::sheet::DataPilotFieldLayoutInfo* pInfo);
|
|
const com::sun::star::sheet::DataPilotFieldReference* getReference();
|
|
void setReference(const com::sun::star::sheet::DataPilotFieldReference* pInfo);
|
|
const com::sun::star::sheet::DataPilotFieldSortInfo* getSortInfo();
|
|
void setSortInfo(const com::sun::star::sheet::DataPilotFieldSortInfo* pInfo);
|
|
sal_Bool getShowEmpty() const;
|
|
void setShowEmpty(sal_Bool bShow);
|
|
|
|
sal_Bool hasGroupInfo();
|
|
com::sun::star::sheet::DataPilotFieldGroupInfo getGroupInfo();
|
|
void setGroupInfo(const com::sun::star::sheet::DataPilotFieldGroupInfo* pInfo);
|
|
|
|
// XDataPilotFieldGrouping
|
|
sal_Bool HasString(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems, const ::rtl::OUString& aString);
|
|
virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
|
|
createNameGroup(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems)
|
|
throw (::com::sun::star::uno::RuntimeException,
|
|
::com::sun::star::lang::IllegalArgumentException);
|
|
virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL
|
|
createDateGroup(const com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo)
|
|
throw (::com::sun::star::uno::RuntimeException,
|
|
::com::sun::star::lang::IllegalArgumentException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
|
|
mxItems;
|
|
SfxItemPropertySet maPropSet;
|
|
::com::sun::star::uno::Any maOrient;
|
|
};
|
|
|
|
typedef ::std::vector< ::rtl::OUString > ScFieldGroupMembers;
|
|
|
|
struct ScFieldGroup
|
|
{
|
|
::rtl::OUString maName;
|
|
ScFieldGroupMembers maMembers;
|
|
};
|
|
|
|
typedef ::std::vector< ScFieldGroup > ScFieldGroups;
|
|
|
|
typedef ::cppu::WeakImplHelper4
|
|
<
|
|
::com::sun::star::container::XNameContainer,
|
|
::com::sun::star::container::XEnumerationAccess,
|
|
::com::sun::star::container::XIndexAccess,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotFieldGroupsObjImpl;
|
|
|
|
/** Implementation of all grouped items in a DataPilot field.
|
|
|
|
This is a stand-alone object without any connection to the base DataPilot
|
|
field. Grouping info has to be written back with the GroupInfo property of
|
|
the DataPilot field after modifying this object.
|
|
*/
|
|
class ScDataPilotFieldGroupsObj : public ScDataPilotFieldGroupsObjImpl
|
|
{
|
|
public:
|
|
explicit ScDataPilotFieldGroupsObj( const ScFieldGroups& rGroups );
|
|
virtual ~ScDataPilotFieldGroupsObj();
|
|
|
|
// XNameAccess
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XNameReplace
|
|
virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName,
|
|
const ::com::sun::star::uno::Any& aElement )
|
|
throw (::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XNameContainer
|
|
virtual void SAL_CALL insertByName( const ::rtl::OUString& aName,
|
|
const ::com::sun::star::uno::Any& aElement )
|
|
throw (::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::container::ElementExistException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
|
|
throw (::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XIndexAccess
|
|
virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
|
|
throw(::com::sun::star::lang::IndexOutOfBoundsException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XEnumerationAccess
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
|
|
createEnumeration() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XElementAccess
|
|
virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// implementation
|
|
ScFieldGroup& getFieldGroup( const ::rtl::OUString& rName ) throw(::com::sun::star::uno::RuntimeException);
|
|
void renameFieldGroup( const ::rtl::OUString& rOldName, const ::rtl::OUString& rNewName ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
ScFieldGroups::iterator implFindByName( const ::rtl::OUString& rName );
|
|
|
|
private:
|
|
ScFieldGroups maGroups;
|
|
};
|
|
|
|
typedef ::cppu::WeakImplHelper5
|
|
<
|
|
::com::sun::star::container::XNameContainer,
|
|
::com::sun::star::container::XEnumerationAccess,
|
|
::com::sun::star::container::XIndexAccess,
|
|
::com::sun::star::container::XNamed,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotFieldGroupObjImpl;
|
|
|
|
class ScDataPilotFieldGroupObj : public ScDataPilotFieldGroupObjImpl
|
|
{
|
|
public:
|
|
explicit ScDataPilotFieldGroupObj( ScDataPilotFieldGroupsObj& rParent, const ::rtl::OUString& rGroupName );
|
|
virtual ~ScDataPilotFieldGroupObj();
|
|
|
|
// XNameAccess
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XNameReplace
|
|
virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName,
|
|
const ::com::sun::star::uno::Any& aElement )
|
|
throw (::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XNameContainer
|
|
virtual void SAL_CALL insertByName( const ::rtl::OUString& aName,
|
|
const ::com::sun::star::uno::Any& aElement )
|
|
throw (::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::container::ElementExistException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
|
|
throw (::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XIndexAccess
|
|
virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
|
|
throw(::com::sun::star::lang::IndexOutOfBoundsException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XEnumerationAccess
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
|
|
createEnumeration() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XElementAccess
|
|
virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XNamed
|
|
virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
ScDataPilotFieldGroupsObj& mrParent;
|
|
::rtl::OUString maGroupName;
|
|
};
|
|
|
|
typedef ::cppu::WeakImplHelper2
|
|
<
|
|
::com::sun::star::container::XNamed,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotFieldGroupItemObjImpl;
|
|
|
|
class ScDataPilotFieldGroupItemObj : public ScDataPilotFieldGroupItemObjImpl
|
|
{
|
|
public:
|
|
explicit ScDataPilotFieldGroupItemObj( ScDataPilotFieldGroupObj& rParent, const ::rtl::OUString& rName );
|
|
virtual ~ScDataPilotFieldGroupItemObj();
|
|
|
|
// XNamed
|
|
virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
ScDataPilotFieldGroupObj& mrParent;
|
|
::rtl::OUString maName;
|
|
};
|
|
|
|
typedef ::cppu::WeakImplHelper4
|
|
<
|
|
::com::sun::star::container::XEnumerationAccess,
|
|
::com::sun::star::container::XIndexAccess,
|
|
::com::sun::star::container::XNameAccess,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotItemsObjImpl;
|
|
|
|
class ScDataPilotItemsObj : public ScDataPilotChildObjBase, public ScDataPilotItemsObjImpl
|
|
{
|
|
public:
|
|
explicit ScDataPilotItemsObj( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId );
|
|
virtual ~ScDataPilotItemsObj();
|
|
|
|
// XNameAccess
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::container::NoSuchElementException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XIndexAccess
|
|
virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
|
|
throw(::com::sun::star::lang::IndexOutOfBoundsException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XEnumerationAccess
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
|
|
createEnumeration() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XElementAccess
|
|
virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
ScDataPilotItemObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const;
|
|
};
|
|
|
|
typedef ::cppu::WeakImplHelper3
|
|
<
|
|
::com::sun::star::container::XNamed,
|
|
::com::sun::star::beans::XPropertySet,
|
|
::com::sun::star::lang::XServiceInfo
|
|
>
|
|
ScDataPilotItemObjImpl;
|
|
|
|
class ScDataPilotItemObj : public ScDataPilotChildObjBase, public ScDataPilotItemObjImpl
|
|
{
|
|
public:
|
|
explicit ScDataPilotItemObj(
|
|
ScDataPilotDescriptorBase& rParent,
|
|
const ScFieldIdentifier& rFieldId,
|
|
sal_Int32 nIndex );
|
|
|
|
virtual ~ScDataPilotItemObj();
|
|
|
|
// XNamed
|
|
virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setName( const ::rtl::OUString& aName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// XPropertySet
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
|
|
SAL_CALL getPropertySetInfo( )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Any& aValue )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::beans::PropertyVetoException,
|
|
::com::sun::star::lang::IllegalArgumentException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
|
|
const ::rtl::OUString& PropertyName )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XPropertyChangeListener >& xListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XPropertyChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XVetoableChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::beans::XVetoableChangeListener >& aListener )
|
|
throw(::com::sun::star::beans::UnknownPropertyException,
|
|
::com::sun::star::lang::WrappedTargetException,
|
|
::com::sun::star::uno::RuntimeException);
|
|
|
|
// XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
|
|
throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
private:
|
|
SfxItemPropertySet maPropSet;
|
|
sal_Int32 mnIndex;
|
|
};
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|