1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef SC_DAPIUNO_HXX 25*b1cdbd2cSJim Jagielski #define SC_DAPIUNO_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "global.hxx" 28*b1cdbd2cSJim Jagielski #include "dpobject.hxx" 29*b1cdbd2cSJim Jagielski #include "rangeutl.hxx" // ScArea 30*b1cdbd2cSJim Jagielski #include "cellsuno.hxx" // for XModifyListenerArr_Impl 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski #include <svl/lstner.hxx> 33*b1cdbd2cSJim Jagielski #include <svl/itemprop.hxx> 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XUnoTunnel.hpp> 37*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 38*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XEnumerationAccess.hpp> 39*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameContainer.hpp> 40*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XModifyBroadcaster.hpp> 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp> 43*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/DataPilotFieldGroupInfo.hpp> 44*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp> 45*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp> 46*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/DataPilotFieldReference.hpp> 47*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp> 48*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/GeneralFunction.hpp> 49*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotDataLayoutFieldSupplier.hpp> 50*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotDescriptor.hpp> 51*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotField.hpp> 52*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotFieldGrouping.hpp> 53*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotTable.hpp> 54*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotTable2.hpp> 55*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDataPilotTables.hpp> 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase2.hxx> 58*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase3.hxx> 59*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase4.hxx> 60*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase5.hxx> 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski #include <memory> 63*b1cdbd2cSJim Jagielski #include <vector> 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace sheet { 66*b1cdbd2cSJim Jagielski struct DataPilotFieldFilter; 67*b1cdbd2cSJim Jagielski struct DataPilotTablePositionData; 68*b1cdbd2cSJim Jagielski }}}} 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski class ScDocShell; 71*b1cdbd2cSJim Jagielski class ScDPSaveDimension; 72*b1cdbd2cSJim Jagielski class ScDPSaveGroupDimension; 73*b1cdbd2cSJim Jagielski class ScDPSaveNumGroupDimension; 74*b1cdbd2cSJim Jagielski struct ScDPNumGroupInfo; 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski class ScDataPilotTableObj; 77*b1cdbd2cSJim Jagielski class ScDataPilotFieldObj; 78*b1cdbd2cSJim Jagielski class ScDataPilotItemObj; 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski class ScDataPilotConversion 82*b1cdbd2cSJim Jagielski { 83*b1cdbd2cSJim Jagielski public: 84*b1cdbd2cSJim Jagielski static com::sun::star::sheet::GeneralFunction FirstFunc( sal_uInt16 nBits ); 85*b1cdbd2cSJim Jagielski static sal_uInt16 FunctionBit( com::sun::star::sheet::GeneralFunction eFunc ); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski static void FillGroupInfo( 88*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo, 89*b1cdbd2cSJim Jagielski const ScDPNumGroupInfo& rGroupInfo ); 90*b1cdbd2cSJim Jagielski }; 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski // ============================================================================ 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski /** DataPilotTables collection per sheet. */ 95*b1cdbd2cSJim Jagielski class ScDataPilotTablesObj : public cppu::WeakImplHelper4< 96*b1cdbd2cSJim Jagielski com::sun::star::sheet::XDataPilotTables, 97*b1cdbd2cSJim Jagielski com::sun::star::container::XEnumerationAccess, 98*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexAccess, 99*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo>, 100*b1cdbd2cSJim Jagielski public SfxListener 101*b1cdbd2cSJim Jagielski { 102*b1cdbd2cSJim Jagielski private: 103*b1cdbd2cSJim Jagielski ScDocShell* pDocShell; 104*b1cdbd2cSJim Jagielski SCTAB nTab; 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski ScDataPilotTableObj* GetObjectByIndex_Impl( sal_Int32 nIndex ); 107*b1cdbd2cSJim Jagielski ScDataPilotTableObj* GetObjectByName_Impl(const ::rtl::OUString& aName); 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski public: 110*b1cdbd2cSJim Jagielski ScDataPilotTablesObj(ScDocShell* pDocSh, SCTAB nT); 111*b1cdbd2cSJim Jagielski virtual ~ScDataPilotTablesObj(); 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski // XDataPilotTables 116*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotDescriptor > SAL_CALL 117*b1cdbd2cSJim Jagielski createDataPilotDescriptor() throw(::com::sun::star::uno::RuntimeException); 118*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertNewByName( const ::rtl::OUString& aName, 119*b1cdbd2cSJim Jagielski const ::com::sun::star::table::CellAddress& aOutputAddress, 120*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 121*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::XDataPilotDescriptor >& xDescriptor ) 122*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 123*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) 124*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski // XNameAccess 127*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 128*b1cdbd2cSJim Jagielski throw(::com::sun::star::container::NoSuchElementException, 129*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 130*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 131*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 132*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 133*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 134*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski // XIndexAccess 137*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 138*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 139*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 140*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 141*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski // XEnumerationAccess 144*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 145*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski // XElementAccess 148*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 149*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 150*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski // XServiceInfo 153*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 154*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 155*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 156*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 157*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 158*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 159*b1cdbd2cSJim Jagielski }; 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski // ============================================================================ 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski // ScDataPilotDescriptorBase is never instantiated directly 164*b1cdbd2cSJim Jagielski class ScDataPilotDescriptorBase : public com::sun::star::sheet::XDataPilotDescriptor, 165*b1cdbd2cSJim Jagielski public com::sun::star::beans::XPropertySet, 166*b1cdbd2cSJim Jagielski public com::sun::star::sheet::XDataPilotDataLayoutFieldSupplier, 167*b1cdbd2cSJim Jagielski public com::sun::star::lang::XServiceInfo, 168*b1cdbd2cSJim Jagielski public com::sun::star::lang::XUnoTunnel, 169*b1cdbd2cSJim Jagielski public com::sun::star::lang::XTypeProvider, 170*b1cdbd2cSJim Jagielski public cppu::OWeakObject, 171*b1cdbd2cSJim Jagielski public SfxListener 172*b1cdbd2cSJim Jagielski { 173*b1cdbd2cSJim Jagielski private: 174*b1cdbd2cSJim Jagielski SfxItemPropertySet maPropSet; 175*b1cdbd2cSJim Jagielski ScDocShell* pDocShell; 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski public: 178*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase(ScDocShell* pDocSh); 179*b1cdbd2cSJim Jagielski virtual ~ScDataPilotDescriptorBase(); 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( 182*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Type & rType ) 183*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 184*b1cdbd2cSJim Jagielski virtual void SAL_CALL acquire() throw(); 185*b1cdbd2cSJim Jagielski virtual void SAL_CALL release() throw(); 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 188*b1cdbd2cSJim Jagielski GetDocShell() const189*b1cdbd2cSJim Jagielski ScDocShell* GetDocShell() const { return pDocShell; } 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski // in den Ableitungen: 192*b1cdbd2cSJim Jagielski virtual ScDPObject* GetDPObject() const = 0; 193*b1cdbd2cSJim Jagielski virtual void SetDPObject(ScDPObject* pDPObj) = 0; 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski // XDataPilotDescriptor 196*b1cdbd2cSJim Jagielski // getName, setName, getTag, setTag in derived classes 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getSourceRange() 199*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 200*b1cdbd2cSJim Jagielski virtual void SAL_CALL setSourceRange( const ::com::sun::star::table::CellRangeAddress& aSourceRange ) 201*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 202*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL 203*b1cdbd2cSJim Jagielski getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException); 204*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL 205*b1cdbd2cSJim Jagielski getDataPilotFields() throw(::com::sun::star::uno::RuntimeException); 206*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL 207*b1cdbd2cSJim Jagielski getColumnFields() throw(::com::sun::star::uno::RuntimeException); 208*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL 209*b1cdbd2cSJim Jagielski getRowFields() throw(::com::sun::star::uno::RuntimeException); 210*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL 211*b1cdbd2cSJim Jagielski getPageFields() throw(::com::sun::star::uno::RuntimeException); 212*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL 213*b1cdbd2cSJim Jagielski getDataFields() throw(::com::sun::star::uno::RuntimeException); 214*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL 215*b1cdbd2cSJim Jagielski getHiddenFields() throw(::com::sun::star::uno::RuntimeException); 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski // XPropertySet 218*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 219*b1cdbd2cSJim Jagielski SAL_CALL getPropertySetInfo( ) 220*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 221*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 222*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aValue ) 223*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 224*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 225*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 226*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 227*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 228*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 229*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName ) 230*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 231*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 232*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 233*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 234*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 235*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 236*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 237*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 238*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 239*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 240*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 241*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 242*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 243*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 244*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 245*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 246*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 247*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 248*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 249*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 250*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 251*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 252*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 253*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 254*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 255*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 256*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 257*b1cdbd2cSJim Jagielski 258*b1cdbd2cSJim Jagielski // XDataPilotDataLayoutFieldSupplier 259*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDataPilotField > 260*b1cdbd2cSJim Jagielski SAL_CALL getDataLayoutField() 261*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 262*b1cdbd2cSJim Jagielski 263*b1cdbd2cSJim Jagielski // XUnoTunnel 264*b1cdbd2cSJim Jagielski virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< 265*b1cdbd2cSJim Jagielski sal_Int8 >& aIdentifier ) 266*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); 269*b1cdbd2cSJim Jagielski static ScDataPilotDescriptorBase* getImplementation( const com::sun::star::uno::Reference< 270*b1cdbd2cSJim Jagielski com::sun::star::sheet::XDataPilotDescriptor> xObj ); 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski // XTypeProvider (overloaded in ScDataPilotTableObj) 273*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() 274*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 275*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 276*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 277*b1cdbd2cSJim Jagielski 278*b1cdbd2cSJim Jagielski // XServiceInfo is in derived classes 279*b1cdbd2cSJim Jagielski }; 280*b1cdbd2cSJim Jagielski 281*b1cdbd2cSJim Jagielski // ============================================================================ 282*b1cdbd2cSJim Jagielski 283*b1cdbd2cSJim Jagielski class ScDataPilotDescriptor : public ScDataPilotDescriptorBase 284*b1cdbd2cSJim Jagielski { 285*b1cdbd2cSJim Jagielski private: 286*b1cdbd2cSJim Jagielski ScDPObject* mpDPObject; 287*b1cdbd2cSJim Jagielski 288*b1cdbd2cSJim Jagielski public: 289*b1cdbd2cSJim Jagielski ScDataPilotDescriptor(ScDocShell* pDocSh); 290*b1cdbd2cSJim Jagielski virtual ~ScDataPilotDescriptor(); 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski virtual ScDPObject* GetDPObject() const; 293*b1cdbd2cSJim Jagielski virtual void SetDPObject(ScDPObject* pDPObj); 294*b1cdbd2cSJim Jagielski 295*b1cdbd2cSJim Jagielski // rest of XDataPilotDescriptor (incl. XNamed) 296*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 297*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 298*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 299*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException); 300*b1cdbd2cSJim Jagielski virtual void SAL_CALL setTag( const ::rtl::OUString& aTag ) 301*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski // XServiceInfo 304*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 305*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 306*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 307*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 308*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 309*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 310*b1cdbd2cSJim Jagielski }; 311*b1cdbd2cSJim Jagielski 312*b1cdbd2cSJim Jagielski // ============================================================================ 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski class ScDataPilotTableObj : public ScDataPilotDescriptorBase, 315*b1cdbd2cSJim Jagielski public com::sun::star::sheet::XDataPilotTable2, 316*b1cdbd2cSJim Jagielski public com::sun::star::util::XModifyBroadcaster 317*b1cdbd2cSJim Jagielski { 318*b1cdbd2cSJim Jagielski private: 319*b1cdbd2cSJim Jagielski SCTAB nTab; 320*b1cdbd2cSJim Jagielski String aName; 321*b1cdbd2cSJim Jagielski XModifyListenerArr_Impl aModifyListeners; 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski void Refreshed_Impl(); 324*b1cdbd2cSJim Jagielski 325*b1cdbd2cSJim Jagielski public: 326*b1cdbd2cSJim Jagielski ScDataPilotTableObj(ScDocShell* pDocSh, SCTAB nT, const String& rN); 327*b1cdbd2cSJim Jagielski virtual ~ScDataPilotTableObj(); 328*b1cdbd2cSJim Jagielski 329*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( 330*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Type & rType ) 331*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 332*b1cdbd2cSJim Jagielski virtual void SAL_CALL acquire() throw(); 333*b1cdbd2cSJim Jagielski virtual void SAL_CALL release() throw(); 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 336*b1cdbd2cSJim Jagielski 337*b1cdbd2cSJim Jagielski virtual ScDPObject* GetDPObject() const; 338*b1cdbd2cSJim Jagielski virtual void SetDPObject(ScDPObject* pDPObj); 339*b1cdbd2cSJim Jagielski 340*b1cdbd2cSJim Jagielski // rest of XDataPilotDescriptor (incl. XNamed) 341*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 342*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 343*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 344*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getTag() throw(::com::sun::star::uno::RuntimeException); 345*b1cdbd2cSJim Jagielski virtual void SAL_CALL setTag( const ::rtl::OUString& aTag ) 346*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 347*b1cdbd2cSJim Jagielski 348*b1cdbd2cSJim Jagielski // XDataPilotTable 349*b1cdbd2cSJim Jagielski virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRange() 350*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 351*b1cdbd2cSJim Jagielski virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); 352*b1cdbd2cSJim Jagielski 353*b1cdbd2cSJim Jagielski // XDataPilotTable2 354*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > 355*b1cdbd2cSJim Jagielski SAL_CALL getDrillDownData(const ::com::sun::star::table::CellAddress& aAddr) 356*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 357*b1cdbd2cSJim Jagielski 358*b1cdbd2cSJim Jagielski virtual ::com::sun::star::sheet::DataPilotTablePositionData 359*b1cdbd2cSJim Jagielski SAL_CALL getPositionData(const ::com::sun::star::table::CellAddress& aAddr) 360*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 361*b1cdbd2cSJim Jagielski 362*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertDrillDownSheet(const ::com::sun::star::table::CellAddress& aAddr) 363*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRangeByType( sal_Int32 nType ) 366*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IllegalArgumentException, 367*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim Jagielski // XModifyBroadcaster 370*b1cdbd2cSJim Jagielski virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< 371*b1cdbd2cSJim Jagielski ::com::sun::star::util::XModifyListener >& aListener ) 372*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 373*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< 374*b1cdbd2cSJim Jagielski ::com::sun::star::util::XModifyListener >& aListener ) 375*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 376*b1cdbd2cSJim Jagielski 377*b1cdbd2cSJim Jagielski // XTypeProvider (overloaded) 378*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() 379*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 380*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 381*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 382*b1cdbd2cSJim Jagielski 383*b1cdbd2cSJim Jagielski // XServiceInfo 384*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 385*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 386*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 387*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 388*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 389*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 390*b1cdbd2cSJim Jagielski }; 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim Jagielski // ============================================================================ 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski struct ScFieldIdentifier 395*b1cdbd2cSJim Jagielski { 396*b1cdbd2cSJim Jagielski ::rtl::OUString maFieldName; /// Source field name. 397*b1cdbd2cSJim Jagielski sal_Int32 mnFieldIdx; /// Field index (if several fields with same name exist). 398*b1cdbd2cSJim Jagielski bool mbDataLayout; /// True = data layout field collecting all data fields as items. 399*b1cdbd2cSJim Jagielski ScFieldIdentifierScFieldIdentifier400*b1cdbd2cSJim Jagielski inline explicit ScFieldIdentifier() : 401*b1cdbd2cSJim Jagielski mnFieldIdx( 0 ), mbDataLayout( false ) {} 402*b1cdbd2cSJim Jagielski ScFieldIdentifierScFieldIdentifier403*b1cdbd2cSJim Jagielski inline explicit ScFieldIdentifier( const ::rtl::OUString& rFieldName, sal_Int32 nFieldIdx, bool bDataLayout ) : 404*b1cdbd2cSJim Jagielski maFieldName( rFieldName ), mnFieldIdx( nFieldIdx ), mbDataLayout( bDataLayout ) {} 405*b1cdbd2cSJim Jagielski }; 406*b1cdbd2cSJim Jagielski 407*b1cdbd2cSJim Jagielski // ============================================================================ 408*b1cdbd2cSJim Jagielski 409*b1cdbd2cSJim Jagielski /** Base class of all implementation objects based on a DataPilot descriptor 410*b1cdbd2cSJim Jagielski or DataPilot table object. Wraps acquiring and releasing the parent. */ 411*b1cdbd2cSJim Jagielski class ScDataPilotChildObjBase 412*b1cdbd2cSJim Jagielski { 413*b1cdbd2cSJim Jagielski protected: 414*b1cdbd2cSJim Jagielski explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent ); 415*b1cdbd2cSJim Jagielski explicit ScDataPilotChildObjBase( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId ); 416*b1cdbd2cSJim Jagielski virtual ~ScDataPilotChildObjBase(); 417*b1cdbd2cSJim Jagielski 418*b1cdbd2cSJim Jagielski /** Returns the wrapped DataPilot object (calls GetDPObject() at parent). */ 419*b1cdbd2cSJim Jagielski ScDPObject* GetDPObject() const; 420*b1cdbd2cSJim Jagielski /** Sets the passed DataPilot object (calls SetDPObject() at parent). */ 421*b1cdbd2cSJim Jagielski void SetDPObject( ScDPObject* pDPObject ); 422*b1cdbd2cSJim Jagielski 423*b1cdbd2cSJim Jagielski /** Returns the DataPilot dimension object related to the field described by maFieldId. */ 424*b1cdbd2cSJim Jagielski ScDPSaveDimension* GetDPDimension( ScDPObject** ppDPObject = 0 ) const; 425*b1cdbd2cSJim Jagielski 426*b1cdbd2cSJim Jagielski /** Returns the number of members for the field described by maFieldId. */ 427*b1cdbd2cSJim Jagielski sal_Int32 GetMemberCount() const; 428*b1cdbd2cSJim Jagielski /** Returns the collection of members for the field described by maFieldId. */ 429*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > 430*b1cdbd2cSJim Jagielski GetMembers() const; 431*b1cdbd2cSJim Jagielski 432*b1cdbd2cSJim Jagielski protected: 433*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase& mrParent; 434*b1cdbd2cSJim Jagielski ScFieldIdentifier maFieldId; 435*b1cdbd2cSJim Jagielski 436*b1cdbd2cSJim Jagielski private: 437*b1cdbd2cSJim Jagielski ScDataPilotChildObjBase& operator=( const ScDataPilotChildObjBase& ); 438*b1cdbd2cSJim Jagielski }; 439*b1cdbd2cSJim Jagielski 440*b1cdbd2cSJim Jagielski // ============================================================================ 441*b1cdbd2cSJim Jagielski 442*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper4 443*b1cdbd2cSJim Jagielski < 444*b1cdbd2cSJim Jagielski ::com::sun::star::container::XEnumerationAccess, 445*b1cdbd2cSJim Jagielski ::com::sun::star::container::XIndexAccess, 446*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNameAccess, 447*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 448*b1cdbd2cSJim Jagielski > 449*b1cdbd2cSJim Jagielski ScDataPilotFieldsObjImpl; 450*b1cdbd2cSJim Jagielski 451*b1cdbd2cSJim Jagielski /** Collection of all DataPilot fields, or of all fields from a specific dimension. */ 452*b1cdbd2cSJim Jagielski class ScDataPilotFieldsObj : public ScDataPilotChildObjBase, public ScDataPilotFieldsObjImpl 453*b1cdbd2cSJim Jagielski { 454*b1cdbd2cSJim Jagielski public: 455*b1cdbd2cSJim Jagielski explicit ScDataPilotFieldsObj( 456*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase& rParent ); 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski explicit ScDataPilotFieldsObj( 459*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase& rParent, 460*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::DataPilotFieldOrientation eOrient ); 461*b1cdbd2cSJim Jagielski 462*b1cdbd2cSJim Jagielski virtual ~ScDataPilotFieldsObj(); 463*b1cdbd2cSJim Jagielski 464*b1cdbd2cSJim Jagielski // XNameAccess 465*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 466*b1cdbd2cSJim Jagielski throw(::com::sun::star::container::NoSuchElementException, 467*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 468*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 469*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 470*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 471*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 472*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 473*b1cdbd2cSJim Jagielski 474*b1cdbd2cSJim Jagielski // XIndexAccess 475*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 476*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 477*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 478*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 479*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 480*b1cdbd2cSJim Jagielski 481*b1cdbd2cSJim Jagielski // XEnumerationAccess 482*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 483*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 484*b1cdbd2cSJim Jagielski 485*b1cdbd2cSJim Jagielski // XElementAccess 486*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 487*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 488*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 489*b1cdbd2cSJim Jagielski 490*b1cdbd2cSJim Jagielski // XServiceInfo 491*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 492*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 493*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 494*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 495*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 496*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 497*b1cdbd2cSJim Jagielski 498*b1cdbd2cSJim Jagielski private: 499*b1cdbd2cSJim Jagielski ScDataPilotFieldObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const; 500*b1cdbd2cSJim Jagielski ScDataPilotFieldObj* GetObjectByName_Impl( const ::rtl::OUString& rName ) const; 501*b1cdbd2cSJim Jagielski 502*b1cdbd2cSJim Jagielski private: 503*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Any maOrient; /// Field orientation, no value = all fields. 504*b1cdbd2cSJim Jagielski }; 505*b1cdbd2cSJim Jagielski 506*b1cdbd2cSJim Jagielski // ============================================================================ 507*b1cdbd2cSJim Jagielski 508*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper5 509*b1cdbd2cSJim Jagielski < 510*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNamed, 511*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet, 512*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::XDataPilotField, 513*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::XDataPilotFieldGrouping, 514*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 515*b1cdbd2cSJim Jagielski > 516*b1cdbd2cSJim Jagielski ScDataPilotFieldObjImpl; 517*b1cdbd2cSJim Jagielski 518*b1cdbd2cSJim Jagielski /** Implementation of a single DataPilot field. */ 519*b1cdbd2cSJim Jagielski class ScDataPilotFieldObj : public ScDataPilotChildObjBase, public ScDataPilotFieldObjImpl 520*b1cdbd2cSJim Jagielski { 521*b1cdbd2cSJim Jagielski public: 522*b1cdbd2cSJim Jagielski ScDataPilotFieldObj( 523*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase& rParent, 524*b1cdbd2cSJim Jagielski const ScFieldIdentifier& rIdent ); 525*b1cdbd2cSJim Jagielski 526*b1cdbd2cSJim Jagielski ScDataPilotFieldObj( 527*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase& rParent, 528*b1cdbd2cSJim Jagielski const ScFieldIdentifier& rIdent, 529*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& rOrient ); 530*b1cdbd2cSJim Jagielski 531*b1cdbd2cSJim Jagielski virtual ~ScDataPilotFieldObj(); 532*b1cdbd2cSJim Jagielski 533*b1cdbd2cSJim Jagielski // XNamed 534*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 535*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 536*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 537*b1cdbd2cSJim Jagielski 538*b1cdbd2cSJim Jagielski // XPropertySet 539*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 540*b1cdbd2cSJim Jagielski SAL_CALL getPropertySetInfo( ) 541*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 542*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 543*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aValue ) 544*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 545*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 546*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 547*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 548*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 549*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 550*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName ) 551*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 552*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 553*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 554*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 555*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 556*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 557*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 558*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 559*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 560*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 561*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 562*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 563*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 564*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 565*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 566*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 567*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 568*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 569*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 570*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 571*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 572*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 573*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 574*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 575*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 576*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 577*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 578*b1cdbd2cSJim Jagielski 579*b1cdbd2cSJim Jagielski // XDatePilotField 580*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> SAL_CALL 581*b1cdbd2cSJim Jagielski getItems() throw (::com::sun::star::uno::RuntimeException); 582*b1cdbd2cSJim Jagielski 583*b1cdbd2cSJim Jagielski // nur noch aus Property-Funktionen gerufen: 584*b1cdbd2cSJim Jagielski com::sun::star::sheet::DataPilotFieldOrientation getOrientation(void) const; 585*b1cdbd2cSJim Jagielski void setOrientation(com::sun::star::sheet::DataPilotFieldOrientation Orientation); 586*b1cdbd2cSJim Jagielski com::sun::star::sheet::GeneralFunction getFunction(void) const; 587*b1cdbd2cSJim Jagielski void setFunction(com::sun::star::sheet::GeneralFunction Function); 588*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction > getSubtotals() const; 589*b1cdbd2cSJim Jagielski void setSubtotals(const com::sun::star::uno::Sequence< com::sun::star::sheet::GeneralFunction >& rFunctions); 590*b1cdbd2cSJim Jagielski rtl::OUString getCurrentPage() const; 591*b1cdbd2cSJim Jagielski void setCurrentPage(const rtl::OUString& sPage); 592*b1cdbd2cSJim Jagielski sal_Bool getUseCurrentPage() const; 593*b1cdbd2cSJim Jagielski void setUseCurrentPage(sal_Bool bUse); 594*b1cdbd2cSJim Jagielski const com::sun::star::sheet::DataPilotFieldAutoShowInfo* getAutoShowInfo(); 595*b1cdbd2cSJim Jagielski void setAutoShowInfo(const com::sun::star::sheet::DataPilotFieldAutoShowInfo* pInfo); 596*b1cdbd2cSJim Jagielski const com::sun::star::sheet::DataPilotFieldLayoutInfo* getLayoutInfo(); 597*b1cdbd2cSJim Jagielski void setLayoutInfo(const com::sun::star::sheet::DataPilotFieldLayoutInfo* pInfo); 598*b1cdbd2cSJim Jagielski const com::sun::star::sheet::DataPilotFieldReference* getReference(); 599*b1cdbd2cSJim Jagielski void setReference(const com::sun::star::sheet::DataPilotFieldReference* pInfo); 600*b1cdbd2cSJim Jagielski const com::sun::star::sheet::DataPilotFieldSortInfo* getSortInfo(); 601*b1cdbd2cSJim Jagielski void setSortInfo(const com::sun::star::sheet::DataPilotFieldSortInfo* pInfo); 602*b1cdbd2cSJim Jagielski sal_Bool getShowEmpty() const; 603*b1cdbd2cSJim Jagielski void setShowEmpty(sal_Bool bShow); 604*b1cdbd2cSJim Jagielski 605*b1cdbd2cSJim Jagielski sal_Bool hasGroupInfo(); 606*b1cdbd2cSJim Jagielski com::sun::star::sheet::DataPilotFieldGroupInfo getGroupInfo(); 607*b1cdbd2cSJim Jagielski void setGroupInfo(const com::sun::star::sheet::DataPilotFieldGroupInfo* pInfo); 608*b1cdbd2cSJim Jagielski 609*b1cdbd2cSJim Jagielski // XDataPilotFieldGrouping 610*b1cdbd2cSJim Jagielski sal_Bool HasString(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems, const ::rtl::OUString& aString); 611*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL 612*b1cdbd2cSJim Jagielski createNameGroup(const com::sun::star::uno::Sequence< ::rtl::OUString >& aItems) 613*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException, 614*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException); 615*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Reference < com::sun::star::sheet::XDataPilotField > SAL_CALL 616*b1cdbd2cSJim Jagielski createDateGroup(const com::sun::star::sheet::DataPilotFieldGroupInfo& rInfo) 617*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException, 618*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException); 619*b1cdbd2cSJim Jagielski 620*b1cdbd2cSJim Jagielski // XServiceInfo 621*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 622*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 623*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 624*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 625*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 626*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 627*b1cdbd2cSJim Jagielski 628*b1cdbd2cSJim Jagielski private: 629*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > 630*b1cdbd2cSJim Jagielski mxItems; 631*b1cdbd2cSJim Jagielski SfxItemPropertySet maPropSet; 632*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Any maOrient; 633*b1cdbd2cSJim Jagielski }; 634*b1cdbd2cSJim Jagielski 635*b1cdbd2cSJim Jagielski // ============================================================================ 636*b1cdbd2cSJim Jagielski 637*b1cdbd2cSJim Jagielski typedef ::std::vector< ::rtl::OUString > ScFieldGroupMembers; 638*b1cdbd2cSJim Jagielski 639*b1cdbd2cSJim Jagielski struct ScFieldGroup 640*b1cdbd2cSJim Jagielski { 641*b1cdbd2cSJim Jagielski ::rtl::OUString maName; 642*b1cdbd2cSJim Jagielski ScFieldGroupMembers maMembers; 643*b1cdbd2cSJim Jagielski }; 644*b1cdbd2cSJim Jagielski 645*b1cdbd2cSJim Jagielski typedef ::std::vector< ScFieldGroup > ScFieldGroups; 646*b1cdbd2cSJim Jagielski 647*b1cdbd2cSJim Jagielski // ============================================================================ 648*b1cdbd2cSJim Jagielski 649*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper4 650*b1cdbd2cSJim Jagielski < 651*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNameContainer, 652*b1cdbd2cSJim Jagielski ::com::sun::star::container::XEnumerationAccess, 653*b1cdbd2cSJim Jagielski ::com::sun::star::container::XIndexAccess, 654*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 655*b1cdbd2cSJim Jagielski > 656*b1cdbd2cSJim Jagielski ScDataPilotFieldGroupsObjImpl; 657*b1cdbd2cSJim Jagielski 658*b1cdbd2cSJim Jagielski /** Implementation of all grouped items in a DataPilot field. 659*b1cdbd2cSJim Jagielski 660*b1cdbd2cSJim Jagielski This is a stand-alone object without any connection to the base DataPilot 661*b1cdbd2cSJim Jagielski field. Grouping info has to be written back with the GroupInfo property of 662*b1cdbd2cSJim Jagielski the DataPilot field after modifying this object. 663*b1cdbd2cSJim Jagielski */ 664*b1cdbd2cSJim Jagielski class ScDataPilotFieldGroupsObj : public ScDataPilotFieldGroupsObjImpl 665*b1cdbd2cSJim Jagielski { 666*b1cdbd2cSJim Jagielski public: 667*b1cdbd2cSJim Jagielski explicit ScDataPilotFieldGroupsObj( const ScFieldGroups& rGroups ); 668*b1cdbd2cSJim Jagielski virtual ~ScDataPilotFieldGroupsObj(); 669*b1cdbd2cSJim Jagielski 670*b1cdbd2cSJim Jagielski // XNameAccess 671*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 672*b1cdbd2cSJim Jagielski throw(::com::sun::star::container::NoSuchElementException, 673*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 674*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 675*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 676*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 677*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 678*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 679*b1cdbd2cSJim Jagielski 680*b1cdbd2cSJim Jagielski // XNameReplace 681*b1cdbd2cSJim Jagielski virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, 682*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aElement ) 683*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException, 684*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 685*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 686*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 687*b1cdbd2cSJim Jagielski 688*b1cdbd2cSJim Jagielski // XNameContainer 689*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, 690*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aElement ) 691*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException, 692*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 693*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 694*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 695*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) 696*b1cdbd2cSJim Jagielski throw (::com::sun::star::container::NoSuchElementException, 697*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 698*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 699*b1cdbd2cSJim Jagielski 700*b1cdbd2cSJim Jagielski // XIndexAccess 701*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 702*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 703*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 704*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 705*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 706*b1cdbd2cSJim Jagielski 707*b1cdbd2cSJim Jagielski // XEnumerationAccess 708*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 709*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 710*b1cdbd2cSJim Jagielski 711*b1cdbd2cSJim Jagielski // XElementAccess 712*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 713*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 714*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 715*b1cdbd2cSJim Jagielski 716*b1cdbd2cSJim Jagielski // XServiceInfo 717*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 718*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 719*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 720*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 721*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 722*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 723*b1cdbd2cSJim Jagielski 724*b1cdbd2cSJim Jagielski // implementation 725*b1cdbd2cSJim Jagielski ScFieldGroup& getFieldGroup( const ::rtl::OUString& rName ) throw(::com::sun::star::uno::RuntimeException); 726*b1cdbd2cSJim Jagielski void renameFieldGroup( const ::rtl::OUString& rOldName, const ::rtl::OUString& rNewName ) throw(::com::sun::star::uno::RuntimeException); 727*b1cdbd2cSJim Jagielski 728*b1cdbd2cSJim Jagielski private: 729*b1cdbd2cSJim Jagielski ScFieldGroups::iterator implFindByName( const ::rtl::OUString& rName ); 730*b1cdbd2cSJim Jagielski 731*b1cdbd2cSJim Jagielski private: 732*b1cdbd2cSJim Jagielski ScFieldGroups maGroups; 733*b1cdbd2cSJim Jagielski }; 734*b1cdbd2cSJim Jagielski 735*b1cdbd2cSJim Jagielski // ============================================================================ 736*b1cdbd2cSJim Jagielski 737*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper5 738*b1cdbd2cSJim Jagielski < 739*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNameContainer, 740*b1cdbd2cSJim Jagielski ::com::sun::star::container::XEnumerationAccess, 741*b1cdbd2cSJim Jagielski ::com::sun::star::container::XIndexAccess, 742*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNamed, 743*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 744*b1cdbd2cSJim Jagielski > 745*b1cdbd2cSJim Jagielski ScDataPilotFieldGroupObjImpl; 746*b1cdbd2cSJim Jagielski 747*b1cdbd2cSJim Jagielski class ScDataPilotFieldGroupObj : public ScDataPilotFieldGroupObjImpl 748*b1cdbd2cSJim Jagielski { 749*b1cdbd2cSJim Jagielski public: 750*b1cdbd2cSJim Jagielski explicit ScDataPilotFieldGroupObj( ScDataPilotFieldGroupsObj& rParent, const ::rtl::OUString& rGroupName ); 751*b1cdbd2cSJim Jagielski virtual ~ScDataPilotFieldGroupObj(); 752*b1cdbd2cSJim Jagielski 753*b1cdbd2cSJim Jagielski // XNameAccess 754*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 755*b1cdbd2cSJim Jagielski throw(::com::sun::star::container::NoSuchElementException, 756*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 757*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 758*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 759*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 760*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 761*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 762*b1cdbd2cSJim Jagielski 763*b1cdbd2cSJim Jagielski // XNameReplace 764*b1cdbd2cSJim Jagielski virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, 765*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aElement ) 766*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException, 767*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 768*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 769*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 770*b1cdbd2cSJim Jagielski 771*b1cdbd2cSJim Jagielski // XNameContainer 772*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, 773*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aElement ) 774*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException, 775*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 776*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 777*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 778*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) 779*b1cdbd2cSJim Jagielski throw (::com::sun::star::container::NoSuchElementException, 780*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 781*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 782*b1cdbd2cSJim Jagielski 783*b1cdbd2cSJim Jagielski // XIndexAccess 784*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 785*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 786*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 787*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 788*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 789*b1cdbd2cSJim Jagielski 790*b1cdbd2cSJim Jagielski // XEnumerationAccess 791*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 792*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 793*b1cdbd2cSJim Jagielski 794*b1cdbd2cSJim Jagielski // XElementAccess 795*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 796*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 797*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 798*b1cdbd2cSJim Jagielski 799*b1cdbd2cSJim Jagielski // XNamed 800*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 801*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 802*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 803*b1cdbd2cSJim Jagielski 804*b1cdbd2cSJim Jagielski // XServiceInfo 805*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 806*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 807*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 808*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 809*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 810*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 811*b1cdbd2cSJim Jagielski 812*b1cdbd2cSJim Jagielski private: 813*b1cdbd2cSJim Jagielski ScDataPilotFieldGroupsObj& mrParent; 814*b1cdbd2cSJim Jagielski ::rtl::OUString maGroupName; 815*b1cdbd2cSJim Jagielski }; 816*b1cdbd2cSJim Jagielski 817*b1cdbd2cSJim Jagielski // ============================================================================ 818*b1cdbd2cSJim Jagielski 819*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper2 820*b1cdbd2cSJim Jagielski < 821*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNamed, 822*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 823*b1cdbd2cSJim Jagielski > 824*b1cdbd2cSJim Jagielski ScDataPilotFieldGroupItemObjImpl; 825*b1cdbd2cSJim Jagielski 826*b1cdbd2cSJim Jagielski class ScDataPilotFieldGroupItemObj : public ScDataPilotFieldGroupItemObjImpl 827*b1cdbd2cSJim Jagielski { 828*b1cdbd2cSJim Jagielski public: 829*b1cdbd2cSJim Jagielski explicit ScDataPilotFieldGroupItemObj( ScDataPilotFieldGroupObj& rParent, const ::rtl::OUString& rName ); 830*b1cdbd2cSJim Jagielski virtual ~ScDataPilotFieldGroupItemObj(); 831*b1cdbd2cSJim Jagielski 832*b1cdbd2cSJim Jagielski // XNamed 833*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 834*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 835*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 836*b1cdbd2cSJim Jagielski 837*b1cdbd2cSJim Jagielski // XServiceInfo 838*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 839*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 840*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 841*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 842*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 843*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 844*b1cdbd2cSJim Jagielski 845*b1cdbd2cSJim Jagielski private: 846*b1cdbd2cSJim Jagielski ScDataPilotFieldGroupObj& mrParent; 847*b1cdbd2cSJim Jagielski ::rtl::OUString maName; 848*b1cdbd2cSJim Jagielski }; 849*b1cdbd2cSJim Jagielski 850*b1cdbd2cSJim Jagielski // ============================================================================ 851*b1cdbd2cSJim Jagielski 852*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper4 853*b1cdbd2cSJim Jagielski < 854*b1cdbd2cSJim Jagielski ::com::sun::star::container::XEnumerationAccess, 855*b1cdbd2cSJim Jagielski ::com::sun::star::container::XIndexAccess, 856*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNameAccess, 857*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 858*b1cdbd2cSJim Jagielski > 859*b1cdbd2cSJim Jagielski ScDataPilotItemsObjImpl; 860*b1cdbd2cSJim Jagielski 861*b1cdbd2cSJim Jagielski class ScDataPilotItemsObj : public ScDataPilotChildObjBase, public ScDataPilotItemsObjImpl 862*b1cdbd2cSJim Jagielski { 863*b1cdbd2cSJim Jagielski public: 864*b1cdbd2cSJim Jagielski explicit ScDataPilotItemsObj( ScDataPilotDescriptorBase& rParent, const ScFieldIdentifier& rFieldId ); 865*b1cdbd2cSJim Jagielski virtual ~ScDataPilotItemsObj(); 866*b1cdbd2cSJim Jagielski 867*b1cdbd2cSJim Jagielski // XNameAccess 868*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 869*b1cdbd2cSJim Jagielski throw(::com::sun::star::container::NoSuchElementException, 870*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 871*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 872*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 873*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 874*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 875*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 876*b1cdbd2cSJim Jagielski 877*b1cdbd2cSJim Jagielski // XIndexAccess 878*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 879*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 880*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 881*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 882*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 883*b1cdbd2cSJim Jagielski 884*b1cdbd2cSJim Jagielski // XEnumerationAccess 885*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 886*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 887*b1cdbd2cSJim Jagielski 888*b1cdbd2cSJim Jagielski // XElementAccess 889*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 890*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 891*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 892*b1cdbd2cSJim Jagielski 893*b1cdbd2cSJim Jagielski // XServiceInfo 894*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 895*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 896*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 897*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 898*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 899*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 900*b1cdbd2cSJim Jagielski 901*b1cdbd2cSJim Jagielski private: 902*b1cdbd2cSJim Jagielski ScDataPilotItemObj* GetObjectByIndex_Impl( sal_Int32 nIndex ) const; 903*b1cdbd2cSJim Jagielski }; 904*b1cdbd2cSJim Jagielski 905*b1cdbd2cSJim Jagielski // ============================================================================ 906*b1cdbd2cSJim Jagielski 907*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper3 908*b1cdbd2cSJim Jagielski < 909*b1cdbd2cSJim Jagielski ::com::sun::star::container::XNamed, 910*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet, 911*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo 912*b1cdbd2cSJim Jagielski > 913*b1cdbd2cSJim Jagielski ScDataPilotItemObjImpl; 914*b1cdbd2cSJim Jagielski 915*b1cdbd2cSJim Jagielski class ScDataPilotItemObj : public ScDataPilotChildObjBase, public ScDataPilotItemObjImpl 916*b1cdbd2cSJim Jagielski { 917*b1cdbd2cSJim Jagielski public: 918*b1cdbd2cSJim Jagielski explicit ScDataPilotItemObj( 919*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase& rParent, 920*b1cdbd2cSJim Jagielski const ScFieldIdentifier& rFieldId, 921*b1cdbd2cSJim Jagielski sal_Int32 nIndex ); 922*b1cdbd2cSJim Jagielski 923*b1cdbd2cSJim Jagielski virtual ~ScDataPilotItemObj(); 924*b1cdbd2cSJim Jagielski 925*b1cdbd2cSJim Jagielski // XNamed 926*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 927*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 928*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 929*b1cdbd2cSJim Jagielski 930*b1cdbd2cSJim Jagielski // XPropertySet 931*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 932*b1cdbd2cSJim Jagielski SAL_CALL getPropertySetInfo( ) 933*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 934*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 935*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aValue ) 936*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 937*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 938*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 939*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 940*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 941*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 942*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName ) 943*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 944*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 945*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 946*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 947*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 948*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 949*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 950*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 951*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 952*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 953*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 954*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 955*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 956*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 957*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 958*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 959*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 960*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 961*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 962*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 963*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 964*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 965*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 966*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 967*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 968*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 969*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 970*b1cdbd2cSJim Jagielski 971*b1cdbd2cSJim Jagielski // XServiceInfo 972*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 973*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 974*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 975*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 976*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 977*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 978*b1cdbd2cSJim Jagielski 979*b1cdbd2cSJim Jagielski private: 980*b1cdbd2cSJim Jagielski SfxItemPropertySet maPropSet; 981*b1cdbd2cSJim Jagielski sal_Int32 mnIndex; 982*b1cdbd2cSJim Jagielski }; 983*b1cdbd2cSJim Jagielski 984*b1cdbd2cSJim Jagielski // ============================================================================ 985*b1cdbd2cSJim Jagielski 986*b1cdbd2cSJim Jagielski #endif 987*b1cdbd2cSJim Jagielski 988