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_DATAUNO_HXX 25*b1cdbd2cSJim Jagielski #define SC_DATAUNO_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "global.hxx" 28*b1cdbd2cSJim Jagielski #include "queryparam.hxx" 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/TableFilterField.hpp> 31*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/GeneralFunction.hpp> 32*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XCellRangeReferrer.hpp> 33*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XSheetFilterDescriptor.hpp> 34*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XConsolidationDescriptor.hpp> 35*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDatabaseRanges.hpp> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XDatabaseRange.hpp> 37*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XSubTotalDescriptor.hpp> 38*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XSubTotalField.hpp> 39*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp> 40*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XEnumerationAccess.hpp> 41*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XIndexAccess.hpp> 42*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 43*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XUnoTunnel.hpp> 44*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNamed.hpp> 45*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XRefreshable.hpp> 46*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XSheetFilterDescriptor2.hpp> 47*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase2.hxx> 48*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase3.hxx> 49*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase4.hxx> 50*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase5.hxx> 51*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase6.hxx> 52*b1cdbd2cSJim Jagielski #include "svl/itemprop.hxx" 53*b1cdbd2cSJim Jagielski #include "svl/lstner.hxx" 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski class ScDBData; 56*b1cdbd2cSJim Jagielski class ScDocShell; 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski class ScSubTotalFieldObj; 59*b1cdbd2cSJim Jagielski class ScDatabaseRangeObj; 60*b1cdbd2cSJim Jagielski class ScDataPilotDescriptorBase; 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski struct ScSortParam; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski typedef ::com::sun::star::uno::Reference< 65*b1cdbd2cSJim Jagielski ::com::sun::star::util::XRefreshListener >* XDBRefreshListenerPtr; 66*b1cdbd2cSJim Jagielski SV_DECL_PTRARR_DEL( XDBRefreshListenerArr_Impl, XDBRefreshListenerPtr, 4, 4 ) 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski class ScDataUnoConversion 69*b1cdbd2cSJim Jagielski { 70*b1cdbd2cSJim Jagielski public: 71*b1cdbd2cSJim Jagielski static ScSubTotalFunc GeneralToSubTotal( com::sun::star::sheet::GeneralFunction eSummary ); 72*b1cdbd2cSJim Jagielski static com::sun::star::sheet::GeneralFunction SubTotalToGeneral( ScSubTotalFunc eSubTotal ); 73*b1cdbd2cSJim Jagielski }; 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski // ImportDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski class ScImportDescriptor 79*b1cdbd2cSJim Jagielski { 80*b1cdbd2cSJim Jagielski public: 81*b1cdbd2cSJim Jagielski static void FillImportParam( 82*b1cdbd2cSJim Jagielski ScImportParam& rParam, 83*b1cdbd2cSJim Jagielski const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq ); 84*b1cdbd2cSJim Jagielski static void FillProperties( 85*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq, 86*b1cdbd2cSJim Jagielski const ScImportParam& rParam ); 87*b1cdbd2cSJim Jagielski static long GetPropertyCount(); 88*b1cdbd2cSJim Jagielski }; 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski // SortDescriptor gibt's nicht mehr als Uno-Objekt, nur noch Property-Sequence 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski class ScSortDescriptor 93*b1cdbd2cSJim Jagielski { 94*b1cdbd2cSJim Jagielski public: 95*b1cdbd2cSJim Jagielski static void FillSortParam( 96*b1cdbd2cSJim Jagielski ScSortParam& rParam, 97*b1cdbd2cSJim Jagielski const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq ); 98*b1cdbd2cSJim Jagielski static void FillProperties( 99*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rSeq, 100*b1cdbd2cSJim Jagielski const ScSortParam& rParam ); 101*b1cdbd2cSJim Jagielski static long GetPropertyCount(); 102*b1cdbd2cSJim Jagielski }; 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski // ScSubTotalDescriptorBase - Basisklasse fuer SubTotalDescriptor alleine und im DB-Bereich 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski // to uno, both look the same 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski class ScSubTotalDescriptorBase : public cppu::WeakImplHelper6< 110*b1cdbd2cSJim Jagielski com::sun::star::sheet::XSubTotalDescriptor, 111*b1cdbd2cSJim Jagielski com::sun::star::container::XEnumerationAccess, 112*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexAccess, 113*b1cdbd2cSJim Jagielski com::sun::star::beans::XPropertySet, 114*b1cdbd2cSJim Jagielski com::sun::star::lang::XUnoTunnel, 115*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo > 116*b1cdbd2cSJim Jagielski { 117*b1cdbd2cSJim Jagielski private: 118*b1cdbd2cSJim Jagielski SfxItemPropertySet aPropSet; 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski ScSubTotalFieldObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski public: 123*b1cdbd2cSJim Jagielski ScSubTotalDescriptorBase(); 124*b1cdbd2cSJim Jagielski virtual ~ScSubTotalDescriptorBase(); 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski // in derived classes: 127*b1cdbd2cSJim Jagielski // (Fields are within the range) 128*b1cdbd2cSJim Jagielski virtual void GetData( ScSubTotalParam& rParam ) const = 0; 129*b1cdbd2cSJim Jagielski virtual void PutData( const ScSubTotalParam& rParam ) = 0; 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski // XSubTotalDescriptor 132*b1cdbd2cSJim Jagielski virtual void SAL_CALL addNew( const ::com::sun::star::uno::Sequence< 133*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns, 134*b1cdbd2cSJim Jagielski sal_Int32 nGroupColumn ) 135*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 136*b1cdbd2cSJim Jagielski virtual void SAL_CALL clear() throw(::com::sun::star::uno::RuntimeException); 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski // XIndexAccess 139*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 140*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 141*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 142*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 143*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski // XEnumerationAccess 146*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 147*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 148*b1cdbd2cSJim Jagielski 149*b1cdbd2cSJim Jagielski // XElementAccess 150*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 151*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 152*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski // XPropertySet 155*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 156*b1cdbd2cSJim Jagielski SAL_CALL getPropertySetInfo() 157*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 158*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 159*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aValue ) 160*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 161*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 162*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 163*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 164*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 165*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 166*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName ) 167*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 168*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 169*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 170*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 171*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 172*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 173*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 174*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 175*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 176*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 177*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 178*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 179*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 180*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 181*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 182*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 183*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 184*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 185*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 186*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 187*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 188*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 189*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 190*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 191*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 192*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 193*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski // XUnoTunnel 196*b1cdbd2cSJim Jagielski virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< 197*b1cdbd2cSJim Jagielski sal_Int8 >& aIdentifier ) 198*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId(); 201*b1cdbd2cSJim Jagielski static ScSubTotalDescriptorBase* getImplementation( const com::sun::star::uno::Reference< 202*b1cdbd2cSJim Jagielski com::sun::star::sheet::XSubTotalDescriptor> xObj ); 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski // XServiceInfo 205*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 206*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 207*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 208*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 209*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 210*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 211*b1cdbd2cSJim Jagielski }; 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski // ScSubTotalDescriptor - dummer Container zur Benutzung mit XImportTarget 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski class ScSubTotalDescriptor : public ScSubTotalDescriptorBase 217*b1cdbd2cSJim Jagielski { 218*b1cdbd2cSJim Jagielski private: 219*b1cdbd2cSJim Jagielski ScSubTotalParam aStoredParam; 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski public: 222*b1cdbd2cSJim Jagielski ScSubTotalDescriptor(); 223*b1cdbd2cSJim Jagielski virtual ~ScSubTotalDescriptor(); 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski // von ScSubTotalDescriptorBase: 226*b1cdbd2cSJim Jagielski virtual void GetData( ScSubTotalParam& rParam ) const; 227*b1cdbd2cSJim Jagielski virtual void PutData( const ScSubTotalParam& rParam ); 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski // Zugriff von aussen: 230*b1cdbd2cSJim Jagielski void SetParam( const ScSubTotalParam& rNew ); 231*b1cdbd2cSJim Jagielski // const ScSubTotalParam& GetParam() const { return aStoredParam; } 232*b1cdbd2cSJim Jagielski }; 233*b1cdbd2cSJim Jagielski 234*b1cdbd2cSJim Jagielski 235*b1cdbd2cSJim Jagielski // ScRangeSubTotalDescriptor - SubTotalDescriptor eines Datenbank-Bereichs 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski class ScRangeSubTotalDescriptor : public ScSubTotalDescriptorBase 238*b1cdbd2cSJim Jagielski { 239*b1cdbd2cSJim Jagielski private: 240*b1cdbd2cSJim Jagielski ScDatabaseRangeObj* pParent; 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski public: 243*b1cdbd2cSJim Jagielski ScRangeSubTotalDescriptor(ScDatabaseRangeObj* pPar); 244*b1cdbd2cSJim Jagielski virtual ~ScRangeSubTotalDescriptor(); 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski // von ScSubTotalDescriptorBase: 247*b1cdbd2cSJim Jagielski virtual void GetData( ScSubTotalParam& rParam ) const; 248*b1cdbd2cSJim Jagielski virtual void PutData( const ScSubTotalParam& rParam ); 249*b1cdbd2cSJim Jagielski }; 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski 252*b1cdbd2cSJim Jagielski class ScSubTotalFieldObj : public cppu::WeakImplHelper2< 253*b1cdbd2cSJim Jagielski com::sun::star::sheet::XSubTotalField, 254*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo > 255*b1cdbd2cSJim Jagielski { 256*b1cdbd2cSJim Jagielski private: 257*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference<com::sun::star::sheet::XSubTotalDescriptor> xRef; 258*b1cdbd2cSJim Jagielski ScSubTotalDescriptorBase& rParent; 259*b1cdbd2cSJim Jagielski sal_uInt16 nPos; 260*b1cdbd2cSJim Jagielski 261*b1cdbd2cSJim Jagielski public: 262*b1cdbd2cSJim Jagielski ScSubTotalFieldObj( ScSubTotalDescriptorBase* pDesc, sal_uInt16 nP ); 263*b1cdbd2cSJim Jagielski virtual ~ScSubTotalFieldObj(); 264*b1cdbd2cSJim Jagielski 265*b1cdbd2cSJim Jagielski // XSubTotalField 266*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getGroupColumn() throw(::com::sun::star::uno::RuntimeException); 267*b1cdbd2cSJim Jagielski virtual void SAL_CALL setGroupColumn( sal_Int32 nGroupColumn ) 268*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 269*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::SubTotalColumn > SAL_CALL 270*b1cdbd2cSJim Jagielski getSubTotalColumns() throw(::com::sun::star::uno::RuntimeException); 271*b1cdbd2cSJim Jagielski virtual void SAL_CALL setSubTotalColumns( const ::com::sun::star::uno::Sequence< 272*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::SubTotalColumn >& aSubTotalColumns ) 273*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 274*b1cdbd2cSJim Jagielski 275*b1cdbd2cSJim Jagielski // XServiceInfo 276*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 277*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 278*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 279*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 280*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 281*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 282*b1cdbd2cSJim Jagielski }; 283*b1cdbd2cSJim Jagielski 284*b1cdbd2cSJim Jagielski 285*b1cdbd2cSJim Jagielski class ScConsolidationDescriptor : public cppu::WeakImplHelper2< 286*b1cdbd2cSJim Jagielski com::sun::star::sheet::XConsolidationDescriptor, 287*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo > 288*b1cdbd2cSJim Jagielski { 289*b1cdbd2cSJim Jagielski private: 290*b1cdbd2cSJim Jagielski ScConsolidateParam aParam; 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski public: 293*b1cdbd2cSJim Jagielski ScConsolidationDescriptor(); 294*b1cdbd2cSJim Jagielski virtual ~ScConsolidationDescriptor(); 295*b1cdbd2cSJim Jagielski 296*b1cdbd2cSJim Jagielski void SetParam( const ScConsolidateParam& rNew ); GetParam() const297*b1cdbd2cSJim Jagielski const ScConsolidateParam& GetParam() const { return aParam; } 298*b1cdbd2cSJim Jagielski 299*b1cdbd2cSJim Jagielski // XConsolidationDescriptor 300*b1cdbd2cSJim Jagielski virtual ::com::sun::star::sheet::GeneralFunction SAL_CALL getFunction() 301*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 302*b1cdbd2cSJim Jagielski virtual void SAL_CALL setFunction( ::com::sun::star::sheet::GeneralFunction nFunction ) 303*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 304*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress > SAL_CALL 305*b1cdbd2cSJim Jagielski getSources( ) throw(::com::sun::star::uno::RuntimeException); 306*b1cdbd2cSJim Jagielski virtual void SAL_CALL setSources( const ::com::sun::star::uno::Sequence< 307*b1cdbd2cSJim Jagielski ::com::sun::star::table::CellRangeAddress >& aSources ) 308*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 309*b1cdbd2cSJim Jagielski virtual ::com::sun::star::table::CellAddress SAL_CALL getStartOutputPosition() 310*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 311*b1cdbd2cSJim Jagielski virtual void SAL_CALL setStartOutputPosition( 312*b1cdbd2cSJim Jagielski const ::com::sun::star::table::CellAddress& aStartOutputPosition ) 313*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 314*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL getUseColumnHeaders() throw(::com::sun::star::uno::RuntimeException); 315*b1cdbd2cSJim Jagielski virtual void SAL_CALL setUseColumnHeaders( sal_Bool bUseColumnHeaders ) 316*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 317*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL getUseRowHeaders() throw(::com::sun::star::uno::RuntimeException); 318*b1cdbd2cSJim Jagielski virtual void SAL_CALL setUseRowHeaders( sal_Bool bUseRowHeaders ) 319*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 320*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL getInsertLinks() throw(::com::sun::star::uno::RuntimeException); 321*b1cdbd2cSJim Jagielski virtual void SAL_CALL setInsertLinks( sal_Bool bInsertLinks ) 322*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 323*b1cdbd2cSJim Jagielski 324*b1cdbd2cSJim Jagielski // XServiceInfo 325*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 326*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 327*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 328*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 329*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 330*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 331*b1cdbd2cSJim Jagielski }; 332*b1cdbd2cSJim Jagielski 333*b1cdbd2cSJim Jagielski 334*b1cdbd2cSJim Jagielski // ScFilterDescriptorBase - Basisklasse fuer FilterDescriptor 335*b1cdbd2cSJim Jagielski // alleine, im DB-Bereich und im DataPilot 336*b1cdbd2cSJim Jagielski 337*b1cdbd2cSJim Jagielski // to uno, all three look the same 338*b1cdbd2cSJim Jagielski 339*b1cdbd2cSJim Jagielski class ScFilterDescriptorBase : public cppu::WeakImplHelper4< 340*b1cdbd2cSJim Jagielski com::sun::star::sheet::XSheetFilterDescriptor, 341*b1cdbd2cSJim Jagielski com::sun::star::sheet::XSheetFilterDescriptor2, 342*b1cdbd2cSJim Jagielski com::sun::star::beans::XPropertySet, 343*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo >, 344*b1cdbd2cSJim Jagielski public SfxListener 345*b1cdbd2cSJim Jagielski { 346*b1cdbd2cSJim Jagielski private: 347*b1cdbd2cSJim Jagielski SfxItemPropertySet aPropSet; 348*b1cdbd2cSJim Jagielski ScDocShell* pDocSh; 349*b1cdbd2cSJim Jagielski 350*b1cdbd2cSJim Jagielski public: 351*b1cdbd2cSJim Jagielski ScFilterDescriptorBase(ScDocShell* pDocShell); 352*b1cdbd2cSJim Jagielski virtual ~ScFilterDescriptorBase(); 353*b1cdbd2cSJim Jagielski 354*b1cdbd2cSJim Jagielski virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 355*b1cdbd2cSJim Jagielski 356*b1cdbd2cSJim Jagielski // in den Ableitungen: 357*b1cdbd2cSJim Jagielski // (nField[] hier innerhalb des Bereichs) 358*b1cdbd2cSJim Jagielski virtual void GetData( ScQueryParam& rParam ) const = 0; 359*b1cdbd2cSJim Jagielski virtual void PutData( const ScQueryParam& rParam ) = 0; 360*b1cdbd2cSJim Jagielski 361*b1cdbd2cSJim Jagielski // XSheetFilterDescriptor 362*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TableFilterField > SAL_CALL 363*b1cdbd2cSJim Jagielski getFilterFields() throw(::com::sun::star::uno::RuntimeException); 364*b1cdbd2cSJim Jagielski virtual void SAL_CALL setFilterFields( const ::com::sun::star::uno::Sequence< 365*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::TableFilterField >& aFilterFields ) 366*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 367*b1cdbd2cSJim Jagielski 368*b1cdbd2cSJim Jagielski // XSheetFilterDescriptor2 369*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::TableFilterField2 > SAL_CALL 370*b1cdbd2cSJim Jagielski getFilterFields2() throw(::com::sun::star::uno::RuntimeException); 371*b1cdbd2cSJim Jagielski virtual void SAL_CALL setFilterFields2( const ::com::sun::star::uno::Sequence< 372*b1cdbd2cSJim Jagielski ::com::sun::star::sheet::TableFilterField2 >& aFilterFields ) 373*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim Jagielski // XPropertySet 376*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 377*b1cdbd2cSJim Jagielski SAL_CALL getPropertySetInfo() 378*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 379*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 380*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aValue ) 381*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 382*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 383*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 384*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 385*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 386*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 387*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName ) 388*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 389*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 390*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 391*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 392*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 393*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 394*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 395*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 396*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 397*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 398*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 399*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 400*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 401*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 402*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 403*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 404*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 405*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 406*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 407*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 408*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 409*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 410*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 411*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 412*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 413*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 414*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielski // XServiceInfo 417*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 418*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 419*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 420*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 421*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 422*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 423*b1cdbd2cSJim Jagielski }; 424*b1cdbd2cSJim Jagielski 425*b1cdbd2cSJim Jagielski 426*b1cdbd2cSJim Jagielski // ScFilterDescriptor - dummer Container zur Benutzung mit XFilterable 427*b1cdbd2cSJim Jagielski 428*b1cdbd2cSJim Jagielski class ScFilterDescriptor : public ScFilterDescriptorBase 429*b1cdbd2cSJim Jagielski { 430*b1cdbd2cSJim Jagielski private: 431*b1cdbd2cSJim Jagielski ScQueryParam aStoredParam; // nField[] hier innerhalb des Bereichs 432*b1cdbd2cSJim Jagielski 433*b1cdbd2cSJim Jagielski public: 434*b1cdbd2cSJim Jagielski ScFilterDescriptor(ScDocShell* pDocSh); 435*b1cdbd2cSJim Jagielski virtual ~ScFilterDescriptor(); 436*b1cdbd2cSJim Jagielski 437*b1cdbd2cSJim Jagielski // von ScFilterDescriptorBase: 438*b1cdbd2cSJim Jagielski virtual void GetData( ScQueryParam& rParam ) const; 439*b1cdbd2cSJim Jagielski virtual void PutData( const ScQueryParam& rParam ); 440*b1cdbd2cSJim Jagielski 441*b1cdbd2cSJim Jagielski // Zugriff von aussen: 442*b1cdbd2cSJim Jagielski void SetParam( const ScQueryParam& rNew ); GetParam() const443*b1cdbd2cSJim Jagielski const ScQueryParam& GetParam() const { return aStoredParam; } 444*b1cdbd2cSJim Jagielski }; 445*b1cdbd2cSJim Jagielski 446*b1cdbd2cSJim Jagielski 447*b1cdbd2cSJim Jagielski // ScRangeFilterDescriptor - FilterDescriptor eines Datenbank-Bereichs 448*b1cdbd2cSJim Jagielski 449*b1cdbd2cSJim Jagielski class ScRangeFilterDescriptor : public ScFilterDescriptorBase 450*b1cdbd2cSJim Jagielski { 451*b1cdbd2cSJim Jagielski private: 452*b1cdbd2cSJim Jagielski ScDatabaseRangeObj* pParent; 453*b1cdbd2cSJim Jagielski 454*b1cdbd2cSJim Jagielski public: 455*b1cdbd2cSJim Jagielski ScRangeFilterDescriptor(ScDocShell* pDocSh, ScDatabaseRangeObj* pPar); 456*b1cdbd2cSJim Jagielski virtual ~ScRangeFilterDescriptor(); 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski // von ScFilterDescriptorBase: 459*b1cdbd2cSJim Jagielski virtual void GetData( ScQueryParam& rParam ) const; 460*b1cdbd2cSJim Jagielski virtual void PutData( const ScQueryParam& rParam ); 461*b1cdbd2cSJim Jagielski }; 462*b1cdbd2cSJim Jagielski 463*b1cdbd2cSJim Jagielski 464*b1cdbd2cSJim Jagielski // ScDataPilotFilterDescriptor - FilterDescriptor eines DataPilotDescriptors 465*b1cdbd2cSJim Jagielski 466*b1cdbd2cSJim Jagielski class ScDataPilotFilterDescriptor : public ScFilterDescriptorBase 467*b1cdbd2cSJim Jagielski { 468*b1cdbd2cSJim Jagielski private: 469*b1cdbd2cSJim Jagielski ScDataPilotDescriptorBase* pParent; 470*b1cdbd2cSJim Jagielski 471*b1cdbd2cSJim Jagielski public: 472*b1cdbd2cSJim Jagielski ScDataPilotFilterDescriptor(ScDocShell* pDocSh, ScDataPilotDescriptorBase* pPar); 473*b1cdbd2cSJim Jagielski virtual ~ScDataPilotFilterDescriptor(); 474*b1cdbd2cSJim Jagielski 475*b1cdbd2cSJim Jagielski // von ScFilterDescriptorBase: 476*b1cdbd2cSJim Jagielski virtual void GetData( ScQueryParam& rParam ) const; 477*b1cdbd2cSJim Jagielski virtual void PutData( const ScQueryParam& rParam ); 478*b1cdbd2cSJim Jagielski }; 479*b1cdbd2cSJim Jagielski 480*b1cdbd2cSJim Jagielski 481*b1cdbd2cSJim Jagielski class ScDatabaseRangeObj : public cppu::WeakImplHelper6< 482*b1cdbd2cSJim Jagielski com::sun::star::sheet::XDatabaseRange, 483*b1cdbd2cSJim Jagielski com::sun::star::util::XRefreshable, 484*b1cdbd2cSJim Jagielski com::sun::star::container::XNamed, 485*b1cdbd2cSJim Jagielski com::sun::star::sheet::XCellRangeReferrer, 486*b1cdbd2cSJim Jagielski com::sun::star::beans::XPropertySet, 487*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo >, 488*b1cdbd2cSJim Jagielski public SfxListener 489*b1cdbd2cSJim Jagielski { 490*b1cdbd2cSJim Jagielski private: 491*b1cdbd2cSJim Jagielski ScDocShell* pDocShell; 492*b1cdbd2cSJim Jagielski String aName; 493*b1cdbd2cSJim Jagielski SfxItemPropertySet aPropSet; 494*b1cdbd2cSJim Jagielski XDBRefreshListenerArr_Impl aRefreshListeners; 495*b1cdbd2cSJim Jagielski 496*b1cdbd2cSJim Jagielski private: 497*b1cdbd2cSJim Jagielski ScDBData* GetDBData_Impl() const; 498*b1cdbd2cSJim Jagielski void Refreshed_Impl(); 499*b1cdbd2cSJim Jagielski 500*b1cdbd2cSJim Jagielski public: 501*b1cdbd2cSJim Jagielski ScDatabaseRangeObj(ScDocShell* pDocSh, const String& rNm); 502*b1cdbd2cSJim Jagielski virtual ~ScDatabaseRangeObj(); 503*b1cdbd2cSJim Jagielski 504*b1cdbd2cSJim Jagielski virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 505*b1cdbd2cSJim Jagielski 506*b1cdbd2cSJim Jagielski // nField[] hier innerhalb des Bereichs: 507*b1cdbd2cSJim Jagielski void GetQueryParam(ScQueryParam& rQueryParam) const; 508*b1cdbd2cSJim Jagielski void SetQueryParam(const ScQueryParam& rQueryParam); 509*b1cdbd2cSJim Jagielski void GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const; 510*b1cdbd2cSJim Jagielski void SetSubTotalParam(const ScSubTotalParam& rSubTotalParam); 511*b1cdbd2cSJim Jagielski 512*b1cdbd2cSJim Jagielski // XNamed 513*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); 514*b1cdbd2cSJim Jagielski virtual void SAL_CALL setName( const ::rtl::OUString& aName ) 515*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 516*b1cdbd2cSJim Jagielski 517*b1cdbd2cSJim Jagielski // XDatabaseRange 518*b1cdbd2cSJim Jagielski virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDataArea() 519*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 520*b1cdbd2cSJim Jagielski virtual void SAL_CALL setDataArea( const ::com::sun::star::table::CellRangeAddress& aDataArea ) 521*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 522*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL 523*b1cdbd2cSJim Jagielski getSortDescriptor() throw(::com::sun::star::uno::RuntimeException); 524*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL 525*b1cdbd2cSJim Jagielski getFilterDescriptor() throw(::com::sun::star::uno::RuntimeException); 526*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSubTotalDescriptor > SAL_CALL 527*b1cdbd2cSJim Jagielski getSubTotalDescriptor() throw(::com::sun::star::uno::RuntimeException); 528*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL 529*b1cdbd2cSJim Jagielski getImportDescriptor() throw(::com::sun::star::uno::RuntimeException); 530*b1cdbd2cSJim Jagielski // implemented for the XRefreshable Interface 531*b1cdbd2cSJim Jagielski // virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); 532*b1cdbd2cSJim Jagielski 533*b1cdbd2cSJim Jagielski // XRefreshable 534*b1cdbd2cSJim Jagielski virtual void SAL_CALL refresh() throw(::com::sun::star::uno::RuntimeException); 535*b1cdbd2cSJim Jagielski virtual void SAL_CALL addRefreshListener( const ::com::sun::star::uno::Reference< 536*b1cdbd2cSJim Jagielski ::com::sun::star::util::XRefreshListener >& l ) 537*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 538*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeRefreshListener( const ::com::sun::star::uno::Reference< 539*b1cdbd2cSJim Jagielski ::com::sun::star::util::XRefreshListener >& l ) 540*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 541*b1cdbd2cSJim Jagielski 542*b1cdbd2cSJim Jagielski // XCellRangeReferrer 543*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL 544*b1cdbd2cSJim Jagielski getReferredCells() throw(::com::sun::star::uno::RuntimeException); 545*b1cdbd2cSJim Jagielski 546*b1cdbd2cSJim Jagielski // XPropertySet 547*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > 548*b1cdbd2cSJim Jagielski SAL_CALL getPropertySetInfo() 549*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 550*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, 551*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& aValue ) 552*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 553*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 554*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 555*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 556*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 557*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( 558*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName ) 559*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 560*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 561*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 562*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, 563*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 564*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 565*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 566*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 567*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 568*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, 569*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 570*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 571*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 572*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 573*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 574*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, 575*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 576*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 577*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 578*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 579*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 580*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, 581*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 582*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 583*b1cdbd2cSJim Jagielski throw(::com::sun::star::beans::UnknownPropertyException, 584*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 585*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 586*b1cdbd2cSJim Jagielski 587*b1cdbd2cSJim Jagielski // XServiceInfo 588*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 589*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 590*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 591*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 592*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 593*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 594*b1cdbd2cSJim Jagielski }; 595*b1cdbd2cSJim Jagielski 596*b1cdbd2cSJim Jagielski 597*b1cdbd2cSJim Jagielski class ScDatabaseRangesObj : public cppu::WeakImplHelper4< 598*b1cdbd2cSJim Jagielski com::sun::star::sheet::XDatabaseRanges, 599*b1cdbd2cSJim Jagielski com::sun::star::container::XEnumerationAccess, 600*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexAccess, 601*b1cdbd2cSJim Jagielski com::sun::star::lang::XServiceInfo >, 602*b1cdbd2cSJim Jagielski public SfxListener 603*b1cdbd2cSJim Jagielski { 604*b1cdbd2cSJim Jagielski private: 605*b1cdbd2cSJim Jagielski ScDocShell* pDocShell; 606*b1cdbd2cSJim Jagielski 607*b1cdbd2cSJim Jagielski ScDatabaseRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); 608*b1cdbd2cSJim Jagielski ScDatabaseRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); 609*b1cdbd2cSJim Jagielski 610*b1cdbd2cSJim Jagielski public: 611*b1cdbd2cSJim Jagielski ScDatabaseRangesObj(ScDocShell* pDocSh); 612*b1cdbd2cSJim Jagielski virtual ~ScDatabaseRangesObj(); 613*b1cdbd2cSJim Jagielski 614*b1cdbd2cSJim Jagielski virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 615*b1cdbd2cSJim Jagielski 616*b1cdbd2cSJim Jagielski // XDatabaseRanges 617*b1cdbd2cSJim Jagielski virtual void SAL_CALL addNewByName( const ::rtl::OUString& aName, 618*b1cdbd2cSJim Jagielski const ::com::sun::star::table::CellRangeAddress& aRange ) 619*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 620*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeByName( const ::rtl::OUString& aName ) 621*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 622*b1cdbd2cSJim Jagielski 623*b1cdbd2cSJim Jagielski // XEnumerationAccess 624*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL 625*b1cdbd2cSJim Jagielski createEnumeration() throw(::com::sun::star::uno::RuntimeException); 626*b1cdbd2cSJim Jagielski 627*b1cdbd2cSJim Jagielski // XIndexAccess 628*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); 629*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) 630*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IndexOutOfBoundsException, 631*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 632*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 633*b1cdbd2cSJim Jagielski 634*b1cdbd2cSJim Jagielski // XElementAccess 635*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 636*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 637*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); 638*b1cdbd2cSJim Jagielski 639*b1cdbd2cSJim Jagielski // XNameAccess 640*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 641*b1cdbd2cSJim Jagielski throw(::com::sun::star::container::NoSuchElementException, 642*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 643*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 644*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 645*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 646*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 647*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 648*b1cdbd2cSJim Jagielski 649*b1cdbd2cSJim Jagielski // XServiceInfo 650*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName() 651*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 652*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 653*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 654*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() 655*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 656*b1cdbd2cSJim Jagielski }; 657*b1cdbd2cSJim Jagielski 658*b1cdbd2cSJim Jagielski 659*b1cdbd2cSJim Jagielski 660*b1cdbd2cSJim Jagielski #endif 661*b1cdbd2cSJim Jagielski 662