/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef CHART_CHARTTYPE_HXX #define CHART_CHARTTYPE_HXX #include "MutexContainer.hxx" #include "OPropertySet.hxx" #include #include #include "ServiceMacros.hxx" #include "ModifyListenerHelper.hxx" #include #include #include #include #include #include namespace chart { namespace impl { typedef ::cppu::WeakImplHelper5< ::com::sun::star::chart2::XChartType, ::com::sun::star::chart2::XDataSeriesContainer, ::com::sun::star::util::XCloneable, ::com::sun::star::util::XModifyBroadcaster, ::com::sun::star::util::XModifyListener > ChartType_Base; } class ChartType : public MutexContainer, public impl::ChartType_Base, public ::property::OPropertySet { public: explicit ChartType( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > const & xContext ); virtual ~ChartType(); protected: explicit ChartType( const ChartType & rOther ); ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > GetComponentContext() const; // ____ XChartType ____ // still abstract ! implement ! virtual ::rtl::OUString SAL_CALL getChartType() throw (::com::sun::star::uno::RuntimeException) = 0; virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XCoordinateSystem > SAL_CALL createCoordinateSystem( ::sal_Int32 DimensionCount ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedMandatoryRoles() throw (::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedOptionalRoles() throw (::com::sun::star::uno::RuntimeException); virtual ::rtl::OUString SAL_CALL getRoleOfSequenceForSeriesLabel() throw (::com::sun::star::uno::RuntimeException); // ____ XDataSeriesContainer ____ virtual void SAL_CALL addDataSeries( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries >& aDataSeries ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); virtual void SAL_CALL removeDataSeries( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries >& aDataSeries ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries > > SAL_CALL getDataSeries() throw (::com::sun::star::uno::RuntimeException); virtual void SAL_CALL setDataSeries( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries > >& aDataSeries ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); // ____ XModifyBroadcaster ____ virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); // ____ XModifyListener ____ virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException); // ____ XEventListener (base of XModifyListener) ____ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); void fireModifyEvent(); // ____ OPropertySet ____ virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const throw(::com::sun::star::beans::UnknownPropertyException); virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); virtual void firePropertyChangeEvent(); using OPropertySet::disposing; // ____ XPropertySet ____ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException); // virtual sal_Bool SAL_CALL convertFastPropertyValue // ( ::com::sun::star::uno::Any & rConvertedValue, // ::com::sun::star::uno::Any & rOldValue, // sal_Int32 nHandle, // const ::com::sun::star::uno::Any& rValue ) // throw (::com::sun::star::lang::IllegalArgumentException); /// merge XInterface implementations DECLARE_XINTERFACE() /// merge XTypeProvider implementations DECLARE_XTYPEPROVIDER() // not implemented // ____ XCloneable ____ // virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() // throw (::com::sun::star::uno::RuntimeException); protected: ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; private: void impl_addDataSeriesWithoutNotification( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries >& aDataSeries ); private: ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries > > tDataSeriesContainerType; tDataSeriesContainerType m_aDataSeries; bool m_bNotifyChanges; }; } // namespace chart // CHART_CHARTTYPE_HXX #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */