diff options
Diffstat (limited to 'chart2/source/model/main')
32 files changed, 0 insertions, 10498 deletions
diff --git a/chart2/source/model/main/Axis.cxx b/chart2/source/model/main/Axis.cxx deleted file mode 100644 index 33961f1e2..000000000 --- a/chart2/source/model/main/Axis.cxx +++ /dev/null @@ -1,635 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "Axis.hxx" -#include "GridProperties.hxx" -#include "macros.hxx" -#include "CharacterProperties.hxx" -#include "LineProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "PropertyHelper.hxx" -#include "ContainerHelper.hxx" -#include "CloneHelper.hxx" -#include "AxisHelper.hxx" -#include "EventListenerHelper.hxx" -#include <com/sun/star/chart/ChartAxisArrangeOrderType.hpp> -#include <com/sun/star/chart/ChartAxisLabelPosition.hpp> -#include <com/sun/star/chart/ChartAxisMarkPosition.hpp> -#include <com/sun/star/chart/ChartAxisPosition.hpp> -#include <com/sun/star/chart2/AxisType.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/lang/Locale.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/drawing/LineDash.hpp> -#include <com/sun/star/drawing/LineJoint.hpp> -#include <com/sun/star/awt/Size.hpp> -#include <rtl/uuid.h> -#include <cppuhelper/queryinterface.hxx> - -#include <vector> -#include <algorithm> - -using namespace ::com::sun::star; -using namespace ::com::sun::star::beans::PropertyAttribute; - -using ::rtl::OUString; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Any; -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; - -namespace -{ - -static const OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.Axis" )); - -enum -{ - PROP_AXIS_SHOW, - PROP_AXIS_CROSSOVER_POSITION, - PROP_AXIS_CROSSOVER_VALUE, - PROP_AXIS_DISPLAY_LABELS, - PROP_AXIS_NUMBER_FORMAT, - PROP_AXIS_LABEL_POSITION, - PROP_AXIS_TEXT_ROTATION, - PROP_AXIS_TEXT_BREAK, - PROP_AXIS_TEXT_OVERLAP, - PROP_AXIS_TEXT_STACKED, - PROP_AXIS_TEXT_ARRANGE_ORDER, - PROP_AXIS_REFERENCE_DIAGRAM_SIZE, - - PROP_AXIS_MAJOR_TICKMARKS, - PROP_AXIS_MINOR_TICKMARKS, - PROP_AXIS_MARK_POSITION -}; - -void lcl_AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "Show" ), - PROP_AXIS_SHOW, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "CrossoverPosition" ), - PROP_AXIS_CROSSOVER_POSITION, - ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartAxisPosition * >(0)), - beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "CrossoverValue" ), - PROP_AXIS_CROSSOVER_VALUE, - ::getCppuType( reinterpret_cast< const double * >(0)), - beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "DisplayLabels" ), - PROP_AXIS_DISPLAY_LABELS, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "NumberFormat" ), - PROP_AXIS_NUMBER_FORMAT, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "LabelPosition" ), - PROP_AXIS_LABEL_POSITION, - ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartAxisLabelPosition * >(0)), - beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "TextRotation" ), - PROP_AXIS_TEXT_ROTATION, - ::getCppuType( reinterpret_cast< const double * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "TextBreak" ), - PROP_AXIS_TEXT_BREAK, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "TextOverlap" ), - PROP_AXIS_TEXT_OVERLAP, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "StackCharacters" ), - PROP_AXIS_TEXT_STACKED, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ArrangeOrder" ), - PROP_AXIS_TEXT_ARRANGE_ORDER, - ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartAxisArrangeOrderType * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ReferencePageSize" ), - PROP_AXIS_REFERENCE_DIAGRAM_SIZE, - ::getCppuType( reinterpret_cast< const awt::Size * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "MajorTickmarks" ), - PROP_AXIS_MAJOR_TICKMARKS, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "MinorTickmarks" ), - PROP_AXIS_MINOR_TICKMARKS, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "MarkPosition" ), - PROP_AXIS_MARK_POSITION, - ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartAxisMarkPosition * >(0)), - beans::PropertyAttribute::MAYBEDEFAULT )); -} - -struct StaticAxisDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::CharacterProperties::AddDefaultsToMap( rOutMap ); - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_SHOW, true ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_CROSSOVER_POSITION, ::com::sun::star::chart::ChartAxisPosition_ZERO ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_DISPLAY_LABELS, true ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_LABEL_POSITION, ::com::sun::star::chart::ChartAxisLabelPosition_NEAR_AXIS ); - ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_AXIS_TEXT_ROTATION, 0.0 ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_BREAK, false ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_OVERLAP, false ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_STACKED, false ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_TEXT_ARRANGE_ORDER, ::com::sun::star::chart::ChartAxisArrangeOrderType_AUTO ); - - float fDefaultCharHeight = 10.0; - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT, fDefaultCharHeight ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultCharHeight ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultCharHeight ); - - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_AXIS_MAJOR_TICKMARKS, 2 /* CHAXIS_MARK_OUTER */ ); - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_AXIS_MINOR_TICKMARKS, 0 /* CHAXIS_MARK_NONE */ ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_AXIS_MARK_POSITION, ::com::sun::star::chart::ChartAxisMarkPosition_AT_LABELS_AND_AXIS ); - } -}; - -struct StaticAxisDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticAxisDefaults_Initializer > -{ -}; - -struct StaticAxisInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - lcl_AddPropertiesToVector( aProperties ); - ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } -}; - -struct StaticAxisInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticAxisInfoHelper_Initializer > -{ -}; - -struct StaticAxisInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticAxisInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticAxisInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticAxisInfo_Initializer > -{ -}; - -typedef uno::Reference< beans::XPropertySet > lcl_tSubGridType; -typedef uno::Sequence< lcl_tSubGridType > lcl_tSubGridSeq; - -void lcl_CloneSubGrids( - const lcl_tSubGridSeq & rSource, lcl_tSubGridSeq & rDestination ) -{ - const lcl_tSubGridType * pBegin = rSource.getConstArray(); - const lcl_tSubGridType * pEnd = pBegin + rSource.getLength(); - - rDestination.realloc( rSource.getLength()); - lcl_tSubGridType * pDestBegin = rDestination.getArray(); - lcl_tSubGridType * pDestEnd = pDestBegin + rDestination.getLength(); - lcl_tSubGridType * pDestIt = pDestBegin; - - for( const lcl_tSubGridType * pIt = pBegin; pIt != pEnd; ++pIt ) - { - Reference< beans::XPropertySet > xSubGrid( *pIt ); - if( xSubGrid.is()) - { - Reference< util::XCloneable > xCloneable( xSubGrid, uno::UNO_QUERY ); - if( xCloneable.is()) - xSubGrid.set( xCloneable->createClone(), uno::UNO_QUERY ); - } - - (*pDestIt) = xSubGrid; - OSL_ASSERT( pDestIt != pDestEnd ); - ++pDestIt; - } - OSL_ASSERT( pDestIt == pDestEnd ); - (void)(pDestEnd); // avoid warning -} - -} // anonymous namespace - -// ================================================================================ - -namespace chart -{ - -Axis::Axis( Reference< uno::XComponentContext > const & /* xContext */ ) : - ::property::OPropertySet( m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()), - m_aScaleData( AxisHelper::createDefaultScale() ), - m_xGrid( new GridProperties() ), - m_aSubGridProperties(), - m_xTitle() -{ - osl_incrementInterlockedCount(&m_refCount); - setFastPropertyValue_NoBroadcast( - ::chart::LineProperties::PROP_LINE_COLOR, uno::makeAny( static_cast< sal_Int32 >( 0xb3b3b3 ) ) ); // gray30 - - if( m_xGrid.is()) - ModifyListenerHelper::addListener( m_xGrid, m_xModifyEventForwarder ); - if( m_aScaleData.Categories.is()) - ModifyListenerHelper::addListener( m_aScaleData.Categories, m_xModifyEventForwarder ); - - AllocateSubGrids(); - osl_decrementInterlockedCount(&m_refCount); -} - -Axis::Axis( const Axis & rOther ) : - MutexContainer(), - impl::Axis_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()), - m_aScaleData( rOther.m_aScaleData ) -{ - m_xGrid.set( CloneHelper::CreateRefClone< Reference< beans::XPropertySet > >()( rOther.m_xGrid )); - if( m_xGrid.is()) - ModifyListenerHelper::addListener( m_xGrid, m_xModifyEventForwarder ); - - if( m_aScaleData.Categories.is()) - ModifyListenerHelper::addListener( m_aScaleData.Categories, m_xModifyEventForwarder ); - - if( rOther.m_aSubGridProperties.getLength() != 0 ) - lcl_CloneSubGrids( rOther.m_aSubGridProperties, m_aSubGridProperties ); - ModifyListenerHelper::addListenerToAllSequenceElements( m_aSubGridProperties, m_xModifyEventForwarder ); - - m_xTitle.set( CloneHelper::CreateRefClone< Reference< chart2::XTitle > >()( rOther.m_xTitle )); - if( m_xTitle.is()) - ModifyListenerHelper::addListener( m_xTitle, m_xModifyEventForwarder ); -} - -// late initialization to call after copy-constructing -void Axis::Init( const Axis & /* rOther */ ) -{ - if( m_aScaleData.Categories.is()) - EventListenerHelper::addListener( m_aScaleData.Categories, this ); -} - -Axis::~Axis() -{ - try - { - ModifyListenerHelper::removeListener( m_xGrid, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListenerFromAllSequenceElements( m_aSubGridProperties, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListener( m_xTitle, m_xModifyEventForwarder ); - if( m_aScaleData.Categories.is()) - { - ModifyListenerHelper::removeListener( m_aScaleData.Categories, m_xModifyEventForwarder ); - m_aScaleData.Categories.set(0); - } - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - - m_aSubGridProperties.realloc(0); - m_xGrid = 0; - m_xTitle = 0; -} - -void Axis::AllocateSubGrids() -{ - Reference< util::XModifyListener > xModifyEventForwarder; - Reference< lang::XEventListener > xEventListener; - std::vector< Reference< beans::XPropertySet > > aOldBroadcasters; - std::vector< Reference< beans::XPropertySet > > aNewBroadcasters; - { - MutexGuard aGuard( m_aMutex ); - xModifyEventForwarder = m_xModifyEventForwarder; - xEventListener = this; - - sal_Int32 nNewSubIncCount = m_aScaleData.IncrementData.SubIncrements.getLength(); - sal_Int32 nOldSubIncCount = m_aSubGridProperties.getLength(); - - if( nOldSubIncCount > nNewSubIncCount ) - { - // remove superfluous entries - for( sal_Int32 i = nNewSubIncCount; i < nOldSubIncCount; ++i ) - aOldBroadcasters.push_back( m_aSubGridProperties[ i ] ); - m_aSubGridProperties.realloc( nNewSubIncCount ); - } - else if( nOldSubIncCount < nNewSubIncCount ) - { - m_aSubGridProperties.realloc( nNewSubIncCount ); - - // allocate new entries - for( sal_Int32 i = nOldSubIncCount; i < nNewSubIncCount; ++i ) - { - m_aSubGridProperties[ i ] = new GridProperties(); - LineProperties::SetLineInvisible( m_aSubGridProperties[ i ] ); - aNewBroadcasters.push_back( m_aSubGridProperties[ i ] ); - } - } - } - //don't keep the mutex locked while calling out - std::vector< Reference< beans::XPropertySet > >::iterator aBroadcaster = aOldBroadcasters.begin(); - for( ;aBroadcaster != aOldBroadcasters.end(); ++aBroadcaster ) - ModifyListenerHelper::removeListener( *aBroadcaster, xModifyEventForwarder ); - for( aBroadcaster = aNewBroadcasters.begin(); aBroadcaster != aNewBroadcasters.end(); ++aBroadcaster ) - ModifyListenerHelper::addListener( *aBroadcaster, xModifyEventForwarder ); -} - -// -------------------------------------------------------------------------------- - -// ____ XAxis ____ -void SAL_CALL Axis::setScaleData( const chart2::ScaleData& rScaleData ) - throw (uno::RuntimeException) -{ - Reference< util::XModifyListener > xModifyEventForwarder; - Reference< lang::XEventListener > xEventListener; - Reference< chart2::data::XLabeledDataSequence > xOldCategories; - Reference< chart2::data::XLabeledDataSequence > xNewCategories = rScaleData.Categories; - { - MutexGuard aGuard( m_aMutex ); - xModifyEventForwarder = m_xModifyEventForwarder; - xEventListener = this; - xOldCategories = m_aScaleData.Categories; - m_aScaleData = rScaleData; - } - AllocateSubGrids(); - - //don't keep the mutex locked while calling out - if( xOldCategories.is() && xOldCategories != xNewCategories ) - { - ModifyListenerHelper::removeListener( xOldCategories, xModifyEventForwarder ); - EventListenerHelper::removeListener( xOldCategories, xEventListener ); - } - if( xNewCategories.is() && xOldCategories != xNewCategories ) - { - ModifyListenerHelper::addListener( xNewCategories, m_xModifyEventForwarder ); - EventListenerHelper::addListener( xNewCategories, xEventListener ); - } - fireModifyEvent(); -} - -chart2::ScaleData SAL_CALL Axis::getScaleData() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aMutex ); - return m_aScaleData; -} - -Reference< beans::XPropertySet > SAL_CALL Axis::getGridProperties() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aMutex ); - return m_xGrid; -} -Sequence< Reference< beans::XPropertySet > > SAL_CALL Axis::getSubGridProperties() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aMutex ); - return m_aSubGridProperties; -} - -Sequence< Reference< beans::XPropertySet > > SAL_CALL Axis::getSubTickProperties() - throw (uno::RuntimeException) -{ - OSL_FAIL( "Not implemented yet" ); - return Sequence< Reference< beans::XPropertySet > >(); -} - - -// ____ XTitled ____ -Reference< chart2::XTitle > SAL_CALL Axis::getTitleObject() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return m_xTitle; -} - -void SAL_CALL Axis::setTitleObject( const Reference< chart2::XTitle >& xNewTitle ) - throw (uno::RuntimeException) -{ - Reference< util::XModifyListener > xModifyEventForwarder; - Reference< chart2::XTitle > xOldTitle; - { - MutexGuard aGuard( GetMutex() ); - xOldTitle = m_xTitle; - xModifyEventForwarder = m_xModifyEventForwarder; - m_xTitle = xNewTitle; - } - - //don't keep the mutex locked while calling out - if( xOldTitle.is() && xOldTitle != xNewTitle ) - ModifyListenerHelper::removeListener( xOldTitle, xModifyEventForwarder ); - if( xNewTitle.is() && xOldTitle != xNewTitle ) - ModifyListenerHelper::addListener( xNewTitle, xModifyEventForwarder ); - fireModifyEvent(); -} - -// ____ XCloneable ____ -Reference< util::XCloneable > SAL_CALL Axis::createClone() - throw (uno::RuntimeException) -{ - Axis * pNewAxis( new Axis( *this )); - // hold a reference to the clone - Reference< util::XCloneable > xResult( pNewAxis ); - // do initialization that uses uno references to the clone - pNewAxis->Init( *this ); - return xResult; -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL Axis::addModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL Axis::removeModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL Axis::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL Axis::disposing( const lang::EventObject& Source ) - throw (uno::RuntimeException) -{ - if( Source.Source == m_aScaleData.Categories ) - m_aScaleData.Categories = 0; -} - -// ____ OPropertySet ____ -void Axis::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void Axis::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ================================================================================ - -// ____ OPropertySet ____ -uno::Any Axis::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticAxisDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL Axis::getInfoHelper() -{ - return *StaticAxisInfoHelper::get(); -} - -// ____ XPropertySet ____ -Reference< beans::XPropertySetInfo > SAL_CALL Axis::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticAxisInfo::get(); -} - -// ================================================================================ - -Sequence< OUString > Axis::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.Axis" ); - aServices[ 1 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -using impl::Axis_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( Axis, Axis_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( Axis, Axis_Base, ::property::OPropertySet ) - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( Axis, lcl_aServiceName ); - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Axis.hxx b/chart2/source/model/main/Axis.hxx deleted file mode 100644 index c81a75147..000000000 --- a/chart2/source/model/main/Axis.hxx +++ /dev/null @@ -1,180 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_AXIS_HXX -#define CHART_AXIS_HXX - -#include <com/sun/star/uno/XComponentContext.hpp> -#include "MutexContainer.hxx" -#include "OPropertySet.hxx" -#include <cppuhelper/implbase6.hxx> -#include <comphelper/uno3.hxx> - -#include "ServiceMacros.hxx" -#include "ModifyListenerHelper.hxx" -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/chart2/XAxis.hpp> -#include <com/sun/star/chart2/XTitled.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/util/XModifyBroadcaster.hpp> -#include <com/sun/star/util/XModifyListener.hpp> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper6< - ::com::sun::star::chart2::XAxis, - ::com::sun::star::chart2::XTitled, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - Axis_Base; -} - -class Axis : - public MutexContainer, - public impl::Axis_Base, - public ::property::OPropertySet -{ -public: - Axis( ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > const & xContext ); - virtual ~Axis(); - - /// establish methods for factory instatiation - APPHELPER_SERVICE_FACTORY_HELPER( Axis ) - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -protected: - explicit Axis( const Axis & rOther ); - - // late initialization to call after copy-constructing - void Init( const Axis & rOther ); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XAxis ____ - virtual void SAL_CALL setScaleData( const ::com::sun::star::chart2::ScaleData& rScaleData ) - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::chart2::ScaleData SAL_CALL getScaleData() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > SAL_CALL getGridProperties() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > > SAL_CALL getSubGridProperties() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > > SAL_CALL getSubTickProperties() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XTitled ____ - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XTitle > SAL_CALL getTitleObject() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setTitleObject( - const ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XTitle >& Title ) - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - // Note: the coordinate systems are not cloned! - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: //methods - void AllocateSubGrids(); - -private: //member - - ::com::sun::star::uno::Reference< - ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; - - ::com::sun::star::chart2::ScaleData m_aScaleData; - - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > m_xGrid; - - ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > > m_aSubGridProperties; - - ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XTitle > m_xTitle; -}; - -} // namespace chart - -// CHART_AXIS_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/BaseCoordinateSystem.cxx b/chart2/source/model/main/BaseCoordinateSystem.cxx deleted file mode 100644 index 2a1ed562f..000000000 --- a/chart2/source/model/main/BaseCoordinateSystem.cxx +++ /dev/null @@ -1,413 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" - -#include "BaseCoordinateSystem.hxx" -#include "macros.hxx" -#include "PropertyHelper.hxx" -#include "UserDefinedProperties.hxx" -#include "ContainerHelper.hxx" -#include "CloneHelper.hxx" -#include "Axis.hxx" -#include "AxisHelper.hxx" -#include <com/sun/star/chart2/AxisType.hpp> - -#include <algorithm> - -#if OSL_DEBUG_LEVEL > 1 -#include <rtl/math.hxx> -#endif -#include <com/sun/star/beans/PropertyAttribute.hpp> - -using namespace ::com::sun::star; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::rtl::OUString; -using ::com::sun::star::beans::Property; - -namespace -{ -enum -{ - PROP_COORDINATESYSTEM_SWAPXANDYAXIS -}; - -void lcl_AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "SwapXAndYAxis" ), - PROP_COORDINATESYSTEM_SWAPXANDYAXIS, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); -} - -struct StaticCooSysDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_COORDINATESYSTEM_SWAPXANDYAXIS, false ); - } -}; - -struct StaticCooSysDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticCooSysDefaults_Initializer > -{ -}; - -struct StaticCooSysInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - lcl_AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } -}; - -struct StaticCooSysInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticCooSysInfoHelper_Initializer > -{ -}; - -struct StaticCooSysInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticCooSysInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticCooSysInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticCooSysInfo_Initializer > -{ -}; - -} // anonymous namespace - -namespace chart -{ - -BaseCoordinateSystem::BaseCoordinateSystem( - const Reference< uno::XComponentContext > & xContext, - sal_Int32 nDimensionCount /* = 2 */, - sal_Bool bSwapXAndYAxis /* = sal_False */ ) : - ::property::OPropertySet( m_aMutex ), - m_xContext( xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()), - m_nDimensionCount( nDimensionCount ) - { - m_aAllAxis.resize( m_nDimensionCount ); - for( sal_Int32 nN=0; nN<m_nDimensionCount; nN++ ) - { - m_aAllAxis[nN].resize( 1 ); - Reference< chart2::XAxis > xAxis( new Axis(m_xContext) ); - m_aAllAxis[nN][0] = xAxis; - - ModifyListenerHelper::addListenerToAllElements( m_aAllAxis[nN], m_xModifyEventForwarder ); - chart2::ScaleData aScaleData( xAxis->getScaleData() ); - if(nN==0) - { - aScaleData.AxisType = chart2::AxisType::CATEGORY; - } - else if( nN==1) - { - aScaleData.AxisType = chart2::AxisType::REALNUMBER; - } - else if( nN==2) - { - aScaleData.AxisType = chart2::AxisType::SERIES; - } - xAxis->setScaleData( aScaleData ); - } - - m_aOrigin.realloc( m_nDimensionCount ); - for( sal_Int32 i = 0; i < m_nDimensionCount; ++i ) - m_aOrigin[ i ] = uno::makeAny( double( 0.0 ) ); - - setFastPropertyValue_NoBroadcast( PROP_COORDINATESYSTEM_SWAPXANDYAXIS, uno::makeAny( sal_Bool( bSwapXAndYAxis ))); -} - -// explicit -BaseCoordinateSystem::BaseCoordinateSystem( - const BaseCoordinateSystem & rSource ) : - impl::BaseCoordinateSystem_Base(), - MutexContainer(), - ::property::OPropertySet( rSource, m_aMutex ), - m_xContext( rSource.m_xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()), - m_nDimensionCount( rSource.m_nDimensionCount ), - m_aOrigin( rSource.m_aOrigin ) -{ - m_aAllAxis.resize(rSource.m_aAllAxis.size()); - tAxisVecVecType::size_type nN=0; - for( nN=0; nN<m_aAllAxis.size(); nN++ ) - CloneHelper::CloneRefVector< Reference< chart2::XAxis > >( rSource.m_aAllAxis[nN], m_aAllAxis[nN] ); - CloneHelper::CloneRefVector< Reference< chart2::XChartType > >( rSource.m_aChartTypes, m_aChartTypes ); - - for( nN=0; nN<m_aAllAxis.size(); nN++ ) - ModifyListenerHelper::addListenerToAllElements( m_aAllAxis[nN], m_xModifyEventForwarder ); - ModifyListenerHelper::addListenerToAllElements( m_aChartTypes, m_xModifyEventForwarder ); -} - -BaseCoordinateSystem::~BaseCoordinateSystem() -{ - try - { - for( tAxisVecVecType::size_type nN=0; nN<m_aAllAxis.size(); nN++ ) - ModifyListenerHelper::removeListenerFromAllElements( m_aAllAxis[nN], m_xModifyEventForwarder ); - ModifyListenerHelper::removeListenerFromAllElements( m_aChartTypes, m_xModifyEventForwarder ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XCoordinateSystem ____ -sal_Int32 SAL_CALL BaseCoordinateSystem::getDimension() - throw (uno::RuntimeException) -{ - return m_nDimensionCount; -} - -void SAL_CALL BaseCoordinateSystem::setAxisByDimension( - sal_Int32 nDimensionIndex, - const Reference< chart2::XAxis >& xAxis, - sal_Int32 nIndex ) - throw (lang::IndexOutOfBoundsException, - uno::RuntimeException) -{ - if( nDimensionIndex < 0 || nDimensionIndex >= getDimension() ) - throw lang::IndexOutOfBoundsException(); - - if( nIndex < 0 ) - throw lang::IndexOutOfBoundsException(); - - if( m_aAllAxis[ nDimensionIndex ].size() < static_cast< tAxisVecVecType::size_type >( nIndex+1 )) - { - m_aAllAxis[ nDimensionIndex ].resize( nIndex+1 ); - m_aAllAxis[ nDimensionIndex ][nIndex] = 0; - } - - Reference< chart2::XAxis > xOldAxis( m_aAllAxis[ nDimensionIndex ][nIndex] ); - if( xOldAxis.is()) - ModifyListenerHelper::removeListener( xOldAxis, m_xModifyEventForwarder ); - m_aAllAxis[ nDimensionIndex ][nIndex] = xAxis; - if( xAxis.is()) - ModifyListenerHelper::addListener( xAxis, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -Reference< chart2::XAxis > SAL_CALL BaseCoordinateSystem::getAxisByDimension( - sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex ) - throw (lang::IndexOutOfBoundsException, - uno::RuntimeException) -{ - if( nDimensionIndex < 0 || nDimensionIndex >= getDimension() ) - throw lang::IndexOutOfBoundsException(); - - OSL_ASSERT( m_aAllAxis.size() == static_cast< size_t >( getDimension())); - - if( nAxisIndex < 0 || nAxisIndex > this->getMaximumAxisIndexByDimension(nDimensionIndex) ) - throw lang::IndexOutOfBoundsException(); - - return m_aAllAxis[ nDimensionIndex ][nAxisIndex]; -} - -sal_Int32 SAL_CALL BaseCoordinateSystem::getMaximumAxisIndexByDimension( sal_Int32 nDimensionIndex ) - throw (lang::IndexOutOfBoundsException, - uno::RuntimeException) -{ - if( nDimensionIndex < 0 || nDimensionIndex >= getDimension() ) - throw lang::IndexOutOfBoundsException(); - - OSL_ASSERT( m_aAllAxis.size() == static_cast< size_t >( getDimension())); - - sal_Int32 nRet = m_aAllAxis[ nDimensionIndex ].size(); - if(nRet) - nRet-=1; - - return nRet; -} - -// ____ XChartTypeContainer ____ -void SAL_CALL BaseCoordinateSystem::addChartType( const Reference< chart2::XChartType >& aChartType ) - throw (lang::IllegalArgumentException, - uno::RuntimeException) -{ - if( ::std::find( m_aChartTypes.begin(), m_aChartTypes.end(), aChartType ) - != m_aChartTypes.end()) - throw lang::IllegalArgumentException(); - - m_aChartTypes.push_back( aChartType ); - ModifyListenerHelper::addListener( aChartType, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -void SAL_CALL BaseCoordinateSystem::removeChartType( const Reference< chart2::XChartType >& aChartType ) - throw (container::NoSuchElementException, - uno::RuntimeException) -{ - ::std::vector< uno::Reference< chart2::XChartType > >::iterator - aIt( ::std::find( m_aChartTypes.begin(), m_aChartTypes.end(), aChartType )); - if( aIt == m_aChartTypes.end()) - throw container::NoSuchElementException( - C2U( "The given chart type is no element of the container" ), - static_cast< uno::XWeak * >( this )); - - m_aChartTypes.erase( aIt ); - ModifyListenerHelper::removeListener( aChartType, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -Sequence< Reference< chart2::XChartType > > SAL_CALL BaseCoordinateSystem::getChartTypes() - throw (uno::RuntimeException) -{ - return ContainerHelper::ContainerToSequence( m_aChartTypes ); -} - -void SAL_CALL BaseCoordinateSystem::setChartTypes( const Sequence< Reference< chart2::XChartType > >& aChartTypes ) - throw (lang::IllegalArgumentException, - uno::RuntimeException) -{ - ModifyListenerHelper::removeListenerFromAllElements( m_aChartTypes, m_xModifyEventForwarder ); - m_aChartTypes = ContainerHelper::SequenceToVector( aChartTypes ); - ModifyListenerHelper::addListenerToAllElements( m_aChartTypes, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL BaseCoordinateSystem::addModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL BaseCoordinateSystem::removeModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL BaseCoordinateSystem::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL BaseCoordinateSystem::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void BaseCoordinateSystem::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void BaseCoordinateSystem::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - - -// ____ OPropertySet ____ -uno::Any BaseCoordinateSystem::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticCooSysDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -// ____ OPropertySet ____ -::cppu::IPropertyArrayHelper & SAL_CALL BaseCoordinateSystem::getInfoHelper() -{ - return *StaticCooSysInfoHelper::get(); -} - - -// ____ XPropertySet ____ -Reference< beans::XPropertySetInfo > SAL_CALL BaseCoordinateSystem::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticCooSysInfo::get(); -} - -using impl::BaseCoordinateSystem_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( BaseCoordinateSystem, BaseCoordinateSystem_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( BaseCoordinateSystem, BaseCoordinateSystem_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/CartesianCoordinateSystem.cxx b/chart2/source/model/main/CartesianCoordinateSystem.cxx deleted file mode 100644 index 7ff61ef35..000000000 --- a/chart2/source/model/main/CartesianCoordinateSystem.cxx +++ /dev/null @@ -1,158 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "CartesianCoordinateSystem.hxx" -#include "macros.hxx" -#include "servicenames_coosystems.hxx" - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::RuntimeException; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::rtl::OUString; - -namespace -{ - -static const ::rtl::OUString lcl_aServiceNameCartesian2d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.CartesianCoordinateSystem2d" )); -static const ::rtl::OUString lcl_aServiceNameCartesian3d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.CartesianCoordinateSystem3d" )); - -static const ::rtl::OUString lcl_aImplementationNameCartesian2d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.CartesianCoordinateSystem2d" )); -static const ::rtl::OUString lcl_aImplementationNameCartesian3d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.CartesianCoordinateSystem3d" )); -} - -namespace chart -{ - -// explicit -CartesianCoordinateSystem::CartesianCoordinateSystem( - const uno::Reference< uno::XComponentContext > & xContext, - sal_Int32 nDimensionCount /* = 2 */, - sal_Bool bSwapXAndYAxis /* = sal_False */ ) : - BaseCoordinateSystem( xContext, nDimensionCount, bSwapXAndYAxis ) -{} - -CartesianCoordinateSystem::CartesianCoordinateSystem( - const CartesianCoordinateSystem & rSource ) : - BaseCoordinateSystem( rSource ) -{} - -CartesianCoordinateSystem::~CartesianCoordinateSystem() -{} - -// ____ XCoordinateSystem ____ -::rtl::OUString SAL_CALL CartesianCoordinateSystem::getCoordinateSystemType() - throw (RuntimeException) -{ - return CHART2_COOSYSTEM_CARTESIAN_SERVICE_NAME; -} - -::rtl::OUString SAL_CALL CartesianCoordinateSystem::getViewServiceName() - throw (RuntimeException) -{ - return CHART2_COOSYSTEM_CARTESIAN_VIEW_SERVICE_NAME; -} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL CartesianCoordinateSystem::createClone() - throw (RuntimeException) -{ - return Reference< util::XCloneable >( new CartesianCoordinateSystem( *this )); -} - -// ____ XServiceInfo ____ -Sequence< OUString > CartesianCoordinateSystem::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 1 ); - aServices[ 0 ] = CHART2_COOSYSTEM_CARTESIAN_SERVICE_NAME; - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( CartesianCoordinateSystem, - C2U( "com.sun.star.comp.chart.CartesianCoordinateSystem" )) - - -// ================================= -// ==== CartesianCoordinateSystem2d ==== -// ================================= - -CartesianCoordinateSystem2d::CartesianCoordinateSystem2d( - const uno::Reference< uno::XComponentContext > & xContext ) : - CartesianCoordinateSystem( xContext, 2, sal_False ) -{} - -CartesianCoordinateSystem2d::~CartesianCoordinateSystem2d() -{} - -// ____ XServiceInfo ____ -Sequence< OUString > CartesianCoordinateSystem2d::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - aServices[ 0 ] = CHART2_COOSYSTEM_CARTESIAN_SERVICE_NAME; - aServices[ 1 ] = lcl_aServiceNameCartesian2d; - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( CartesianCoordinateSystem2d, lcl_aImplementationNameCartesian2d ) - -// ================================= -// ==== CartesianCoordinateSystem3d ==== -// ================================= - -CartesianCoordinateSystem3d::CartesianCoordinateSystem3d( - const uno::Reference< uno::XComponentContext > & xContext ) : - CartesianCoordinateSystem( xContext, 3, sal_False ) -{} - -CartesianCoordinateSystem3d::~CartesianCoordinateSystem3d() -{} - -// ____ XServiceInfo ____ -Sequence< OUString > CartesianCoordinateSystem3d::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - aServices[ 0 ] = CHART2_COOSYSTEM_CARTESIAN_SERVICE_NAME; - aServices[ 1 ] = lcl_aServiceNameCartesian3d; - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( CartesianCoordinateSystem3d, lcl_aImplementationNameCartesian3d ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx deleted file mode 100644 index 10a2c3a2a..000000000 --- a/chart2/source/model/main/ChartModel.cxx +++ /dev/null @@ -1,1361 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "ChartModel.hxx" -#include "servicenames.hxx" -#include "MediaDescriptorHelper.hxx" -#include "macros.hxx" -#include "servicenames.hxx" -#include "NoWarningThisInCTOR.hxx" -#include "DataSourceHelper.hxx" -#include "ChartModelHelper.hxx" -#include "DiagramHelper.hxx" -#include "DisposeHelper.hxx" -#include "ControllerLockGuard.hxx" -#include "ObjectIdentifier.hxx" -#include "PageBackground.hxx" -#include "CloneHelper.hxx" -#include "NameContainer.hxx" -#include "UndoManager.hxx" - -#include <com/sun/star/chart/ChartDataRowSource.hpp> - -#include <comphelper/InlineContainer.hxx> -#include <comphelper/processfactory.hxx> - -// header for class SvNumberFormatsSupplierObj -#include <svl/numuno.hxx> -#include <com/sun/star/lang/DisposedException.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/view/XSelectionSupplier.hpp> -#include <com/sun/star/embed/XEmbedObjectCreator.hpp> -#include <com/sun/star/embed/XEmbedPersist.hpp> -#include <com/sun/star/embed/EmbedStates.hpp> -#include <com/sun/star/embed/XComponentSupplier.hpp> -#include <com/sun/star/embed/XStorage.hpp> -#include <com/sun/star/embed/EmbedMapUnits.hpp> -#include <com/sun/star/embed/Aspects.hpp> -#include <com/sun/star/awt/Gradient.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include <com/sun/star/awt/PosSize.hpp> -#include <com/sun/star/datatransfer/XTransferable.hpp> -#include <com/sun/star/drawing/Hatch.hpp> -#include <com/sun/star/drawing/LineDash.hpp> -#include <com/sun/star/drawing/XShapes.hpp> - -// header for class SvNumberFormatter -#include <svl/zforlist.hxx> - -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::RuntimeException; -using ::com::sun::star::uno::Any; -using ::rtl::OUString; -using ::osl::MutexGuard; - -using namespace ::com::sun::star; -using namespace ::apphelper; -using namespace ::chart::CloneHelper; - -namespace -{ -const OUString lcl_aGDIMetaFileMIMEType( - RTL_CONSTASCII_USTRINGPARAM("application/x-openoffice-gdimetafile;windows_formatname=\"GDIMetaFile\"")); -const OUString lcl_aGDIMetaFileMIMETypeHighContrast( - RTL_CONSTASCII_USTRINGPARAM("application/x-openoffice-highcontrast-gdimetafile;windows_formatname=\"GDIMetaFile\"")); - -} // anonymous namespace - -//----------------------------------------------------------------- -// ChartModel Constructor and Destructor -//----------------------------------------------------------------- - -namespace chart -{ - -ChartModel::ChartModel(uno::Reference<uno::XComponentContext > const & xContext) - : m_aLifeTimeManager( this, this ) - , m_bReadOnly( sal_False ) - , m_bModified( sal_False ) - , m_nInLoad(0) - , m_bUpdateNotificationsPending(false) - , m_pUndoManager( NULL ) - , m_aControllers( m_aModelMutex ) - , m_nControllerLockCount(0) - , m_xContext( xContext ) - , m_aVisualAreaSize( ChartModelHelper::getDefaultPageSize() ) - , m_xDataProvider( 0 ) - , m_xInternalDataProvider( 0 ) - , m_xPageBackground( new PageBackground( m_xContext ) ) - , m_xXMLNamespaceMap( createNameContainer( ::getCppuType( (const OUString*) 0 ), - C2U( "com.sun.star.xml.NamespaceMap" ), C2U( "com.sun.star.comp.chart.XMLNameSpaceMap" ) ), uno::UNO_QUERY) -{ - OSL_TRACE( "ChartModel: CTOR called" ); - - osl_incrementInterlockedCount(&m_refCount); - { - m_xOldModelAgg.set( - m_xContext->getServiceManager()->createInstanceWithContext( - CHART_CHARTAPIWRAPPER_SERVICE_NAME, - m_xContext ), uno::UNO_QUERY_THROW ); - m_xOldModelAgg->setDelegator( *this ); - } - - { - ModifyListenerHelper::addListener( m_xPageBackground, this ); - m_xChartTypeManager.set( xContext->getServiceManager()->createInstanceWithContext( - C2U( "com.sun.star.chart2.ChartTypeManager" ), m_xContext ), uno::UNO_QUERY ); - } - osl_decrementInterlockedCount(&m_refCount); -} - -ChartModel::ChartModel( const ChartModel & rOther ) - : impl::ChartModel_Base() - , m_aLifeTimeManager( this, this ) - , m_bReadOnly( rOther.m_bReadOnly ) - , m_bModified( rOther.m_bModified ) - , m_nInLoad(0) - , m_bUpdateNotificationsPending(false) - , m_aResource( rOther.m_aResource ) - , m_aMediaDescriptor( rOther.m_aMediaDescriptor ) - , m_aControllers( m_aModelMutex ) - , m_nControllerLockCount(0) - , m_xContext( rOther.m_xContext ) - // @note: the old model aggregate must not be shared with other models if it - // is, you get mutex deadlocks - , m_xOldModelAgg( 0 ) //rOther.m_xOldModelAgg ) - , m_xStorage( 0 ) //rOther.m_xStorage ) - , m_aVisualAreaSize( rOther.m_aVisualAreaSize ) - , m_aGraphicObjectVector( rOther.m_aGraphicObjectVector ) - , m_xDataProvider( rOther.m_xDataProvider ) - , m_xInternalDataProvider( rOther.m_xInternalDataProvider ) -{ - OSL_TRACE( "ChartModel: Copy-CTOR called" ); - - osl_incrementInterlockedCount(&m_refCount); - { - m_xOldModelAgg.set( - m_xContext->getServiceManager()->createInstanceWithContext( - CHART_CHARTAPIWRAPPER_SERVICE_NAME, - m_xContext ), uno::UNO_QUERY_THROW ); - m_xOldModelAgg->setDelegator( *this ); - - Reference< util::XModifyListener > xListener; - Reference< chart2::XTitle > xNewTitle = CreateRefClone< Reference< chart2::XTitle > >()( rOther.m_xTitle ); - Reference< chart2::XDiagram > xNewDiagram = CreateRefClone< Reference< chart2::XDiagram > >()( rOther.m_xDiagram ); - Reference< beans::XPropertySet > xNewPageBackground = CreateRefClone< Reference< beans::XPropertySet > >()( rOther.m_xPageBackground ); - Reference< chart2::XChartTypeManager > xChartTypeManager = CreateRefClone< Reference< chart2::XChartTypeManager > >()( rOther.m_xChartTypeManager ); - Reference< container::XNameAccess > xXMLNamespaceMap = CreateRefClone< Reference< container::XNameAccess > >()( rOther.m_xXMLNamespaceMap ); - - { - MutexGuard aGuard( m_aModelMutex ); - xListener = this; - m_xTitle = xNewTitle; - m_xDiagram = xNewDiagram; - m_xPageBackground = xNewPageBackground; - m_xChartTypeManager = xChartTypeManager; - m_xXMLNamespaceMap = xXMLNamespaceMap; - } - - ModifyListenerHelper::addListener( xNewTitle, xListener ); - ModifyListenerHelper::addListener( xNewDiagram, xListener ); - ModifyListenerHelper::addListener( xNewPageBackground, xListener ); - xListener.clear(); - } - osl_decrementInterlockedCount(&m_refCount); -} - -ChartModel::~ChartModel() -{ - OSL_TRACE( "ChartModel: DTOR called" ); - if( m_xOldModelAgg.is()) - m_xOldModelAgg->setDelegator( NULL ); -} - -void SAL_CALL ChartModel::initialize( const Sequence< Any >& /*rArguments*/ ) - throw (uno::Exception, uno::RuntimeException) -{ - //#i113722# avoid duplicate creation - - //maybe additional todo?: - //support argument "EmbeddedObject"? - //support argument "EmbeddedScriptSupport"? - //support argument "DocumentRecoverySupport"? -} - -//----------------------------------------------------------------- -// private methods -//----------------------------------------------------------------- - -::rtl::OUString ChartModel::impl_g_getLocation() -{ - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return ::rtl::OUString(); //behave passive if already disposed or closed or throw exception @todo? - //mutex is acquired - return m_aResource; -} - -sal_Bool ChartModel::impl_isControllerConnected( const uno::Reference< frame::XController >& xController ) -{ - try - { - uno::Sequence< uno::Reference<uno::XInterface> > aSeq = m_aControllers.getElements(); - for( sal_Int32 nN = aSeq.getLength(); nN--; ) - { - if( aSeq[nN] == xController ) - return sal_True; - } - } - catch (const uno::Exception&) - { - } - return sal_False; -} - -uno::Reference< frame::XController > ChartModel::impl_getCurrentController() throw(uno::RuntimeException) -{ - //@todo? hold only weak references to controllers - - // get the last active controller of this model - if( m_xCurrentController.is() ) - return m_xCurrentController; - - // get the first controller of this model - if( m_aControllers.getLength() ) - { - uno::Reference<uno::XInterface> xI = m_aControllers.getElements()[0]; - return uno::Reference<frame::XController>( xI, uno::UNO_QUERY ); - } - - //return nothing if no controllers are connected at all - return uno::Reference< frame::XController > (); -} - -void SAL_CALL ChartModel::impl_notifyCloseListeners() - throw( uno::RuntimeException) -{ - ::cppu::OInterfaceContainerHelper* pIC = m_aLifeTimeManager.m_aListenerContainer - .getContainer( ::getCppuType((const uno::Reference< util::XCloseListener >*)0) ); - if( pIC ) - { - lang::EventObject aEvent( static_cast< lang::XComponent*>(this) ); - ::cppu::OInterfaceIteratorHelper aIt( *pIC ); - while( aIt.hasMoreElements() ) - { - uno::Reference< util::XCloseListener > xListener( aIt.next(), uno::UNO_QUERY ); - if( xListener.is() ) - xListener->notifyClosing( aEvent ); - } - } -} - -void ChartModel::impl_adjustAdditionalShapesPositionAndSize( const awt::Size& aVisualAreaSize ) -{ - uno::Reference< beans::XPropertySet > xProperties( static_cast< ::cppu::OWeakObject* >( this ), uno::UNO_QUERY ); - if ( xProperties.is() ) - { - uno::Reference< drawing::XShapes > xShapes; - xProperties->getPropertyValue( C2U( "AdditionalShapes" ) ) >>= xShapes; - if ( xShapes.is() ) - { - sal_Int32 nCount = xShapes->getCount(); - for ( sal_Int32 i = 0; i < nCount; ++i ) - { - Reference< drawing::XShape > xShape; - if ( xShapes->getByIndex( i ) >>= xShape ) - { - if ( xShape.is() ) - { - awt::Point aPos( xShape->getPosition() ); - awt::Size aSize( xShape->getSize() ); - - double fWidth = static_cast< double >( aVisualAreaSize.Width ) / m_aVisualAreaSize.Width; - double fHeight = static_cast< double >( aVisualAreaSize.Height ) / m_aVisualAreaSize.Height; - - aPos.X = static_cast< long >( aPos.X * fWidth ); - aPos.Y = static_cast< long >( aPos.Y * fHeight ); - aSize.Width = static_cast< long >( aSize.Width * fWidth ); - aSize.Height = static_cast< long >( aSize.Height * fHeight ); - - xShape->setPosition( aPos ); - xShape->setSize( aSize ); - } - } - } - } - } -} - -//----------------------------------------------------------------- -// lang::XServiceInfo -//----------------------------------------------------------------- - -APPHELPER_XSERVICEINFO_IMPL(ChartModel,CHART_MODEL_SERVICE_IMPLEMENTATION_NAME) - -uno::Sequence< rtl::OUString > ChartModel::getSupportedServiceNames_Static() -{ - uno::Sequence< rtl::OUString > aSNS( 3 ); - aSNS[0] = CHART_MODEL_SERVICE_NAME; - aSNS[1] = C2U( "com.sun.star.document.OfficeDocument" ); - aSNS[2] = C2U( "com.sun.star.chart.ChartDocument" ); - //// @todo : add additional services if you support any further - return aSNS; -} - -//----------------------------------------------------------------- -// frame::XModel (required interface) -//----------------------------------------------------------------- - -sal_Bool SAL_CALL ChartModel::attachResource( const ::rtl::OUString& rURL - , const uno::Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw(uno::RuntimeException) -{ - /* - The method attachResource() is used by the frame loader implementations - to inform the model about its URL and MediaDescriptor. - */ - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return sal_False; //behave passive if already disposed or closed or throw exception @todo? - //mutex is acquired - - if(m_aResource.getLength()!=0)//we have a resource already //@todo? or is setting a new resource allowed? - return sal_False; - m_aResource = rURL; - m_aMediaDescriptor = rMediaDescriptor; - - //@todo ? check rURL ?? - //@todo ? evaluate m_aMediaDescriptor; - //@todo ? ... ??? --> nothing, this method is only for setting informations - - return sal_True; -} - -::rtl::OUString SAL_CALL ChartModel::getURL() throw(uno::RuntimeException) -{ - return impl_g_getLocation(); -} - -uno::Sequence< beans::PropertyValue > SAL_CALL ChartModel::getArgs() throw(uno::RuntimeException) -{ - /* - The method getArgs() returns a sequence of property values - that report the resource description according to com.sun.star.document.MediaDescriptor, - specified on loading or saving with storeAsURL. - */ - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return uno::Sequence< beans::PropertyValue >(); //behave passive if already disposed or closed or throw exception @todo? - //mutex is acquired - - return m_aMediaDescriptor; -} - -void SAL_CALL ChartModel::connectController( const uno::Reference< frame::XController >& xController ) - throw(uno::RuntimeException) -{ - //@todo? this method is declared as oneway -> ...? - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return ; //behave passive if already disposed or closed - //mutex is acquired - - //--add controller - m_aControllers.addInterface(xController); -} - -void SAL_CALL ChartModel::disconnectController( const uno::Reference< frame::XController >& xController ) - throw(uno::RuntimeException) -{ - //@todo? this method is declared as oneway -> ...? - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return; //behave passive if already disposed or closed - - //--remove controller - m_aControllers.removeInterface(xController); - - //case: current controller is disconnected: - if( m_xCurrentController == xController ) - m_xCurrentController.clear(); - - DisposeHelper::DisposeAndClear( m_xRangeHighlighter ); -} - -void SAL_CALL ChartModel::lockControllers() throw(uno::RuntimeException) -{ - /* - suspends some notifications to the controllers which are used for display updates. - - The calls to lockControllers() and unlockControllers() may be nested - and even overlapping, but they must be in pairs. While there is at least one lock - remaining, some notifications for display updates are not broadcasted. - */ - - //@todo? this method is declared as oneway -> ...? - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return; //behave passive if already disposed or closed or throw exception @todo? - ++m_nControllerLockCount; -} - -void SAL_CALL ChartModel::unlockControllers() throw(uno::RuntimeException) -{ - /* - resumes the notifications which were suspended by lockControllers() . - - The calls to lockControllers() and unlockControllers() may be nested - and even overlapping, but they must be in pairs. While there is at least one lock - remaining, some notifications for display updates are not broadcasted. - */ - - //@todo? this method is declared as oneway -> ...? - - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return; //behave passive if already disposed or closed or throw exception @todo? - if( m_nControllerLockCount == 0 ) - { - OSL_TRACE( "ChartModel: unlockControllers called with m_nControllerLockCount == 0" ); - return; - } - --m_nControllerLockCount; - if( m_nControllerLockCount == 0 && m_bUpdateNotificationsPending ) - { - aGuard.clear(); - impl_notifyModifiedListeners(); - } -} - -sal_Bool SAL_CALL ChartModel::hasControllersLocked() throw(uno::RuntimeException) -{ - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - return sal_False; //behave passive if already disposed or closed or throw exception @todo? - return ( m_nControllerLockCount != 0 ) ; -} - -uno::Reference< frame::XController > SAL_CALL ChartModel::getCurrentController() throw(uno::RuntimeException) -{ - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - throw lang::DisposedException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - "getCurrentController was called on an already disposed or closed model" ) ) - , static_cast< ::cppu::OWeakObject* >(this)); - - return impl_getCurrentController(); -} - -void SAL_CALL ChartModel::setCurrentController( const uno::Reference< frame::XController >& xController ) - throw(container::NoSuchElementException, uno::RuntimeException) -{ - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - throw lang::DisposedException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - "setCurrentController was called on an already disposed or closed model" ) ) - , static_cast< ::cppu::OWeakObject* >(this)); - - //OSL_ENSURE( impl_isControllerConnected(xController), "setCurrentController is called with a Controller which is not connected" ); - if(!impl_isControllerConnected(xController)) - throw container::NoSuchElementException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - "setCurrentController is called with a Controller which is not connected" ) ) - , static_cast< ::cppu::OWeakObject* >(this)); - - m_xCurrentController = xController; - - DisposeHelper::DisposeAndClear( m_xRangeHighlighter ); -} - -uno::Reference< uno::XInterface > SAL_CALL ChartModel::getCurrentSelection() throw(uno::RuntimeException) -{ - LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall()) - throw lang::DisposedException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - "getCurrentSelection was called on an already disposed or closed model" ) ) - , static_cast< ::cppu::OWeakObject* >(this)); - - - uno::Reference< uno::XInterface > xReturn; - uno::Reference< frame::XController > xController = impl_getCurrentController(); - - aGuard.clear(); - if( xController.is() ) - { - uno::Reference< view::XSelectionSupplier > xSelectionSupl( xController, uno::UNO_QUERY ); - if ( xSelectionSupl.is() ) - { - uno::Any aSel = xSelectionSupl->getSelection(); - rtl::OUString aObjectCID; - if( aSel >>= aObjectCID ) - xReturn.set( ObjectIdentifier::getObjectPropertySet( aObjectCID, Reference< XChartDocument >(this))); - } - } - return xReturn; -} - - -//----------------------------------------------------------------- -// lang::XComponent (base of XModel) -//----------------------------------------------------------------- -void SAL_CALL ChartModel::dispose() throw(uno::RuntimeException) -{ - Reference< XInterface > xKeepAlive( *this ); - - //This object should release all resources and references in the - //easiest possible manner - //This object must notify all registered listeners using the method - //<member>XEventListener::disposing</member> - - //hold no mutex - if( !m_aLifeTimeManager.dispose() ) - return; - - //--release all resources and references - //// @todo - - if ( m_xDiagram.is() ) - ModifyListenerHelper::removeListener( m_xDiagram, this ); - - m_xDataProvider.clear(); - m_xInternalDataProvider.clear(); - m_xNumberFormatsSupplier.clear(); - DisposeHelper::DisposeAndClear( m_xOwnNumberFormatsSupplier ); - DisposeHelper::DisposeAndClear( m_xChartTypeManager ); - DisposeHelper::DisposeAndClear( m_xDiagram ); - DisposeHelper::DisposeAndClear( m_xTitle ); - DisposeHelper::DisposeAndClear( m_xPageBackground ); - DisposeHelper::DisposeAndClear( m_xXMLNamespaceMap ); - - m_xStorage.clear(); - // just clear, don't dispose - we're not the owner - - if ( m_pUndoManager.is() ) - m_pUndoManager->disposing(); - m_pUndoManager.clear(); - // that's important, since the UndoManager implementation delegates its ref counting to ourself. - - m_aControllers.disposeAndClear( lang::EventObject( static_cast< cppu::OWeakObject * >( this ))); - m_xCurrentController.clear(); - - DisposeHelper::DisposeAndClear( m_xRangeHighlighter ); - - if( m_xOldModelAgg.is()) - m_xOldModelAgg->setDelegator( NULL ); - - OSL_TRACE( "ChartModel: dispose() called" ); -} - -void SAL_CALL ChartModel::addEventListener( const uno::Reference< lang::XEventListener > & xListener ) - throw(uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed() ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.addInterface( ::getCppuType((const uno::Reference< lang::XEventListener >*)0), xListener ); -} - -void SAL_CALL ChartModel::removeEventListener( const uno::Reference< lang::XEventListener > & xListener ) - throw(uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed(false) ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.removeInterface( ::getCppuType((const uno::Reference< lang::XEventListener >*)0), xListener ); - return; -} - -//----------------------------------------------------------------- -// util::XCloseBroadcaster (base of XCloseable) -//----------------------------------------------------------------- -void SAL_CALL ChartModel::addCloseListener( const uno::Reference< util::XCloseListener > & xListener ) - throw(uno::RuntimeException) -{ - m_aLifeTimeManager.g_addCloseListener( xListener ); -} - -void SAL_CALL ChartModel::removeCloseListener( const uno::Reference< util::XCloseListener > & xListener ) - throw(uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed(false) ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.removeInterface( ::getCppuType((const uno::Reference< util::XCloseListener >*)0), xListener ); - return; -} - -//----------------------------------------------------------------- -// util::XCloseable -//----------------------------------------------------------------- -void SAL_CALL ChartModel::close( sal_Bool bDeliverOwnership ) - throw( util::CloseVetoException, - uno::RuntimeException ) -{ - //hold no mutex - - if( !m_aLifeTimeManager.g_close_startTryClose( bDeliverOwnership ) ) - return; - //no mutex is acquired - - // At the end of this method may we must dispose ourself ... - // and may nobody from outside hold a reference to us ... - // then it's a good idea to do that by ourself. - uno::Reference< uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >(this) ); - - //the listeners have had no veto - //check wether we self can close - { - util::CloseVetoException aVetoException = util::CloseVetoException( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( - "the model itself could not be closed" ) ) - , static_cast< ::cppu::OWeakObject* >(this)); - - if( m_aLifeTimeManager.g_close_isNeedToCancelLongLastingCalls( bDeliverOwnership, aVetoException ) ) - { - ////you can empty this block, if you never start longlasting calls or - ////if your longlasting calls are per default not cancelable (check how you have constructed your LifeTimeManager) - - sal_Bool bLongLastingCallsAreCanceled = sal_False; - try - { - //try to cancel running longlasting calls - //// @todo - } - catch (const uno::Exception&) - { - //// @todo - //do not throw anything here!! (without endTryClose) - } - //if not successful canceled - if(!bLongLastingCallsAreCanceled) - { - m_aLifeTimeManager.g_close_endTryClose( bDeliverOwnership, sal_True ); - throw aVetoException; - } - } - - } - m_aLifeTimeManager.g_close_endTryClose_doClose(); - - // BM @todo: is it ok to call the listeners here? - impl_notifyCloseListeners(); -} - -//----------------------------------------------------------------- -// lang::XTypeProvider -//----------------------------------------------------------------- -uno::Sequence< uno::Type > SAL_CALL ChartModel::getTypes() - throw (uno::RuntimeException) -{ - uno::Reference< lang::XTypeProvider > xAggTypeProvider; - if( (m_xOldModelAgg->queryAggregation( ::getCppuType( & xAggTypeProvider )) >>= xAggTypeProvider) - && xAggTypeProvider.is()) - { - uno::Sequence< uno::Type > aOwnTypes( impl::ChartModel_Base::getTypes()); - uno::Sequence< uno::Type > aAggTypes( xAggTypeProvider->getTypes()); - uno::Sequence< uno::Type > aResult( aOwnTypes.getLength() + aAggTypes.getLength()); - sal_Int32 i=0; - for( ;i<aOwnTypes.getLength(); ++i ) - aResult[i] = aOwnTypes[i]; - for( sal_Int32 j=0; i<aResult.getLength(); ++j, ++i) - aResult[i] = aAggTypes[j]; - return aResult; - } - - return impl::ChartModel_Base::getTypes(); -} - -//----------------------------------------------------------------- -// document::XDocumentPropertiesSupplier -//----------------------------------------------------------------- -uno::Reference< document::XDocumentProperties > SAL_CALL - ChartModel::getDocumentProperties() throw (uno::RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aModelMutex ); - if ( !m_xDocumentProperties.is() ) - { - uno::Reference< document::XDocumentProperties > xDocProps( - ::comphelper::getProcessServiceFactory()->createInstance( - C2U("com.sun.star.document.DocumentProperties") ), uno::UNO_QUERY ); - m_xDocumentProperties.set(xDocProps); - } - return m_xDocumentProperties; -} - -//----------------------------------------------------------------- -// document::XDocumentPropertiesSupplier -//----------------------------------------------------------------- -Reference< document::XUndoManager > SAL_CALL ChartModel::getUndoManager( ) throw (RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aModelMutex ); - if ( !m_pUndoManager.is() ) - m_pUndoManager.set( new UndoManager( *this, m_aModelMutex ) ); - return m_pUndoManager.get(); -} - -//----------------------------------------------------------------- -// chart2::XChartDocument -//----------------------------------------------------------------- - -uno::Reference< chart2::XDiagram > SAL_CALL ChartModel::getFirstDiagram() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aModelMutex ); - return m_xDiagram; -} - -void SAL_CALL ChartModel::setFirstDiagram( const uno::Reference< chart2::XDiagram >& xDiagram ) - throw (uno::RuntimeException) -{ - Reference< chart2::XDiagram > xOldDiagram; - Reference< util::XModifyListener > xListener; - { - MutexGuard aGuard( m_aModelMutex ); - if( xDiagram == m_xDiagram ) - return; - xOldDiagram = m_xDiagram; - m_xDiagram = xDiagram; - xListener = this; - } - //don't keep the mutex locked while calling out - ModifyListenerHelper::removeListener( xOldDiagram, xListener ); - ModifyListenerHelper::addListener( xDiagram, xListener ); - setModified( sal_True ); -} - -Reference< chart2::data::XDataSource > ChartModel::impl_createDefaultData() -{ - Reference< chart2::data::XDataSource > xDataSource; - if( hasInternalDataProvider() ) - { - uno::Reference< lang::XInitialization > xIni(m_xInternalDataProvider,uno::UNO_QUERY); - if( xIni.is() ) - { - //init internal dataprovider - { - uno::Sequence< uno::Any > aArgs(1); - beans::NamedValue aParam(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CreateDefaultData")),uno::makeAny(sal_True)); - aArgs[0] <<= aParam; - xIni->initialize(aArgs); - } - //create data - uno::Sequence< beans::PropertyValue > aArgs( 4 ); - aArgs[0] = beans::PropertyValue( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellRangeRepresentation" )), -1, - uno::makeAny( C2U("all") ), beans::PropertyState_DIRECT_VALUE ); - aArgs[1] = beans::PropertyValue( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "HasCategories" )), -1, - uno::makeAny( true ), beans::PropertyState_DIRECT_VALUE ); - aArgs[2] = beans::PropertyValue( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FirstCellAsLabel" )), -1, - uno::makeAny( true ), beans::PropertyState_DIRECT_VALUE ); - aArgs[3] = beans::PropertyValue( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DataRowSource" )), -1, - uno::makeAny( ::com::sun::star::chart::ChartDataRowSource_COLUMNS ), beans::PropertyState_DIRECT_VALUE ); - xDataSource = m_xInternalDataProvider->createDataSource( aArgs ); - } - } - return xDataSource; -} - -void SAL_CALL ChartModel::createInternalDataProvider( sal_Bool bCloneExistingData ) - throw (util::CloseVetoException, uno::RuntimeException) -{ - // don't lock the mutex, because this call calls out to code that tries to - // lock the solar mutex. On the other hand, a paint locks the solar mutex - // and calls to the model lock the model's mutex => deadlock - // @todo: lock a separate mutex in the InternalData class - if( !hasInternalDataProvider() ) - { - if( bCloneExistingData ) - m_xInternalDataProvider = ChartModelHelper::createInternalDataProvider( this, true ); - else - m_xInternalDataProvider = ChartModelHelper::createInternalDataProvider( Reference<XChartDocument>(), true ); - m_xDataProvider.set( m_xInternalDataProvider ); - } - setModified( sal_True ); -} - -sal_Bool SAL_CALL ChartModel::hasInternalDataProvider() - throw (uno::RuntimeException) -{ - return m_xDataProvider.is() && m_xInternalDataProvider.is(); -} - -uno::Reference< chart2::data::XDataProvider > SAL_CALL ChartModel::getDataProvider() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aModelMutex ); - return m_xDataProvider; -} - -// ____ XDataReceiver ____ - -void SAL_CALL ChartModel::attachDataProvider( const uno::Reference< chart2::data::XDataProvider >& xDataProvider ) - throw (uno::RuntimeException) -{ - { - MutexGuard aGuard( m_aModelMutex ); - uno::Reference< beans::XPropertySet > xProp( xDataProvider, uno::UNO_QUERY ); - if( xProp.is() ) - { - try - { - sal_Bool bIncludeHiddenCells = ChartModelHelper::isIncludeHiddenCells( Reference< frame::XModel >(this) ); - xProp->setPropertyValue(C2U("IncludeHiddenCells"), uno::makeAny(bIncludeHiddenCells)); - } - catch (const beans::UnknownPropertyException&) - { - } - } - - m_xDataProvider.set( xDataProvider ); - m_xInternalDataProvider.clear(); - - //the numberformatter is kept independent of the data provider! - } - setModified( sal_True ); -} - -void SAL_CALL ChartModel::attachNumberFormatsSupplier( const uno::Reference< util::XNumberFormatsSupplier >& xNewSupplier ) - throw (uno::RuntimeException) -{ - { - MutexGuard aGuard( m_aModelMutex ); - if( xNewSupplier==m_xNumberFormatsSupplier ) - return; - if( xNewSupplier==m_xOwnNumberFormatsSupplier ) - return; - if( m_xOwnNumberFormatsSupplier.is() && xNewSupplier.is() ) - { - //@todo - //merge missing numberformats from own to new formatter - } - else if( !xNewSupplier.is() ) - { - if( m_xNumberFormatsSupplier.is() ) - { - //@todo - //merge missing numberformats from old numberformatter to own numberformatter - //create own numberformatter if necessary - } - } - - m_xNumberFormatsSupplier.set( xNewSupplier ); - m_xOwnNumberFormatsSupplier.clear(); - } - setModified( sal_True ); -} - -void SAL_CALL ChartModel::setArguments( const Sequence< beans::PropertyValue >& aArguments ) - throw (lang::IllegalArgumentException, - uno::RuntimeException) -{ - { - MutexGuard aGuard( m_aModelMutex ); - if( !m_xDataProvider.is() ) - return; - lockControllers(); - - try - { - Reference< chart2::data::XDataSource > xDataSource( m_xDataProvider->createDataSource( aArguments ) ); - if( xDataSource.is() ) - { - Reference< chart2::XDiagram > xDia( getFirstDiagram() ); - if( !xDia.is() ) - { - Reference< chart2::XChartTypeTemplate > xTemplate( impl_createDefaultChartTypeTemplate() ); - if( xTemplate.is()) - setFirstDiagram( xTemplate->createDiagramByDataSource( xDataSource, aArguments ) ); - } - else - xDia->setDiagramData( xDataSource, aArguments ); - } - } - catch (const lang::IllegalArgumentException&) - { - throw; - } - catch (const uno::Exception& ex) - { - ASSERT_EXCEPTION( ex ); - } - unlockControllers(); - } - setModified( sal_True ); -} - -Sequence< OUString > SAL_CALL ChartModel::getUsedRangeRepresentations() - throw (uno::RuntimeException) -{ - return DataSourceHelper::getUsedDataRanges( Reference< frame::XModel >(this)); -} - -Reference< chart2::data::XDataSource > SAL_CALL ChartModel::getUsedData() - throw (uno::RuntimeException) -{ - return DataSourceHelper::getUsedData( Reference< chart2::XChartDocument >(this)); -} - -Reference< chart2::data::XRangeHighlighter > SAL_CALL ChartModel::getRangeHighlighter() - throw (uno::RuntimeException) -{ - if( ! m_xRangeHighlighter.is()) - { - uno::Reference< view::XSelectionSupplier > xSelSupp( this->getCurrentController(), uno::UNO_QUERY ); - if( xSelSupp.is() ) - m_xRangeHighlighter.set( ChartModelHelper::createRangeHighlighter( xSelSupp )); - } - return m_xRangeHighlighter; -} - -Reference< chart2::XChartTypeTemplate > ChartModel::impl_createDefaultChartTypeTemplate() -{ - Reference< chart2::XChartTypeTemplate > xTemplate; - Reference< lang::XMultiServiceFactory > xFact( m_xChartTypeManager, uno::UNO_QUERY ); - if( xFact.is() ) - xTemplate.set( xFact->createInstance( C2U( "com.sun.star.chart2.template.Column" ) ), uno::UNO_QUERY ); - return xTemplate; -} - -void SAL_CALL ChartModel::setChartTypeManager( const uno::Reference< chart2::XChartTypeManager >& xNewManager ) - throw (uno::RuntimeException) -{ - { - MutexGuard aGuard( m_aModelMutex ); - m_xChartTypeManager = xNewManager; - } - setModified( sal_True ); -} - -uno::Reference< chart2::XChartTypeManager > SAL_CALL ChartModel::getChartTypeManager() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aModelMutex ); - return m_xChartTypeManager; -} - -uno::Reference< beans::XPropertySet > SAL_CALL ChartModel::getPageBackground() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aModelMutex ); - return m_xPageBackground; -} - -// ____ XTitled ____ -uno::Reference< chart2::XTitle > SAL_CALL ChartModel::getTitleObject() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( m_aModelMutex ); - return m_xTitle; -} - -void SAL_CALL ChartModel::setTitleObject( const uno::Reference< chart2::XTitle >& xTitle ) - throw (uno::RuntimeException) -{ - { - MutexGuard aGuard( m_aModelMutex ); - if( m_xTitle.is() ) - ModifyListenerHelper::removeListener( m_xTitle, this ); - m_xTitle = xTitle; - ModifyListenerHelper::addListener( m_xTitle, this ); - } - setModified( sal_True ); -} - -// ____ XInterface (for old API wrapper) ____ -uno::Any SAL_CALL ChartModel::queryInterface( const uno::Type& aType ) - throw (uno::RuntimeException) -{ - uno::Any aResult( impl::ChartModel_Base::queryInterface( aType )); - - if( ! aResult.hasValue()) - { - // try old API wrapper - try - { - if( m_xOldModelAgg.is()) - aResult = m_xOldModelAgg->queryAggregation( aType ); - } - catch (const uno::Exception& ex) - { - ASSERT_EXCEPTION( ex ); - } - } - - return aResult; -} - -// ____ XCloneable ____ -Reference< util::XCloneable > SAL_CALL ChartModel::createClone() - throw (uno::RuntimeException) -{ - return Reference< util::XCloneable >( new ChartModel( *this )); -} - -// ____ XVisualObject ____ -void SAL_CALL ChartModel::setVisualAreaSize( ::sal_Int64 nAspect, const awt::Size& aSize ) - throw (lang::IllegalArgumentException, - embed::WrongStateException, - uno::Exception, - uno::RuntimeException) -{ - if( nAspect == embed::Aspects::MSOLE_CONTENT ) - { - ControllerLockGuard aLockGuard( this ); - bool bChanged = - (m_aVisualAreaSize.Width != aSize.Width || - m_aVisualAreaSize.Height != aSize.Height); - - // #i12587# support for shapes in chart - if ( bChanged ) - { - impl_adjustAdditionalShapesPositionAndSize( aSize ); - } - - m_aVisualAreaSize = aSize; - if( bChanged ) - setModified( sal_True ); - } - else - { - OSL_FAIL( "setVisualAreaSize: Aspect not implemented yet."); - } -} - -awt::Size SAL_CALL ChartModel::getVisualAreaSize( ::sal_Int64 nAspect ) - throw (lang::IllegalArgumentException, - embed::WrongStateException, - uno::Exception, - uno::RuntimeException) -{ - OSL_ENSURE( nAspect == embed::Aspects::MSOLE_CONTENT, - "No aspects other than content are supported" ); - (void)(nAspect); // avoid warning in non-debug builds - // other possible aspects are MSOLE_THUMBNAIL, MSOLE_ICON and MSOLE_DOCPRINT - - return m_aVisualAreaSize; -} - -embed::VisualRepresentation SAL_CALL ChartModel::getPreferredVisualRepresentation( ::sal_Int64 nAspect ) - throw (lang::IllegalArgumentException, - embed::WrongStateException, - uno::Exception, - uno::RuntimeException) -{ - OSL_ENSURE( nAspect == embed::Aspects::MSOLE_CONTENT, - "No aspects other than content are supported" ); - (void)(nAspect); // avoid warning in non-debug builds - - embed::VisualRepresentation aResult; - - try - { - Sequence< sal_Int8 > aMetafile; - - //get view from old api wrapper - Reference< datatransfer::XTransferable > xTransferable( - this->createInstance( CHART_VIEW_SERVICE_NAME ), uno::UNO_QUERY ); - if( xTransferable.is() ) - { - datatransfer::DataFlavor aDataFlavor( lcl_aGDIMetaFileMIMEType, - C2U( "GDIMetaFile" ), - ::getCppuType( (const uno::Sequence< sal_Int8 >*) 0 ) ); - - uno::Any aData( xTransferable->getTransferData( aDataFlavor ) ); - aData >>= aMetafile; - } - - aResult.Flavor.MimeType = lcl_aGDIMetaFileMIMEType; - aResult.Flavor.DataType = getCppuType( &aMetafile ); - - aResult.Data <<= aMetafile; - } - catch (const uno::Exception& ex) - { - ASSERT_EXCEPTION( ex ); - } - - return aResult; -} - -::sal_Int32 SAL_CALL ChartModel::getMapUnit( ::sal_Int64 nAspect ) - throw (uno::Exception, - uno::RuntimeException) -{ - OSL_ENSURE( nAspect == embed::Aspects::MSOLE_CONTENT, - "No aspects other than content are supported" ); - (void)(nAspect); // avoid warning in non-debug builds - return embed::EmbedMapUnits::ONE_100TH_MM; -} - -// ____ datatransfer::XTransferable ____ -uno::Any SAL_CALL ChartModel::getTransferData( const datatransfer::DataFlavor& aFlavor ) - throw (datatransfer::UnsupportedFlavorException, - io::IOException, - uno::RuntimeException) -{ - uno::Any aResult; - if( this->isDataFlavorSupported( aFlavor )) - { - try - { - //get view from old api wrapper - Reference< datatransfer::XTransferable > xTransferable( - this->createInstance( CHART_VIEW_SERVICE_NAME ), uno::UNO_QUERY ); - if( xTransferable.is() && - xTransferable->isDataFlavorSupported( aFlavor )) - { - aResult = xTransferable->getTransferData( aFlavor ); - } - } - catch (const uno::Exception& ex) - { - ASSERT_EXCEPTION( ex ); - } - } - else - { - throw datatransfer::UnsupportedFlavorException( - aFlavor.MimeType, static_cast< ::cppu::OWeakObject* >( this )); - } - - return aResult; -} - -Sequence< datatransfer::DataFlavor > SAL_CALL ChartModel::getTransferDataFlavors() - throw (uno::RuntimeException) -{ - uno::Sequence< datatransfer::DataFlavor > aRet(1); - - aRet[0] = datatransfer::DataFlavor( lcl_aGDIMetaFileMIMETypeHighContrast, - C2U( "GDIMetaFile" ), - ::getCppuType( (const uno::Sequence< sal_Int8 >*) NULL ) ); - - return aRet; -} - -::sal_Bool SAL_CALL ChartModel::isDataFlavorSupported( const datatransfer::DataFlavor& aFlavor ) - throw (uno::RuntimeException) -{ - return aFlavor.MimeType.equals(lcl_aGDIMetaFileMIMETypeHighContrast); -} - - - -namespace -{ -enum eServiceType -{ - SERVICE_DASH_TABLE, - SERVICE_GARDIENT_TABLE, - SERVICE_HATCH_TABLE, - SERVICE_BITMAP_TABLE, - SERVICE_TRANSP_GRADIENT_TABLE, - SERVICE_MARKER_TABLE, - SERVICE_NAMESPACE_MAP -}; - -typedef ::std::map< ::rtl::OUString, enum eServiceType > tServiceNameMap; -typedef ::comphelper::MakeMap< ::rtl::OUString, enum eServiceType > tMakeServiceNameMap; - -tServiceNameMap & lcl_getStaticServiceNameMap() -{ - static tServiceNameMap aServiceNameMap( - tMakeServiceNameMap - ( C2U( "com.sun.star.drawing.DashTable" ), SERVICE_DASH_TABLE ) - ( C2U( "com.sun.star.drawing.GradientTable" ), SERVICE_GARDIENT_TABLE ) - ( C2U( "com.sun.star.drawing.HatchTable" ), SERVICE_HATCH_TABLE ) - ( C2U( "com.sun.star.drawing.BitmapTable" ), SERVICE_BITMAP_TABLE ) - ( C2U( "com.sun.star.drawing.TransparencyGradientTable" ), SERVICE_TRANSP_GRADIENT_TABLE ) - ( C2U( "com.sun.star.drawing.MarkerTable" ), SERVICE_MARKER_TABLE ) - ( C2U( "com.sun.star.xml.NamespaceMap" ), SERVICE_NAMESPACE_MAP ) - ); - return aServiceNameMap; -} -} -// ____ XMultiServiceFactory ____ -Reference< uno::XInterface > SAL_CALL ChartModel::createInstance( const OUString& rServiceSpecifier ) - throw( uno::Exception, uno::RuntimeException ) -{ - uno::Reference< uno::XInterface > xResult; - tServiceNameMap & rMap = lcl_getStaticServiceNameMap(); - - tServiceNameMap::const_iterator aIt( rMap.find( rServiceSpecifier )); - if( aIt != rMap.end()) - { - switch( (*aIt).second ) - { - case SERVICE_DASH_TABLE: - case SERVICE_GARDIENT_TABLE: - case SERVICE_HATCH_TABLE: - case SERVICE_BITMAP_TABLE: - case SERVICE_TRANSP_GRADIENT_TABLE: - case SERVICE_MARKER_TABLE: - { - uno::Reference< lang::XMultiServiceFactory > xFact( - this->createInstance( CHART_VIEW_SERVICE_NAME ), uno::UNO_QUERY ); - if ( xFact.is() ) - { - return xFact->createInstance( rServiceSpecifier ); - } - } - break; - case SERVICE_NAMESPACE_MAP: - return Reference< uno::XInterface >( m_xXMLNamespaceMap ); - } - } - else - { - if( m_xOldModelAgg.is() ) - { - Any aAny = m_xOldModelAgg->queryAggregation( ::getCppuType((const uno::Reference< lang::XMultiServiceFactory >*)0) ); - uno::Reference< lang::XMultiServiceFactory > xOldModelFactory; - if( (aAny >>= xOldModelFactory) && xOldModelFactory.is() ) - { - return xOldModelFactory->createInstance( rServiceSpecifier ); - } - } - } - return 0; -} - -Reference< uno::XInterface > SAL_CALL ChartModel::createInstanceWithArguments( - const OUString& rServiceSpecifier , const Sequence< Any >& Arguments ) - throw( uno::Exception, uno::RuntimeException ) -{ - OSL_ENSURE( Arguments.getLength(), "createInstanceWithArguments: Warning: Arguments are ignored" ); - (void)(Arguments); // avoid warning in non-debug builds - return createInstance( rServiceSpecifier ); -} - -Sequence< OUString > SAL_CALL ChartModel::getAvailableServiceNames() - throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aResult; - - if( m_xOldModelAgg.is()) - { - Any aAny = m_xOldModelAgg->queryAggregation( ::getCppuType((const uno::Reference< lang::XMultiServiceFactory >*)0) ); - uno::Reference< lang::XMultiServiceFactory > xOldModelFactory; - if( (aAny >>= xOldModelFactory) && xOldModelFactory.is() ) - { - return xOldModelFactory->getAvailableServiceNames(); - } - } - return aResult; -} - -Reference< util::XNumberFormatsSupplier > ChartModel::impl_getNumberFormatsSupplier() -{ - if( !m_xNumberFormatsSupplier.is() ) - { - if( !m_xOwnNumberFormatsSupplier.is() ) - { - Reference< lang::XMultiServiceFactory > xFactory( m_xContext->getServiceManager(), uno::UNO_QUERY ); - m_apSvNumberFormatter.reset( new SvNumberFormatter( xFactory, LANGUAGE_SYSTEM ) ); - m_xOwnNumberFormatsSupplier = new SvNumberFormatsSupplierObj( m_apSvNumberFormatter.get() ); - //pOwnNumberFormatter->ChangeStandardPrec( 15 ); todo? - } - m_xNumberFormatsSupplier = m_xOwnNumberFormatsSupplier; - } - return m_xNumberFormatsSupplier; -} - -// ____ XUnoTunnel ___ -::sal_Int64 SAL_CALL ChartModel::getSomething( const Sequence< ::sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( SvNumberFormatsSupplierObj::getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - Reference< lang::XUnoTunnel > xTunnel( impl_getNumberFormatsSupplier(), uno::UNO_QUERY ); - if( xTunnel.is() ) - return xTunnel->getSomething( aIdentifier ); - } - return 0; -} - -// ____ XNumberFormatsSupplier ____ -uno::Reference< beans::XPropertySet > SAL_CALL ChartModel::getNumberFormatSettings() - throw (uno::RuntimeException) -{ - Reference< util::XNumberFormatsSupplier > xSupplier( impl_getNumberFormatsSupplier() ); - if( xSupplier.is() ) - return xSupplier->getNumberFormatSettings(); - return uno::Reference< beans::XPropertySet >(); -} - -uno::Reference< util::XNumberFormats > SAL_CALL ChartModel::getNumberFormats() - throw (uno::RuntimeException) -{ - Reference< util::XNumberFormatsSupplier > xSupplier( impl_getNumberFormatsSupplier() ); - if( xSupplier.is() ) - return xSupplier->getNumberFormats(); - return uno::Reference< util::XNumberFormats >(); -} - -// ____ XChild ____ -Reference< uno::XInterface > SAL_CALL ChartModel::getParent() - throw (uno::RuntimeException) -{ - return Reference< uno::XInterface >(m_xParent,uno::UNO_QUERY); -} - -void SAL_CALL ChartModel::setParent( const Reference< uno::XInterface >& Parent ) - throw (lang::NoSupportException, - uno::RuntimeException) -{ - if( Parent != m_xParent ) - m_xParent.set( Parent, uno::UNO_QUERY ); -} - -// ____ XDataSource ____ -uno::Sequence< Reference< chart2::data::XLabeledDataSequence > > SAL_CALL ChartModel::getDataSequences() - throw (uno::RuntimeException) -{ - Reference< chart2::data::XDataSource > xSource( - DataSourceHelper::getUsedData( uno::Reference< frame::XModel >(this) ) ); - if( xSource.is()) - return xSource->getDataSequences(); - - return uno::Sequence< Reference< chart2::data::XLabeledDataSequence > >(); -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/ChartModel.hxx b/chart2/source/model/main/ChartModel.hxx deleted file mode 100644 index 162ec013a..000000000 --- a/chart2/source/model/main/ChartModel.hxx +++ /dev/null @@ -1,616 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _CHART_MODEL_HXX -#define _CHART_MODEL_HXX - -#include "LifeTime.hxx" -#include "ServiceMacros.hxx" - -#include <com/sun/star/frame/XModel.hpp> -#include <com/sun/star/frame/XStorable2.hpp> -#include <com/sun/star/util/XModifiable.hpp> -#include <com/sun/star/util/XCloseable.hpp> -#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> -#include <com/sun/star/document/XUndoManagerSupplier.hpp> -#include <com/sun/star/document/XFilter.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/embed/XVisualObject.hpp> -#include <com/sun/star/document/XStorageBasedDocument.hpp> -#include <com/sun/star/lang/XUnoTunnel.hpp> -#include <com/sun/star/util/XNumberFormatsSupplier.hpp> -#include <com/sun/star/container/XChild.hpp> -#include <com/sun/star/chart2/data/XDataSource.hpp> -#include <com/sun/star/chart2/XChartTypeTemplate.hpp> -#include <com/sun/star/container/XNameContainer.hpp> - -// public API -#include <com/sun/star/chart2/data/XDataProvider.hpp> -#include <com/sun/star/chart2/data/XDataReceiver.hpp> - -#include <com/sun/star/chart2/XChartDocument.hpp> -#include <com/sun/star/chart2/XTitled.hpp> - -#include <com/sun/star/frame/XLoadable.hpp> -#include <com/sun/star/embed/XEmbeddedObject.hpp> -#include <com/sun/star/embed/XStorage.hpp> -#include <com/sun/star/datatransfer/XTransferable.hpp> - -#if ! defined(INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_21) -#define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_21 -#define COMPHELPER_IMPLBASE_INTERFACE_NUMBER 21 -#include "comphelper/implbase_var.hxx" -#endif -#include <osl/mutex.hxx> -#include <rtl/ref.hxx> -#include <cppuhelper/interfacecontainer.hxx> -#include <svtools/grfmgr.hxx> - -// for auto_ptr -#include <memory> - -class SvNumberFormatter; - -//============================================================================= - -namespace chart -{ - -namespace impl -{ - -// Note: needed for queryInterface (if it calls the base-class implementation) -typedef ::comphelper::WeakImplHelper21< -// ::com::sun::star::frame::XModel //comprehends XComponent (required interface), base of XChartDocument - ::com::sun::star::util::XCloseable //comprehends XCloseBroadcaster - ,::com::sun::star::frame::XStorable2 //(extension of XStorable) - ,::com::sun::star::util::XModifiable //comprehends XModifyBroadcaster (required interface) - ,::com::sun::star::lang::XServiceInfo - ,::com::sun::star::lang::XInitialization - ,::com::sun::star::chart2::XChartDocument // derived from XModel - ,::com::sun::star::chart2::data::XDataReceiver // public API - ,::com::sun::star::chart2::XTitled - ,::com::sun::star::frame::XLoadable - ,::com::sun::star::util::XCloneable - ,::com::sun::star::embed::XVisualObject - ,::com::sun::star::lang::XMultiServiceFactory - ,::com::sun::star::document::XStorageBasedDocument - ,::com::sun::star::lang::XUnoTunnel - ,::com::sun::star::util::XNumberFormatsSupplier - ,::com::sun::star::container::XChild - ,::com::sun::star::util::XModifyListener - ,::com::sun::star::datatransfer::XTransferable - ,::com::sun::star::document::XDocumentPropertiesSupplier - ,::com::sun::star::chart2::data::XDataSource - ,::com::sun::star::document::XUndoManagerSupplier - > - ChartModel_Base; -} - -class UndoManager; - -class ChartModel : public impl::ChartModel_Base -{ - -private: - mutable ::apphelper::CloseableLifeTimeManager m_aLifeTimeManager; - - mutable ::osl::Mutex m_aModelMutex; - sal_Bool volatile m_bReadOnly; - sal_Bool volatile m_bModified; - sal_Int32 m_nInLoad; - sal_Bool volatile m_bUpdateNotificationsPending; - - ::rtl::OUString m_aResource; - ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aMediaDescriptor; - ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentProperties > m_xDocumentProperties; - ::rtl::Reference< UndoManager > m_pUndoManager; - - ::cppu::OInterfaceContainerHelper m_aControllers; - ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController > m_xCurrentController; - sal_uInt16 m_nControllerLockCount; - - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > m_xOldModelAgg; - - ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xStorage; - //the content of this should be always synchronized with the current m_xViewWindow size. The variable is necessary to hold the information as long as no view window exists. - ::com::sun::star::awt::Size m_aVisualAreaSize; - ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xParent; - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XRangeHighlighter > m_xRangeHighlighter; - ::std::vector< GraphicObject > m_aGraphicObjectVector; - - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataProvider > m_xDataProvider; - /** is only valid if m_xDataProvider is set. If m_xDataProvider is set to an - external data provider this reference must be set to 0 - */ - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataProvider > m_xInternalDataProvider; - - ::com::sun::star::uno::Reference< com::sun::star::util::XNumberFormatsSupplier > - m_xOwnNumberFormatsSupplier; - ::com::sun::star::uno::Reference< com::sun::star::util::XNumberFormatsSupplier > - m_xNumberFormatsSupplier; - std::auto_ptr< SvNumberFormatter > m_apSvNumberFormatter; // #i113784# avoid memory leak - - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartTypeManager > - m_xChartTypeManager; - - // Diagram Access - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDiagram > - m_xDiagram; - - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XTitle > - m_xTitle; - - bool m_bIsDisposed; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > - m_xPageBackground; - - ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> m_xXMLNamespaceMap; - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyListener; - -private: - //private methods - - ::rtl::OUString impl_g_getLocation(); - - sal_Bool - impl_isControllerConnected( const com::sun::star::uno::Reference< - com::sun::star::frame::XController >& xController ); - - com::sun::star::uno::Reference< com::sun::star::frame::XController > - impl_getCurrentController() - throw( com::sun::star::uno::RuntimeException); - - void SAL_CALL - impl_notifyModifiedListeners() - throw( com::sun::star::uno::RuntimeException); - void SAL_CALL - impl_notifyCloseListeners() - throw( com::sun::star::uno::RuntimeException); - void SAL_CALL - impl_notifyStorageChangeListeners() - throw(::com::sun::star::uno::RuntimeException); - - void impl_killInternalData() throw( com::sun::star::util::CloseVetoException ); - - void impl_store( - const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rMediaDescriptor, - const ::com::sun::star::uno::Reference< - ::com::sun::star::embed::XStorage > & xStorage ); - void impl_load( - const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rMediaDescriptor, - const ::com::sun::star::uno::Reference< - ::com::sun::star::embed::XStorage >& xStorage ); - void impl_loadGraphics( - const ::com::sun::star::uno::Reference< - ::com::sun::star::embed::XStorage >& xStorage ); - ::com::sun::star::uno::Reference< - ::com::sun::star::document::XFilter > - impl_createFilter( const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue > & rMediaDescriptor ); - - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartTypeTemplate > impl_createDefaultChartTypeTemplate(); - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSource > impl_createDefaultData(); - - void impl_adjustAdditionalShapesPositionAndSize( - const ::com::sun::star::awt::Size& aVisualAreaSize ); - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier > - impl_getNumberFormatsSupplier(); - -public: - //no default constructor - ChartModel(::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > const & xContext); - explicit ChartModel( const ChartModel & rOther ); - virtual ~ChartModel(); - - //----------------------------------------------------------------- - // ::com::sun::star::lang::XServiceInfo - //----------------------------------------------------------------- - - APPHELPER_XSERVICEINFO_DECL() - APPHELPER_SERVICE_FACTORY_HELPER(ChartModel) - - //----------------------------------------------------------------- - // ::com::sun::star::lang::XInitialization - //----------------------------------------------------------------- - virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) - throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::frame::XModel (required interface) - //----------------------------------------------------------------- - - virtual sal_Bool SAL_CALL - attachResource( const ::rtl::OUString& rURL - , const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::uno::RuntimeException); - - virtual ::rtl::OUString SAL_CALL - getURL() throw (::com::sun::star::uno::RuntimeException); - - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL - getArgs() throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - connectController( const ::com::sun::star::uno::Reference< - ::com::sun::star::frame::XController >& xController ) - throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - disconnectController( const ::com::sun::star::uno::Reference< - ::com::sun::star::frame::XController >& xController ) - throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - lockControllers() throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - unlockControllers() throw (::com::sun::star::uno::RuntimeException); - - virtual sal_Bool SAL_CALL - hasControllersLocked() - throw (::com::sun::star::uno::RuntimeException); - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController > SAL_CALL - getCurrentController() - throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - setCurrentController( const ::com::sun::star::uno::Reference< - ::com::sun::star::frame::XController >& xController ) - throw (::com::sun::star::container::NoSuchElementException - , ::com::sun::star::uno::RuntimeException); - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL - getCurrentSelection() - throw (::com::sun::star::uno::RuntimeException); - - - //----------------------------------------------------------------- - // ::com::sun::star::lang::XComponent (base of XModel) - //----------------------------------------------------------------- - virtual void SAL_CALL - dispose() throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - addEventListener( const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XEventListener > & xListener ) - throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - removeEventListener( const ::com::sun::star::uno::Reference< - ::com::sun::star::lang::XEventListener > & xListener ) - throw (::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::util::XCloseable - //----------------------------------------------------------------- - virtual void SAL_CALL - close( sal_Bool bDeliverOwnership ) - throw(::com::sun::star::util::CloseVetoException, - ::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::util::XCloseBroadcaster (base of XCloseable) - //----------------------------------------------------------------- - virtual void SAL_CALL - addCloseListener( const ::com::sun::star::uno::Reference< - ::com::sun::star::util::XCloseListener > & xListener ) - throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - removeCloseListener( const ::com::sun::star::uno::Reference< - ::com::sun::star::util::XCloseListener > & xListener ) - throw (::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::frame::XStorable2 (extension of XStorable) - //----------------------------------------------------------------- - virtual void SAL_CALL storeSelf( - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::frame::XStorable (required interface) - //----------------------------------------------------------------- - virtual sal_Bool SAL_CALL - hasLocation() throw (::com::sun::star::uno::RuntimeException); - - virtual ::rtl::OUString SAL_CALL - getLocation() throw (::com::sun::star::uno::RuntimeException); - - virtual sal_Bool SAL_CALL - isReadonly() throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - store() throw (::com::sun::star::io::IOException - , ::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - storeAsURL( const ::rtl::OUString& rURL - , const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::io::IOException - , ::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - storeToURL( const ::rtl::OUString& rURL - , const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::io::IOException - , ::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::util::XModifiable (required interface) - //----------------------------------------------------------------- - virtual sal_Bool SAL_CALL - isModified() throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - setModified( sal_Bool bModified ) - throw (::com::sun::star::beans::PropertyVetoException - , ::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::util::XModifyBroadcaster (base of XModifiable) - //----------------------------------------------------------------- - virtual void SAL_CALL - addModifyListener( const ::com::sun::star::uno::Reference< - ::com::sun::star::util::XModifyListener >& xListener ) - throw (::com::sun::star::uno::RuntimeException); - - virtual void SAL_CALL - removeModifyListener( const ::com::sun::star::uno::Reference< - ::com::sun::star::util::XModifyListener >& xListener ) - 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); - - // ____ datatransferable::XTransferable ____ - virtual ::com::sun::star::uno::Any SAL_CALL getTransferData( - const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) - throw (::com::sun::star::datatransfer::UnsupportedFlavorException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors() - throw (::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL isDataFlavorSupported( - const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) - throw (::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // lang::XTypeProvider (overloaded method of WeakImplHelper) - //----------------------------------------------------------------- - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL - getTypes() throw (::com::sun::star::uno::RuntimeException); - - // ____ document::XDocumentPropertiesSupplier ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentProperties > SAL_CALL - getDocumentProperties( ) throw (::com::sun::star::uno::RuntimeException); - - // ____ document::XUndoManagerSupplier ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::document::XUndoManager > SAL_CALL - getUndoManager( ) throw (::com::sun::star::uno::RuntimeException); - - //----------------------------------------------------------------- - // ::com::sun::star::chart2::XChartDocument - //----------------------------------------------------------------- - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XDiagram > SAL_CALL - getFirstDiagram() throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setFirstDiagram( - const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDiagram >& xDiagram ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL - createInternalDataProvider( sal_Bool bCloneExistingData ) - throw (::com::sun::star::util::CloseVetoException, - ::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL hasInternalDataProvider() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataProvider > SAL_CALL - getDataProvider() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL - setChartTypeManager( const ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XChartTypeManager >& xNewManager ) - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartTypeManager > SAL_CALL - getChartTypeManager() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL - getPageBackground() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XDataReceiver (public API) ____ - virtual void SAL_CALL - attachDataProvider( const ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::data::XDataProvider >& xProvider ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setArguments( - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArguments ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getUsedRangeRepresentations() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSource > SAL_CALL getUsedData() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL attachNumberFormatsSupplier( const ::com::sun::star::uno::Reference< - ::com::sun::star::util::XNumberFormatsSupplier >& xSupplier ) - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XRangeHighlighter > SAL_CALL getRangeHighlighter() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XTitled ____ - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XTitle > SAL_CALL getTitleObject() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setTitleObject( const ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XTitle >& Title ) - throw (::com::sun::star::uno::RuntimeException); - - // ____ XInterface (for old API wrapper) ____ - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) - throw (::com::sun::star::uno::RuntimeException); - - // ____ XLoadable ____ - virtual void SAL_CALL initNew() - throw (::com::sun::star::frame::DoubleInitializationException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL load( const ::com::sun::star::uno::Sequence< - ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::frame::DoubleInitializationException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XVisualObject ____ - virtual void SAL_CALL setVisualAreaSize( - ::sal_Int64 nAspect, - const ::com::sun::star::awt::Size& aSize ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::embed::WrongStateException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::awt::Size SAL_CALL getVisualAreaSize( - ::sal_Int64 nAspect ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::embed::WrongStateException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( - ::sal_Int64 nAspect ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::embed::WrongStateException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual ::sal_Int32 SAL_CALL getMapUnit( - ::sal_Int64 nAspect ) - throw (::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - - // ____ XMultiServiceFactory ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL - createInstance( const ::rtl::OUString& aServiceSpecifier ) - throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL - createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier - , const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Arguments ) - throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL - getAvailableServiceNames() throw (::com::sun::star::uno::RuntimeException); - - // ____ XStorageBasedDocument ____ - virtual void SAL_CALL loadFromStorage( - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::frame::DoubleInitializationException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL storeToStorage( - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, - const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rMediaDescriptor ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL switchToStorage( - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ) - throw (::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::io::IOException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > SAL_CALL getDocumentStorage() - throw (::com::sun::star::io::IOException, - ::com::sun::star::uno::Exception, - ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL addStorageChangeListener( - const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageChangeListener >& xListener ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL removeStorageChangeListener( - const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageChangeListener >& xListener ) - throw (::com::sun::star::uno::RuntimeException); - - // for SvNumberFormatsSupplierObj - // ____ XUnoTunnel ___ - virtual ::sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aIdentifier ) - throw (::com::sun::star::uno::RuntimeException); - - // ____ XNumberFormatsSupplier ____ - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > SAL_CALL getNumberFormatSettings() - throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::util::XNumberFormats > SAL_CALL getNumberFormats() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XChild ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setParent( - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) - throw (::com::sun::star::lang::NoSupportException, - ::com::sun::star::uno::RuntimeException); - - // ____ XDataSource ____ allows access to the curently used data and data ranges - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences() - throw (::com::sun::star::uno::RuntimeException); -}; - -} // namespace chart - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/ChartModel_Persistence.cxx b/chart2/source/model/main/ChartModel_Persistence.cxx deleted file mode 100644 index 861c25a64..000000000 --- a/chart2/source/model/main/ChartModel_Persistence.cxx +++ /dev/null @@ -1,861 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" - -#include "ChartModel.hxx" -#include "MediaDescriptorHelper.hxx" -#include "ChartDebugTrace.hxx" -#include "macros.hxx" -#include "ChartViewHelper.hxx" -#include "ChartModelHelper.hxx" -#include "AxisHelper.hxx" -#include "ThreeDHelper.hxx" - -#include <com/sun/star/chart2/LegendPosition.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/document/XExporter.hpp> -#include <com/sun/star/document/XImporter.hpp> -#include <com/sun/star/document/XFilter.hpp> -#include <com/sun/star/drawing/FillStyle.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/drawing/ProjectionMode.hpp> -#include <com/sun/star/embed/ElementModes.hpp> -#include <com/sun/star/embed/XStorage.hpp> -#include <com/sun/star/lang/XSingleServiceFactory.hpp> -#include <com/sun/star/sheet/XSpreadsheetDocument.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/io/XSeekable.hpp> - -#include <ucbhelper/content.hxx> -#include <unotools/ucbstreamhelper.hxx> -#include <vcl/cvtgrf.hxx> -#include <comphelper/storagehelper.hxx> -#include <vcl/svapp.hxx> - -#include <algorithm> -#include <functional> - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::rtl::OUString; -using ::osl::MutexGuard; - -namespace -{ -struct lcl_PropNameEquals : public ::std::unary_function< beans::PropertyValue, bool > -{ - lcl_PropNameEquals( const OUString & rStrToCompareWith ) : - m_aStr( rStrToCompareWith ) - {} - bool operator() ( const beans::PropertyValue & rProp ) - { - return rProp.Name.equals( m_aStr ); - } -private: - OUString m_aStr; -}; - -template< typename T > -T lcl_getProperty( - const Sequence< beans::PropertyValue > & rMediaDescriptor, - const OUString & rPropName ) -{ - T aResult; - if( rMediaDescriptor.getLength()) - { - OUString aPropName( rPropName ); - const beans::PropertyValue * pIt = rMediaDescriptor.getConstArray(); - const beans::PropertyValue * pEndIt = pIt + + rMediaDescriptor.getLength(); - pIt = ::std::find_if( pIt, pEndIt, lcl_PropNameEquals( aPropName )); - if( pIt != pEndIt ) - (*pIt).Value >>= aResult; - } - return aResult; -} - -void lcl_addStorageToMediaDescriptor( - Sequence< beans::PropertyValue > & rOutMD, - const Reference< embed::XStorage > & xStorage ) -{ - rOutMD.realloc( rOutMD.getLength() + 1 ); - rOutMD[rOutMD.getLength() - 1] = beans::PropertyValue( - C2U("Storage"), -1, uno::makeAny( xStorage ), beans::PropertyState_DIRECT_VALUE ); -} - -Reference< embed::XStorage > lcl_createStorage( - const OUString & rURL, - const Reference< uno::XComponentContext > & xContext, - const Sequence< beans::PropertyValue > & rMediaDescriptor ) -{ - // create new storage - Reference< embed::XStorage > xStorage; - if( !xContext.is()) - return xStorage; - - try - { - Reference< io::XStream > xStream( - ::ucbhelper::Content( rURL, Reference< ::com::sun::star::ucb::XCommandEnvironment >()).openStream(), - uno::UNO_QUERY ); - - Reference< lang::XSingleServiceFactory > xStorageFact( - xContext->getServiceManager()->createInstanceWithContext( - C2U("com.sun.star.embed.StorageFactory"), - xContext ), - uno::UNO_QUERY_THROW ); - Sequence< uno::Any > aStorageArgs( 3 ); - aStorageArgs[0] <<= xStream; - aStorageArgs[1] <<= embed::ElementModes::READWRITE; - aStorageArgs[2] <<= rMediaDescriptor; - xStorage.set( - xStorageFact->createInstanceWithArguments( aStorageArgs ), uno::UNO_QUERY_THROW ); - OSL_ENSURE( xStorage.is(), "No Storage" ); - } - catch( ::com::sun::star::ucb::ContentCreationException & rEx ) - { - ASSERT_EXCEPTION( rEx ); - } - - return xStorage; -} - -} // anonymous namespace - -namespace chart -{ - -Reference< document::XFilter > ChartModel::impl_createFilter( - const Sequence< beans::PropertyValue > & rMediaDescriptor ) -{ - Reference< document::XFilter > xFilter; - - // find FilterName in MediaDescriptor - OUString aFilterName( - lcl_getProperty< OUString >( rMediaDescriptor, OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterName" )))); - - // if FilterName was found, get Filter from factory - if( aFilterName.getLength() > 0 ) - { - try - { - Reference< container::XNameAccess > xFilterFact( - m_xContext->getServiceManager()->createInstanceWithContext( - C2U( "com.sun.star.document.FilterFactory" ), m_xContext ), - uno::UNO_QUERY_THROW ); - uno::Any aFilterProps( xFilterFact->getByName( aFilterName )); - Sequence< beans::PropertyValue > aProps; - - if( aFilterProps.hasValue() && - (aFilterProps >>= aProps)) - { - OUString aFilterServiceName( - lcl_getProperty< OUString >( aProps, OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterService" )))); - - if( aFilterServiceName.getLength()) - { - xFilter.set( - m_xContext->getServiceManager()->createInstanceWithContext( - aFilterServiceName, m_xContext ), uno::UNO_QUERY_THROW ); - OSL_TRACE( "Filter found for service %s", U2C( aFilterServiceName )); - } - } - } - catch( uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - OSL_ENSURE( xFilter.is(), "Filter not found via factory" ); - } - - // fall-back: create XML-Filter - if( ! xFilter.is()) - { - OSL_TRACE( "No FilterName passed in MediaDescriptor" ); - xFilter.set( - m_xContext->getServiceManager()->createInstanceWithContext( - C2U("com.sun.star.comp.chart2.XMLFilter"), m_xContext ), - uno::UNO_QUERY_THROW ); - } - - return xFilter; -} - -//----------------------------------------------------------------- -// frame::XStorable2 -//----------------------------------------------------------------- - -void SAL_CALL ChartModel::storeSelf( const Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw (lang::IllegalArgumentException, - io::IOException, - uno::RuntimeException) -{ - // only some parameters are allowed (see also SfxBaseModel) - // "VersionComment", "Author", "InteractionHandler", "StatusIndicator" - // However, they are ignored here. They would become interesting when - // charts support a standalone format again. - impl_store( rMediaDescriptor, m_xStorage ); -} - -//----------------------------------------------------------------- -// frame::XStorable (base of XStorable2) -//----------------------------------------------------------------- -sal_Bool SAL_CALL ChartModel::hasLocation() - throw(uno::RuntimeException) -{ - //@todo guard - return m_aResource.getLength()!=0; -} - -::rtl::OUString SAL_CALL ChartModel::getLocation() - throw(uno::RuntimeException) -{ - return impl_g_getLocation(); -} - -sal_Bool SAL_CALL ChartModel::isReadonly() - throw(uno::RuntimeException) -{ - //@todo guard - return m_bReadOnly; -} - -void SAL_CALL ChartModel::store() - throw(io::IOException, - uno::RuntimeException) -{ - apphelper::LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall(sal_True)) //start LongLastingCall - return; //behave passive if already disposed or closed or throw exception @todo? - - ::rtl::OUString aLocation = m_aResource; - - if( aLocation.getLength() == 0 ) - throw io::IOException( C2U( "no location specified" ), static_cast< ::cppu::OWeakObject* >(this)); - //@todo check wether aLocation is something like private:factory... - if( m_bReadOnly ) - throw io::IOException( C2U( "document is read only" ), static_cast< ::cppu::OWeakObject* >(this)); - - aGuard.clear(); - - // store - impl_store( m_aMediaDescriptor, m_xStorage ); -} - -void SAL_CALL ChartModel::storeAsURL( - const ::rtl::OUString& rURL, - const uno::Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw(io::IOException, uno::RuntimeException) -{ - apphelper::LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall(sal_True)) //start LongLastingCall - return; //behave passive if already disposed or closed or throw exception @todo? - - apphelper::MediaDescriptorHelper aMediaDescriptorHelper(rMediaDescriptor); - uno::Sequence< beans::PropertyValue > aReducedMediaDescriptor( - aMediaDescriptorHelper.getReducedForModel() ); - - m_bReadOnly = sal_False; - aGuard.clear(); - - // create new storage - Reference< embed::XStorage > xStorage( lcl_createStorage( rURL, m_xContext, aReducedMediaDescriptor )); - - if( xStorage.is()) - { - impl_store( aReducedMediaDescriptor, xStorage ); - attachResource( rURL, aReducedMediaDescriptor ); - } -} - -void SAL_CALL ChartModel::storeToURL( - const ::rtl::OUString& rURL, - const uno::Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw(io::IOException, - uno::RuntimeException) -{ - apphelper::LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall(sal_True)) //start LongLastingCall - return; //behave passive if already disposed or closed or throw exception @todo? - //do not change the internal state of the document here - //... - - aGuard.clear(); - - apphelper::MediaDescriptorHelper aMediaDescriptorHelper(rMediaDescriptor); - uno::Sequence< beans::PropertyValue > aReducedMediaDescriptor( - aMediaDescriptorHelper.getReducedForModel() ); - - if( rURL.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("private:stream"))) - { - try - { - if( m_xContext.is() && aMediaDescriptorHelper.ISSET_OutputStream ) - { - Reference< lang::XMultiServiceFactory > xFact( m_xContext->getServiceManager(), uno::UNO_QUERY_THROW ); - Reference< io::XStream > xStream( - xFact->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.TempFile"))), uno::UNO_QUERY_THROW ); - Reference< io::XInputStream > xInputStream( xStream->getInputStream()); - - Reference< embed::XStorage > xStorage( - ::comphelper::OStorageHelper::GetStorageFromStream( xStream, embed::ElementModes::READWRITE, xFact )); - if( xStorage.is()) - { - impl_store( aReducedMediaDescriptor, xStorage ); - - Reference< io::XSeekable > xSeekable( xStream, uno::UNO_QUERY_THROW ); - xSeekable->seek( 0 ); - ::comphelper::OStorageHelper::CopyInputToOutput( xInputStream, aMediaDescriptorHelper.OutputStream ); - } - } - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - } - else - { - // create new storage - Reference< embed::XStorage > xStorage( lcl_createStorage( rURL, m_xContext, aReducedMediaDescriptor )); - - if( xStorage.is()) - impl_store( aReducedMediaDescriptor, xStorage ); - } -} - -void ChartModel::impl_store( - const Sequence< beans::PropertyValue >& rMediaDescriptor, - const Reference< embed::XStorage > & xStorage ) -{ - Reference< document::XFilter > xFilter( impl_createFilter( rMediaDescriptor)); - if( xFilter.is() && xStorage.is()) - { - Sequence< beans::PropertyValue > aMD( rMediaDescriptor ); - lcl_addStorageToMediaDescriptor( aMD, xStorage ); - try - { - Reference< document::XExporter > xExporter( xFilter, uno::UNO_QUERY_THROW ); - xExporter->setSourceDocument( Reference< lang::XComponent >( this )); - xFilter->filter( aMD ); - } - catch( uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - } - else - { - OSL_FAIL( "No filter" ); - } - - setModified( sal_False ); - - //#i66865# - //for data change notification during chart is not loaded: - //notify parent data provider after saving thus the parent document can store - //the ranges for which a load and update of the chart will be necessary - Reference< beans::XPropertySet > xPropSet( m_xParent, uno::UNO_QUERY ); - if ( !hasInternalDataProvider() && xPropSet.is() ) - { - apphelper::MediaDescriptorHelper aMDHelper(rMediaDescriptor); - try - { - xPropSet->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "SavedObject" )), - uno::makeAny( aMDHelper.HierarchicalDocumentName ) ); - } - catch ( uno::Exception& ) - { - } - } -} - -//----------------------------------------------------------------- -// frame::XLoadable -//----------------------------------------------------------------- -void SAL_CALL ChartModel::initNew() - throw (frame::DoubleInitializationException, - io::IOException, - uno::Exception, - uno::RuntimeException) -{ - lockControllers(); - createInternalDataProvider( sal_False ); - try - { - // create default chart - Reference< chart2::XChartTypeTemplate > xTemplate( impl_createDefaultChartTypeTemplate() ); - if( xTemplate.is()) - { - try - { - Reference< chart2::data::XDataSource > xDataSource( impl_createDefaultData() ); - Sequence< beans::PropertyValue > aParam; - - bool bSupportsCategories = xTemplate->supportsCategories(); - if( bSupportsCategories ) - { - aParam.realloc( 1 ); - aParam[0] = beans::PropertyValue( C2U("HasCategories"), -1, uno::makeAny( true ), - beans::PropertyState_DIRECT_VALUE ); - } - - Reference< chart2::XDiagram > xDiagram( xTemplate->createDiagramByDataSource( xDataSource, aParam ) ); - - setFirstDiagram( xDiagram ); - - bool bIsRTL = Application::GetSettings().GetLayoutRTL(); - //reverse x axis for rtl charts - if( bIsRTL ) - AxisHelper::setRTLAxisLayout( AxisHelper::getCoordinateSystemByIndex( xDiagram, 0 ) ); - - // create and attach legend - Reference< chart2::XLegend > xLegend( - m_xContext->getServiceManager()->createInstanceWithContext( - C2U( "com.sun.star.chart2.Legend" ), m_xContext ), uno::UNO_QUERY_THROW ); - Reference< beans::XPropertySet > xLegendProperties( xLegend, uno::UNO_QUERY ); - if( xLegendProperties.is() ) - { - xLegendProperties->setPropertyValue( C2U( "FillStyle" ), uno::makeAny( drawing::FillStyle_NONE )); - xLegendProperties->setPropertyValue( C2U( "LineStyle" ), uno::makeAny( drawing::LineStyle_NONE )); - xLegendProperties->setPropertyValue( C2U( "LineColor" ), uno::makeAny( static_cast< sal_Int32 >( 0xb3b3b3 ) )); // gray30 - xLegendProperties->setPropertyValue( C2U( "FillColor" ), uno::makeAny( static_cast< sal_Int32 >( 0xe6e6e6 ) ) ); // gray10 - - if( bIsRTL ) - xLegendProperties->setPropertyValue( C2U( "AnchorPosition" ), uno::makeAny( chart2::LegendPosition_LINE_START )); - } - if(xDiagram.is()) - xDiagram->setLegend( xLegend ); - - // set simple 3D look - Reference< beans::XPropertySet > xDiagramProperties( xDiagram, uno::UNO_QUERY ); - if( xDiagramProperties.is() ) - { - xDiagramProperties->setPropertyValue( C2U("RightAngledAxes"), uno::makeAny( sal_True )); - xDiagramProperties->setPropertyValue( C2U("D3DScenePerspective"), uno::makeAny( drawing::ProjectionMode_PARALLEL )); - ThreeDHelper::setScheme( xDiagram, ThreeDLookScheme_Realistic ); - } - - //set some new 'defaults' for wall and floor - if( xDiagram.is() ) - { - Reference< beans::XPropertySet > xWall( xDiagram->getWall() ); - if( xWall.is() ) - { - xWall->setPropertyValue( C2U( "LineStyle" ), uno::makeAny( drawing::LineStyle_SOLID ) ); - xWall->setPropertyValue( C2U( "FillStyle" ), uno::makeAny( drawing::FillStyle_NONE ) ); - xWall->setPropertyValue( C2U( "LineColor" ), uno::makeAny( static_cast< sal_Int32 >( 0xb3b3b3 ) ) ); // gray30 - xWall->setPropertyValue( C2U( "FillColor" ), uno::makeAny( static_cast< sal_Int32 >( 0xe6e6e6 ) ) ); // gray10 - } - Reference< beans::XPropertySet > xFloor( xDiagram->getFloor() ); - if( xFloor.is() ) - { - xFloor->setPropertyValue( C2U( "LineStyle" ), uno::makeAny( drawing::LineStyle_NONE ) ); - xFloor->setPropertyValue( C2U( "FillStyle" ), uno::makeAny( drawing::FillStyle_SOLID ) ); - xFloor->setPropertyValue( C2U( "LineColor" ), uno::makeAny( static_cast< sal_Int32 >( 0xb3b3b3 ) ) ); // gray30 - xFloor->setPropertyValue( C2U( "FillColor" ), uno::makeAny( static_cast< sal_Int32 >( 0xcccccc ) ) ); // gray20 - } - - } - } - catch( uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - } - ChartModelHelper::setIncludeHiddenCells( false, this ); - } - catch( uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - setModified( sal_False ); - unlockControllers(); - -#if OSL_DEBUG_LEVEL >= CHART_TRACE_OSL_DEBUG_LEVEL - OSL_TRACE( "ChartModel::initNew: Showing ChartDocument structure" ); - OSL_TRACE( "----------------------------------------------------" ); - debug::ChartDebugTraceDocument( Reference< chart2::XChartDocument >( this )); -#endif -} - -void SAL_CALL ChartModel::load( - const Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw (frame::DoubleInitializationException, - io::IOException, - uno::Exception, - uno::RuntimeException) -{ - Reference< embed::XStorage > xStorage; - OUString aURL; - try - { - apphelper::MediaDescriptorHelper aMDHelper( rMediaDescriptor ); - if( aMDHelper.ISSET_Storage ) - { - xStorage = aMDHelper.Storage; - } - else if( aMDHelper.ISSET_Stream || - aMDHelper.ISSET_InputStream ) - { - if( aMDHelper.ISSET_FilterName && - (aMDHelper.FilterName.equals( C2U("StarChart 5.0")) || - aMDHelper.FilterName.equals( C2U("StarChart 4.0")) || - aMDHelper.FilterName.equals( C2U("StarChart 3.0")) )) - { - attachResource( aMDHelper.URL, rMediaDescriptor ); - impl_load( rMediaDescriptor, 0 ); // cannot create a storage from binary streams, but I do not need the storage here anyhow - m_bReadOnly = sal_True; - return; - } - - Reference< lang::XSingleServiceFactory > xStorageFact( - m_xContext->getServiceManager()->createInstanceWithContext( - C2U("com.sun.star.embed.StorageFactory"), - m_xContext ), - uno::UNO_QUERY_THROW ); - - if( aMDHelper.ISSET_Stream ) - { - // convert XStream to XStorage via the storage factory - Sequence< uno::Any > aStorageArgs( 2 ); - aStorageArgs[0] <<= aMDHelper.Stream; - // todo: check if stream is read-only - aStorageArgs[1] <<= (embed::ElementModes::READ); //WRITE | embed::ElementModes::NOCREATE); - - xStorage.set( xStorageFact->createInstanceWithArguments( aStorageArgs ), - uno::UNO_QUERY_THROW ); - } - else - { - OSL_ASSERT( aMDHelper.ISSET_InputStream ); - // convert XInputStream to XStorage via the storage factory - Sequence< uno::Any > aStorageArgs( 2 ); - aStorageArgs[0] <<= aMDHelper.InputStream; - aStorageArgs[1] <<= (embed::ElementModes::READ); - - xStorage.set( xStorageFact->createInstanceWithArguments( aStorageArgs ), - uno::UNO_QUERY_THROW ); - } - } - - if( aMDHelper.ISSET_URL ) - aURL = aMDHelper.URL; - } - catch( uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } - - if( xStorage.is()) - { - attachResource( aURL, rMediaDescriptor ); - impl_load( rMediaDescriptor, xStorage ); - } -} - -void ChartModel::impl_load( - const Sequence< beans::PropertyValue >& rMediaDescriptor, - const Reference< embed::XStorage >& xStorage ) -{ - { - MutexGuard aGuard( m_aModelMutex ); - m_nInLoad++; - } - - Reference< document::XFilter > xFilter( impl_createFilter( rMediaDescriptor )); - - if( xFilter.is()) - { - Reference< document::XImporter > xImporter( xFilter, uno::UNO_QUERY_THROW ); - xImporter->setTargetDocument( this ); - Sequence< beans::PropertyValue > aMD( rMediaDescriptor ); - lcl_addStorageToMediaDescriptor( aMD, xStorage ); - - xFilter->filter( aMD ); - xFilter.clear(); - } - else - { - OSL_FAIL( "loadFromStorage cannot create filter" ); - } - - if( xStorage.is() ) - impl_loadGraphics( xStorage ); - - setModified( sal_False ); - - // switchToStorage without notifying listeners (which shouldn't exist at - // this time, anyway) - m_xStorage = xStorage; - - { - MutexGuard aGuard( m_aModelMutex ); - m_nInLoad--; - } -} - -void ChartModel::impl_loadGraphics( - const Reference< embed::XStorage >& xStorage ) -{ - try - { - const Reference< embed::XStorage >& xGraphicsStorage( - xStorage->openStorageElement( C2U( "Pictures" ), - embed::ElementModes::READ ) ); - - if( xGraphicsStorage.is() ) - { - const uno::Sequence< ::rtl::OUString > aElementNames( - xGraphicsStorage->getElementNames() ); - - for( int i = 0; i < aElementNames.getLength(); ++i ) - { - if( xGraphicsStorage->isStreamElement( aElementNames[ i ] ) ) - { - uno::Reference< io::XStream > xElementStream( - xGraphicsStorage->openStreamElement( - aElementNames[ i ], - embed::ElementModes::READ ) ); - - if( xElementStream.is() ) - { - std::auto_ptr< SvStream > apIStm( - ::utl::UcbStreamHelper::CreateStream( - xElementStream, true ) ); - - if( apIStm.get() ) - { - Graphic aGraphic; - - if( !GraphicConverter::Import( - *apIStm.get(), - aGraphic ) ) - { - m_aGraphicObjectVector.push_back( aGraphic ); - } - } - } - } - } - } - } - catch ( uno::Exception& ) - { - } -} - -//----------------------------------------------------------------- -// util::XModifiable -//----------------------------------------------------------------- -void SAL_CALL ChartModel::impl_notifyModifiedListeners() - throw( uno::RuntimeException) -{ - { - MutexGuard aGuard( m_aModelMutex ); - m_bUpdateNotificationsPending = false; - } - - //always notify the view first! - ChartViewHelper::setViewToDirtyState( this ); - - ::cppu::OInterfaceContainerHelper* pIC = m_aLifeTimeManager.m_aListenerContainer - .getContainer( ::getCppuType((const uno::Reference< util::XModifyListener >*)0) ); - if( pIC ) - { - lang::EventObject aEvent( static_cast< lang::XComponent*>(this) ); - ::cppu::OInterfaceIteratorHelper aIt( *pIC ); - while( aIt.hasMoreElements() ) - { - uno::Reference< util::XModifyListener > xListener( aIt.next(), uno::UNO_QUERY ); - if( xListener.is() ) - xListener->modified( aEvent ); - } - } -} - -sal_Bool SAL_CALL ChartModel::isModified() - throw(uno::RuntimeException) -{ - //@todo guard - return m_bModified; -} - -void SAL_CALL ChartModel::setModified( sal_Bool bModified ) - throw(beans::PropertyVetoException, - uno::RuntimeException) -{ - apphelper::LifeTimeGuard aGuard(m_aLifeTimeManager); - if(!aGuard.startApiCall())//@todo ? is this a long lasting call?? - return; //behave passive if already disposed or closed or throw exception @todo? - m_bModified = bModified; - - if( m_nControllerLockCount > 0 ) - { - m_bUpdateNotificationsPending = true; - return;//don't call listeners if controllers are locked - } - aGuard.clear(); - - if(bModified) - impl_notifyModifiedListeners(); -} - -//----------------------------------------------------------------- -// util::XModifyBroadcaster (base of XModifiable) -//----------------------------------------------------------------- -void SAL_CALL ChartModel::addModifyListener( - const uno::Reference< util::XModifyListener >& xListener ) - throw(uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed() ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.addInterface( - ::getCppuType((const uno::Reference< util::XModifyListener >*)0), xListener ); -} - -void SAL_CALL ChartModel::removeModifyListener( - const uno::Reference< util::XModifyListener >& xListener ) - throw(uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed(false) ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.removeInterface( - ::getCppuType((const uno::Reference< util::XModifyListener >*)0), xListener ); -} - -//----------------------------------------------------------------- -// util::XModifyListener -//----------------------------------------------------------------- -void SAL_CALL ChartModel::modified( const lang::EventObject& ) - throw (uno::RuntimeException) -{ - if( m_nInLoad == 0 ) - setModified( sal_True ); -} - -//----------------------------------------------------------------- -// lang::XEventListener (base of util::XModifyListener) -//----------------------------------------------------------------- -void SAL_CALL ChartModel::disposing( const lang::EventObject& ) - throw (uno::RuntimeException) -{ - // child was disposed -- should not happen from outside -} - - -//----------------------------------------------------------------- -// document::XStorageBasedDocument -//----------------------------------------------------------------- -void SAL_CALL ChartModel::loadFromStorage( - const Reference< embed::XStorage >& xStorage, - const Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw (lang::IllegalArgumentException, - frame::DoubleInitializationException, - io::IOException, - uno::Exception, - uno::RuntimeException) -{ - attachResource( OUString(), rMediaDescriptor ); - impl_load( rMediaDescriptor, xStorage ); -} - -void SAL_CALL ChartModel::storeToStorage( - const Reference< embed::XStorage >& xStorage, - const Sequence< beans::PropertyValue >& rMediaDescriptor ) - throw (lang::IllegalArgumentException, - io::IOException, - uno::Exception, - uno::RuntimeException) -{ - impl_store( rMediaDescriptor, xStorage ); -} - -void SAL_CALL ChartModel::switchToStorage( const Reference< embed::XStorage >& xStorage ) - throw (lang::IllegalArgumentException, - io::IOException, - uno::Exception, - uno::RuntimeException) -{ - m_xStorage = xStorage; - impl_notifyStorageChangeListeners(); -} - -Reference< embed::XStorage > SAL_CALL ChartModel::getDocumentStorage() - throw (io::IOException, - uno::Exception, - uno::RuntimeException) -{ - return m_xStorage; -} - -void SAL_CALL ChartModel::impl_notifyStorageChangeListeners() - throw( uno::RuntimeException) -{ - ::cppu::OInterfaceContainerHelper* pIC = m_aLifeTimeManager.m_aListenerContainer - .getContainer( ::getCppuType((const uno::Reference< document::XStorageChangeListener >*)0) ); - if( pIC ) - { - ::cppu::OInterfaceIteratorHelper aIt( *pIC ); - while( aIt.hasMoreElements() ) - { - uno::Reference< document::XStorageChangeListener > xListener( aIt.next(), uno::UNO_QUERY ); - if( xListener.is() ) - xListener->notifyStorageChange( static_cast< ::cppu::OWeakObject* >( this ), m_xStorage ); - } - } -} - -void SAL_CALL ChartModel::addStorageChangeListener( const Reference< document::XStorageChangeListener >& xListener ) - throw (uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed() ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.addInterface( - ::getCppuType((const uno::Reference< document::XStorageChangeListener >*)0), xListener ); -} - -void SAL_CALL ChartModel::removeStorageChangeListener( const Reference< document::XStorageChangeListener >& xListener ) - throw (uno::RuntimeException) -{ - if( m_aLifeTimeManager.impl_isDisposedOrClosed(false) ) - return; //behave passive if already disposed or closed - - m_aLifeTimeManager.m_aListenerContainer.removeInterface( - ::getCppuType((const uno::Reference< document::XStorageChangeListener >*)0), xListener ); -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataPoint.cxx b/chart2/source/model/main/DataPoint.cxx deleted file mode 100644 index 29950b3f2..000000000 --- a/chart2/source/model/main/DataPoint.cxx +++ /dev/null @@ -1,319 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "DataPoint.hxx" -#include "DataPointProperties.hxx" -#include "CharacterProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "PropertyHelper.hxx" -#include "macros.hxx" -#include "ContainerHelper.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/style/XStyle.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/uno/Sequence.hxx> - -#include <algorithm> - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; -using ::rtl::OUString; - -// ____________________________________________________________ - -namespace -{ - -struct StaticDataPointInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - ::chart::DataPointProperties::AddPropertiesToVector( aProperties ); - ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } -}; - -struct StaticDataPointInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticDataPointInfoHelper_Initializer > -{ -}; - -struct StaticDataPointInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticDataPointInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticDataPointInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticDataPointInfo_Initializer > -{ -}; - -} // anonymous namespace - -// ____________________________________________________________ - -namespace chart -{ - -DataPoint::DataPoint( const uno::Reference< beans::XPropertySet > & rParentProperties ) : - ::property::OPropertySet( m_aMutex ), - m_xParentProperties( rParentProperties ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()), - m_bNoParentPropAllowed( false ) -{ - SetNewValuesExplicitlyEvenIfTheyEqualDefault(); -} - -DataPoint::DataPoint( const DataPoint & rOther ) : - MutexContainer(), - impl::DataPoint_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()), - m_bNoParentPropAllowed( true ) -{ - SetNewValuesExplicitlyEvenIfTheyEqualDefault(); - - // m_xParentProperties has to be set from outside, like in the method - // DataSeries::createClone - - // add as listener to XPropertySet properties - Reference< beans::XPropertySet > xPropertySet; - uno::Any aValue; - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::addListener( xPropertySet, m_xModifyEventForwarder ); - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::addListener( xPropertySet, m_xModifyEventForwarder ); - - m_bNoParentPropAllowed = false; -} - -DataPoint::~DataPoint() -{ - try - { - // remove listener from XPropertySet properties - Reference< beans::XPropertySet > xPropertySet; - uno::Any aValue; - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::removeListener( xPropertySet, m_xModifyEventForwarder ); - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::removeListener( xPropertySet, m_xModifyEventForwarder ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL DataPoint::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new DataPoint( *this )); -} - -// ____ XChild ____ -Reference< uno::XInterface > SAL_CALL DataPoint::getParent() - throw (uno::RuntimeException) -{ - return Reference< uno::XInterface >( m_xParentProperties.get(), uno::UNO_QUERY ); -} - -void SAL_CALL DataPoint::setParent( - const Reference< uno::XInterface >& Parent ) - throw (lang::NoSupportException, - uno::RuntimeException) -{ - m_xParentProperties = Reference< beans::XPropertySet >( Parent, uno::UNO_QUERY ); -} - -// ____ OPropertySet ____ -uno::Any DataPoint::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - // the value set at the data series is the default - uno::Reference< beans::XFastPropertySet > xFast( m_xParentProperties.get(), uno::UNO_QUERY ); - if( !xFast.is()) - { - OSL_ENSURE( m_bNoParentPropAllowed, "data point needs a parent property set to provide values correctly" ); - return uno::Any(); - } - - return xFast->getFastPropertyValue( nHandle ); -} - -void SAL_CALL DataPoint::setFastPropertyValue_NoBroadcast( - sal_Int32 nHandle, const uno::Any& rValue ) - throw (uno::Exception) -{ - if( nHandle == DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y - || nHandle == DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ) - { - uno::Any aOldValue; - Reference< util::XModifyBroadcaster > xBroadcaster; - this->getFastPropertyValue( aOldValue, nHandle ); - if( aOldValue.hasValue() && - (aOldValue >>= xBroadcaster) && - xBroadcaster.is()) - { - ModifyListenerHelper::removeListener( xBroadcaster, m_xModifyEventForwarder ); - } - - OSL_ASSERT( rValue.getValueType().getTypeClass() == uno::TypeClass_INTERFACE ); - if( rValue.hasValue() && - (rValue >>= xBroadcaster) && - xBroadcaster.is()) - { - ModifyListenerHelper::addListener( xBroadcaster, m_xModifyEventForwarder ); - } - } - - ::property::OPropertySet::setFastPropertyValue_NoBroadcast( nHandle, rValue ); -} - -::cppu::IPropertyArrayHelper & SAL_CALL DataPoint::getInfoHelper() -{ - return *StaticDataPointInfoHelper::get(); -} - -// ____ XPropertySet ____ -Reference< beans::XPropertySetInfo > SAL_CALL DataPoint::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticDataPointInfo::get(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL DataPoint::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL DataPoint::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL DataPoint::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL DataPoint::disposing( const lang::EventObject& ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void DataPoint::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void DataPoint::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -Sequence< OUString > DataPoint::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 3 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.DataPoint" ); - aServices[ 1 ] = C2U( "com.sun.star.chart2.DataPointProperties" ); - aServices[ 2 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// needed by MSC compiler -using impl::DataPoint_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( DataPoint, DataPoint_Base, ::property::OPropertySet ) - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( DataPoint, C2U( "com.sun.star.comp.chart.DataPoint" )); - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataPoint.hxx b/chart2/source/model/main/DataPoint.hxx deleted file mode 100644 index e09dbeb1b..000000000 --- a/chart2/source/model/main/DataPoint.hxx +++ /dev/null @@ -1,143 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_DATAPOINT_HXX -#define CHART_DATAPOINT_HXX - -#include <osl/mutex.hxx> -#include <cppuhelper/implbase5.hxx> -#include <cppuhelper/weakref.hxx> -#include <comphelper/uno3.hxx> -#include <com/sun/star/container/XChild.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> - -#include "OPropertySet.hxx" -#include "MutexContainer.hxx" -#include "ModifyListenerHelper.hxx" -#include "ServiceMacros.hxx" - -//for auto_ptr -#include <memory> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper5< - ::com::sun::star::container::XChild, - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener, - ::com::sun::star::lang::XServiceInfo > - DataPoint_Base; -} - -class DataPoint : - public MutexContainer, - public impl::DataPoint_Base, - public ::property::OPropertySet -{ -public: - DataPoint( const ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > & rParentProperties ); - virtual ~DataPoint(); - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - -protected: - explicit DataPoint( const DataPoint & rOther ); - - // ____ 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 SAL_CALL setFastPropertyValue_NoBroadcast - ( sal_Int32 nHandle, - const ::com::sun::star::uno::Any& rValue ) - throw (::com::sun::star::uno::Exception); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - // Note: m_xParentProperties are not cloned! - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XChild ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setParent( - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) - throw (::com::sun::star::lang::NoSupportException, - ::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - ::com::sun::star::uno::WeakReference< - ::com::sun::star::beans::XPropertySet > m_xParentProperties; - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; - bool m_bNoParentPropAllowed; -}; - -} // namespace chart - -// CHART_DATAPOINT_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataPointProperties.cxx b/chart2/source/model/main/DataPointProperties.cxx deleted file mode 100644 index 0eaf5042d..000000000 --- a/chart2/source/model/main/DataPointProperties.cxx +++ /dev/null @@ -1,432 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "DataPointProperties.hxx" -#include "macros.hxx" -#include "LineProperties.hxx" -#include "FillProperties.hxx" - -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/drawing/FillStyle.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/drawing/LineDash.hpp> -#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp> -#include <com/sun/star/style/XStyle.hpp> -#include <com/sun/star/drawing/BitmapMode.hpp> -#include <com/sun/star/drawing/RectanglePoint.hpp> - -#include <com/sun/star/chart2/DataPointGeometry3D.hpp> -#include <com/sun/star/chart2/DataPointLabel.hpp> -#include <com/sun/star/chart2/Symbol.hpp> - -using namespace ::com::sun::star; - -using ::com::sun::star::beans::Property; - -namespace chart -{ - -void DataPointProperties::AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - // DataPointProperties - // =================== - - // Common - // ------ - rOutProperties.push_back( - Property( C2U( "Color" ), - PROP_DATAPOINT_COLOR, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID // "maybe auto" - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "Transparency" ), - PROP_DATAPOINT_TRANSPARENCY, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - // Fill Properties - // --------------- - rOutProperties.push_back( - Property( C2U( "FillStyle" ), - PROP_DATAPOINT_FILL_STYLE, - ::getCppuType( reinterpret_cast< const drawing::FillStyle * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "TransparencyGradientName" ), - PROP_DATAPOINT_TRANSPARENCY_GRADIENT_NAME, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "GradientName" ), - PROP_DATAPOINT_GRADIENT_NAME, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT - | beans::PropertyAttribute::MAYBEVOID )); - - - rOutProperties.push_back( - beans::Property( C2U( "GradientStepCount" ), - PROP_DATAPOINT_GRADIENT_STEPCOUNT, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "HatchName" ), - PROP_DATAPOINT_HATCH_NAME, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapName" ), - PROP_DATAPOINT_FILL_BITMAP_NAME, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT - | beans::PropertyAttribute::MAYBEVOID )); - rOutProperties.push_back( - Property( C2U( "FillBackground" ), - PROP_DATAPOINT_FILL_BACKGROUND, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT - | beans::PropertyAttribute::MAYBEVOID )); - - // border for filled objects - rOutProperties.push_back( - Property( C2U( "BorderColor" ), - PROP_DATAPOINT_BORDER_COLOR, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID // "maybe auto" - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "BorderStyle" ), - PROP_DATAPOINT_BORDER_STYLE, - ::getCppuType( reinterpret_cast< const drawing::LineStyle * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "BorderWidth" ), - PROP_DATAPOINT_BORDER_WIDTH, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "BorderDashName" ), - PROP_DATAPOINT_BORDER_DASH_NAME, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - rOutProperties.push_back( - Property( C2U( "BorderTransparency" ), - PROP_DATAPOINT_BORDER_TRANSPARENCY, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - // Line Properties - // --------------- - rOutProperties.push_back( - Property( C2U( "LineStyle" ), - LineProperties::PROP_LINE_STYLE, - ::getCppuType( reinterpret_cast< const drawing::LineStyle * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "LineWidth" ), - LineProperties::PROP_LINE_WIDTH, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "LineDash" ), - LineProperties::PROP_LINE_DASH, - ::getCppuType( reinterpret_cast< const drawing::LineDash * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - rOutProperties.push_back( - Property( C2U( "LineDashName" ), - LineProperties::PROP_LINE_DASH_NAME, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - // FillProperties - // bitmap properties - rOutProperties.push_back( - Property( C2U( "FillBitmapOffsetX" ), - FillProperties::PROP_FILL_BITMAP_OFFSETX, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapOffsetY" ), - FillProperties::PROP_FILL_BITMAP_OFFSETY, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapPositionOffsetX" ), - FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapPositionOffsetY" ), - FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - - rOutProperties.push_back( - Property( C2U( "FillBitmapRectanglePoint" ), - FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT, - ::getCppuType( reinterpret_cast< const drawing::RectanglePoint * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapLogicalSize" ), - FillProperties::PROP_FILL_BITMAP_LOGICALSIZE, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapSizeX" ), - FillProperties::PROP_FILL_BITMAP_SIZEX, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapSizeY" ), - FillProperties::PROP_FILL_BITMAP_SIZEY, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "FillBitmapMode" ), - FillProperties::PROP_FILL_BITMAP_MODE, - ::getCppuType( reinterpret_cast< const drawing::BitmapMode * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - // others - rOutProperties.push_back( - Property( C2U( "Symbol" ), - PROP_DATAPOINT_SYMBOL_PROP, - ::getCppuType( reinterpret_cast< const chart2::Symbol * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "Offset" ), - PROP_DATAPOINT_OFFSET, - ::getCppuType( reinterpret_cast< const double * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "Geometry3D" ), - PROP_DATAPOINT_GEOMETRY3D, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "Label" ), - PROP_DATAPOINT_LABEL, - ::getCppuType( reinterpret_cast< const chart2::DataPointLabel * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "LabelSeparator" ), - PROP_DATAPOINT_LABEL_SEPARATOR, - ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "NumberFormat" ), - PROP_DATAPOINT_NUMBER_FORMAT, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - //additional 'PercentageNumberFormat' - rOutProperties.push_back( - Property( C2U( "PercentageNumberFormat" ), - PROP_DATAPOINT_PERCENTAGE_NUMBER_FORMAT, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "LabelPlacement" ), - PROP_DATAPOINT_LABEL_PLACEMENT, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "ReferencePageSize" ), - PROP_DATAPOINT_REFERENCE_DIAGRAM_SIZE, - ::getCppuType( reinterpret_cast< const awt::Size * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "TextRotation" ), - PROP_DATAPOINT_TEXT_ROTATION, - ::getCppuType( reinterpret_cast< const double * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - // statistics - rOutProperties.push_back( - Property( C2U( "ErrorBarX" ), - PROP_DATAPOINT_ERROR_BAR_X, - // XPropertySet supporting service ErrorBar - ::getCppuType( reinterpret_cast< const uno::Reference< beans::XPropertySet > * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - rOutProperties.push_back( - Property( C2U( "ErrorBarY" ), - PROP_DATAPOINT_ERROR_BAR_Y, - // XPropertySet supporting service ErrorBar - ::getCppuType( reinterpret_cast< const uno::Reference< beans::XPropertySet > * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - rOutProperties.push_back( - Property( C2U( "ShowErrorBox" ), - PROP_DATAPOINT_SHOW_ERROR_BOX, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - rOutProperties.push_back( - Property( C2U( "PercentDiagonal" ), - PROP_DATAPOINT_PERCENT_DIAGONAL, - ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); -} - -void DataPointProperties::AddDefaultsToMap( - ::chart::tPropertyValueMap & rOutMap ) -{ - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_COLOR, 0x0099ccff ); // blue 8 - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_TRANSPARENCY, 0 ); - - //fill - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_FILL_STYLE, drawing::FillStyle_SOLID ); - PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_TRANSPARENCY_GRADIENT_NAME ); - PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_GRADIENT_NAME ); - PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_HATCH_NAME ); - PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_FILL_BITMAP_NAME ); - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_FILL_BACKGROUND, false ); - - //border - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_BORDER_COLOR, 0x000000 ); // black - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_BORDER_STYLE, drawing::LineStyle_SOLID ); // drawing::LineStyle_NONE - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATAPOINT_BORDER_WIDTH, 0 ); - PropertyHelper::setEmptyPropertyValueDefault( rOutMap, PROP_DATAPOINT_BORDER_DASH_NAME ); - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_BORDER_TRANSPARENCY, 0 ); - - //line - PropertyHelper::setPropertyValueDefault( rOutMap, LineProperties::PROP_LINE_STYLE, drawing::LineStyle_SOLID ); - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, LineProperties::PROP_LINE_WIDTH, 0 ); - PropertyHelper::setPropertyValueDefault( rOutMap, LineProperties::PROP_LINE_DASH, drawing::LineDash()); - PropertyHelper::setEmptyPropertyValueDefault( rOutMap, LineProperties::PROP_LINE_DASH_NAME ); - - //fill bitmap - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_OFFSETX, 0 ); - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_OFFSETY, 0 ); - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX, 0 ); - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY, 0 ); - PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT, drawing::RectanglePoint_MIDDLE_MIDDLE ); - PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_LOGICALSIZE, true ); - - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_BITMAP_SIZEX, 0 ); - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, FillProperties::PROP_FILL_BITMAP_SIZEY, 0 ); - PropertyHelper::setPropertyValueDefault( rOutMap, FillProperties::PROP_FILL_BITMAP_MODE, drawing::BitmapMode_REPEAT ); - - //others - chart2::Symbol aSymbProp; - aSymbProp.Style = chart2::SymbolStyle_NONE; - aSymbProp.StandardSymbol = 0; - aSymbProp.Size = awt::Size( 250, 250 ); // ca. 7pt x 7pt (7pt=246.94) - aSymbProp.BorderColor = 0x000000; // Black - aSymbProp.FillColor = 0xee4000; // OrangeRed2 - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_SYMBOL_PROP, aSymbProp ); - - PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_DATAPOINT_OFFSET, 0.0 ); - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_GEOMETRY3D, chart2::DataPointGeometry3D::CUBOID ); - - PropertyHelper::setPropertyValueDefault( - rOutMap, PROP_DATAPOINT_LABEL, - chart2::DataPointLabel( - sal_False, // ShowNumber - sal_False, // ShowNumberInPercent - sal_False, // ShowCategoryName - sal_False // ShowLegendSymbol - )); - - PropertyHelper::setPropertyValueDefault< rtl::OUString >( rOutMap, PROP_DATAPOINT_LABEL_SEPARATOR, C2U(" ") ); - - //@todo maybe choose a different one here -> should be dynamically that of the attached axis - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_ERROR_BAR_X, uno::Reference< beans::XPropertySet >()); - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATAPOINT_ERROR_BAR_Y, uno::Reference< beans::XPropertySet >()); - PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_DATAPOINT_PERCENT_DIAGONAL, 0 ); - - PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_DATAPOINT_TEXT_ROTATION, 0.0 ); -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataPointProperties.hxx b/chart2/source/model/main/DataPointProperties.hxx deleted file mode 100644 index b495c20ac..000000000 --- a/chart2/source/model/main/DataPointProperties.hxx +++ /dev/null @@ -1,103 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_DATAPOINTPROPERTIES_HXX -#define CHART_DATAPOINTPROPERTIES_HXX - -#include "PropertyHelper.hxx" -#include "FastPropertyIdRanges.hxx" -#include <com/sun/star/beans/Property.hpp> - -#include <vector> - -namespace chart -{ - -// implements service DataPointProperties -class DataPointProperties -{ -public: - // FastProperty Ids for properties - enum - { - // common - PROP_DATAPOINT_COLOR = FAST_PROPERTY_ID_START_DATA_POINT, - PROP_DATAPOINT_TRANSPARENCY, - - // fill - PROP_DATAPOINT_FILL_STYLE, - PROP_DATAPOINT_TRANSPARENCY_GRADIENT_NAME, - PROP_DATAPOINT_GRADIENT_NAME, - PROP_DATAPOINT_GRADIENT_STEPCOUNT, - PROP_DATAPOINT_HATCH_NAME, - PROP_DATAPOINT_FILL_BITMAP_NAME, - PROP_DATAPOINT_FILL_BACKGROUND, - - // border (of filled objects) - PROP_DATAPOINT_BORDER_COLOR, - PROP_DATAPOINT_BORDER_STYLE, - PROP_DATAPOINT_BORDER_WIDTH, - PROP_DATAPOINT_BORDER_DASH_NAME, - PROP_DATAPOINT_BORDER_TRANSPARENCY, - - // others - PROP_DATAPOINT_SYMBOL_PROP, - PROP_DATAPOINT_OFFSET, - PROP_DATAPOINT_GEOMETRY3D, - PROP_DATAPOINT_LABEL, - PROP_DATAPOINT_LABEL_SEPARATOR, - PROP_DATAPOINT_NUMBER_FORMAT, - PROP_DATAPOINT_PERCENTAGE_NUMBER_FORMAT, - PROP_DATAPOINT_LABEL_PLACEMENT, - PROP_DATAPOINT_REFERENCE_DIAGRAM_SIZE, - PROP_DATAPOINT_TEXT_ROTATION, - - // statistics - PROP_DATAPOINT_ERROR_BAR_X, - PROP_DATAPOINT_ERROR_BAR_Y, - PROP_DATAPOINT_SHOW_ERROR_BOX, - PROP_DATAPOINT_PERCENT_DIAGONAL - - // additionally some properites from ::chart::LineProperties - }; - - static void AddPropertiesToVector( - ::std::vector< ::com::sun::star::beans::Property > & rOutProperties ); - - static void AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ); - -private: - // not implemented - DataPointProperties(); -}; - -} // namespace chart - -// CHART_DATAPOINTPROPERTIES_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataSeries.cxx b/chart2/source/model/main/DataSeries.cxx deleted file mode 100644 index ff7c5f1cb..000000000 --- a/chart2/source/model/main/DataSeries.cxx +++ /dev/null @@ -1,634 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "DataSeries.hxx" -#include "DataSeriesProperties.hxx" -#include "DataPointProperties.hxx" -#include "CharacterProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "DataPoint.hxx" -#include "macros.hxx" -#include "DataSeriesHelper.hxx" -#include "ContainerHelper.hxx" -#include "CloneHelper.hxx" -#include "ModifyListenerHelper.hxx" -#include "EventListenerHelper.hxx" - -#include <algorithm> - -using namespace ::com::sun::star; - -using ::com::sun::star::beans::Property; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Any; -using ::rtl::OUString; -using ::osl::MutexGuard; - -// ---------------------------------------- - -namespace -{ - -struct StaticDataSeriesDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::DataSeriesProperties::AddDefaultsToMap( rOutMap ); - ::chart::CharacterProperties::AddDefaultsToMap( rOutMap ); - - float fDefaultCharHeight = 10.0; - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT, fDefaultCharHeight ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultCharHeight ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultCharHeight ); - } -}; - -struct StaticDataSeriesDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticDataSeriesDefaults_Initializer > -{ -}; - -struct StaticDataSeriesInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - uno::Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - ::chart::DataSeriesProperties::AddPropertiesToVector( aProperties ); - ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - -}; - -struct StaticDataSeriesInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticDataSeriesInfoHelper_Initializer > -{ -}; - -struct StaticDataSeriesInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticDataSeriesInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticDataSeriesInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticDataSeriesInfo_Initializer > -{ -}; - -void lcl_SetParent( - const uno::Reference< uno::XInterface > & xChildInterface, - const uno::Reference< uno::XInterface > & xParentInterface ) -{ - uno::Reference< container::XChild > xChild( xChildInterface, uno::UNO_QUERY ); - if( xChild.is()) - xChild->setParent( xParentInterface ); -} - -typedef ::std::map< sal_Int32, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > > - lcl_tDataPointMap; - -void lcl_CloneAttributedDataPoints( - const lcl_tDataPointMap & rSource, lcl_tDataPointMap & rDestination, - const uno::Reference< uno::XInterface > & xSeries ) -{ - for( lcl_tDataPointMap::const_iterator aIt( rSource.begin()); - aIt != rSource.end(); ++aIt ) - { - Reference< beans::XPropertySet > xPoint( (*aIt).second ); - if( xPoint.is()) - { - Reference< util::XCloneable > xCloneable( xPoint, uno::UNO_QUERY ); - if( xCloneable.is()) - { - xPoint.set( xCloneable->createClone(), uno::UNO_QUERY ); - if( xPoint.is()) - { - lcl_SetParent( xPoint, xSeries ); - rDestination.insert( lcl_tDataPointMap::value_type( (*aIt).first, xPoint )); - } - } - } - } -} - -} // anonymous namespace - -// ---------------------------------------- - -namespace chart -{ - -DataSeries::DataSeries( const uno::Reference< uno::XComponentContext > & xContext ) : - ::property::OPropertySet( m_aMutex ), - m_xContext( xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ -} - -DataSeries::DataSeries( const DataSeries & rOther ) : - MutexContainer(), - impl::DataSeries_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xContext( rOther.m_xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ - if( ! rOther.m_aDataSequences.empty()) - { - CloneHelper::CloneRefVector< tDataSequenceContainer::value_type >( - rOther.m_aDataSequences, m_aDataSequences ); - ModifyListenerHelper::addListenerToAllElements( m_aDataSequences, m_xModifyEventForwarder ); - } - - CloneHelper::CloneRefVector< Reference< chart2::XRegressionCurve > >( rOther.m_aRegressionCurves, m_aRegressionCurves ); - ModifyListenerHelper::addListenerToAllElements( m_aRegressionCurves, m_xModifyEventForwarder ); - - // add as listener to XPropertySet properties - Reference< beans::XPropertySet > xPropertySet; - uno::Any aValue; - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::addListener( xPropertySet, m_xModifyEventForwarder ); - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::addListener( xPropertySet, m_xModifyEventForwarder ); -} - -// late initialization to call after copy-constructing -void DataSeries::Init( const DataSeries & rOther ) -{ - if( ! rOther.m_aDataSequences.empty()) - EventListenerHelper::addListenerToAllElements( m_aDataSequences, this ); - - Reference< uno::XInterface > xThisInterface( static_cast< ::cppu::OWeakObject * >( this )); - if( ! rOther.m_aAttributedDataPoints.empty()) - { - lcl_CloneAttributedDataPoints( - rOther.m_aAttributedDataPoints, m_aAttributedDataPoints, xThisInterface ); - ModifyListenerHelper::addListenerToAllMapElements( m_aAttributedDataPoints, m_xModifyEventForwarder ); - } - - // add as parent to error bars - Reference< beans::XPropertySet > xPropertySet; - uno::Any aValue; - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - lcl_SetParent( xPropertySet, xThisInterface ); - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - lcl_SetParent( xPropertySet, xThisInterface ); -} - -DataSeries::~DataSeries() -{ - try - { - ModifyListenerHelper::removeListenerFromAllMapElements( m_aAttributedDataPoints, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListenerFromAllElements( m_aRegressionCurves, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListenerFromAllElements( m_aDataSequences, m_xModifyEventForwarder ); - - // remove listener from XPropertySet properties - Reference< beans::XPropertySet > xPropertySet; - uno::Any aValue; - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::removeListener( xPropertySet, m_xModifyEventForwarder ); - - getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y ); - if( ( aValue >>= xPropertySet ) - && xPropertySet.is()) - ModifyListenerHelper::removeListener( xPropertySet, m_xModifyEventForwarder ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL DataSeries::createClone() - throw (uno::RuntimeException) -{ - DataSeries * pNewSeries( new DataSeries( *this )); - // hold a reference to the clone - uno::Reference< util::XCloneable > xResult( pNewSeries ); - // do initialization that uses uno references to the clone - pNewSeries->Init( *this ); - - return xResult; -} - -Sequence< OUString > DataSeries::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 3 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.DataSeries" ); - aServices[ 1 ] = C2U( "com.sun.star.chart2.DataPointProperties" ); - aServices[ 2 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// ____ OPropertySet ____ -uno::Any DataSeries::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticDataSeriesDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -// ____ OPropertySet ____ -::cppu::IPropertyArrayHelper & SAL_CALL DataSeries::getInfoHelper() -{ - return *StaticDataSeriesInfoHelper::get(); -} - -// ____ XPropertySet ____ -uno::Reference< beans::XPropertySetInfo > SAL_CALL DataSeries::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticDataSeriesInfo::get(); -} - -void SAL_CALL DataSeries::getFastPropertyValue - ( uno::Any& rValue, - sal_Int32 nHandle ) const -{ - // special handling for get. set is not possible for this property - if( nHandle == DataSeriesProperties::PROP_DATASERIES_ATTRIBUTED_DATA_POINTS ) - { - // ToDo: only add those property sets that are really modified - uno::Sequence< sal_Int32 > aSeq( m_aAttributedDataPoints.size()); - sal_Int32 * pIndexArray = aSeq.getArray(); - sal_Int32 i = 0; - - for( tDataPointAttributeContainer::const_iterator aIt( m_aAttributedDataPoints.begin()); - aIt != m_aAttributedDataPoints.end(); ++aIt ) - { - pIndexArray[ i ] = (*aIt).first; - ++i; - } - - rValue <<= aSeq; - } - else - OPropertySet::getFastPropertyValue( rValue, nHandle ); -} - -void SAL_CALL DataSeries::setFastPropertyValue_NoBroadcast( - sal_Int32 nHandle, const uno::Any& rValue ) - throw (uno::Exception) -{ - if( nHandle == DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y - || nHandle == DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X ) - { - uno::Any aOldValue; - Reference< util::XModifyBroadcaster > xBroadcaster; - this->getFastPropertyValue( aOldValue, nHandle ); - if( aOldValue.hasValue() && - (aOldValue >>= xBroadcaster) && - xBroadcaster.is()) - { - ModifyListenerHelper::removeListener( xBroadcaster, m_xModifyEventForwarder ); - } - - OSL_ASSERT( rValue.getValueType().getTypeClass() == uno::TypeClass_INTERFACE ); - if( rValue.hasValue() && - (rValue >>= xBroadcaster) && - xBroadcaster.is()) - { - ModifyListenerHelper::addListener( xBroadcaster, m_xModifyEventForwarder ); - } - } - - ::property::OPropertySet::setFastPropertyValue_NoBroadcast( nHandle, rValue ); -} - -Reference< beans::XPropertySet > - SAL_CALL DataSeries::getDataPointByIndex( sal_Int32 nIndex ) - throw (lang::IndexOutOfBoundsException, - uno::RuntimeException) -{ - Reference< beans::XPropertySet > xResult; - - Sequence< Reference< chart2::data::XLabeledDataSequence > > aSequences; - { - MutexGuard aGuard( GetMutex() ); - aSequences = ContainerHelper::ContainerToSequence( m_aDataSequences ); - } - - ::std::vector< Reference< chart2::data::XLabeledDataSequence > > aValuesSeries( - DataSeriesHelper::getAllDataSequencesByRole( aSequences , C2U("values"), true ) ); - if( !aValuesSeries.empty() ) - { - Reference< chart2::data::XDataSequence > xSeq( aValuesSeries.front()->getValues() ); - if( 0 <= nIndex && nIndex < xSeq->getData().getLength() ) - { - { - MutexGuard aGuard( GetMutex() ); - tDataPointAttributeContainer::iterator aIt( m_aAttributedDataPoints.find( nIndex ) ); - if( aIt != m_aAttributedDataPoints.end() ) - xResult = (*aIt).second; - } - if( !xResult.is() ) - { - Reference< beans::XPropertySet > xParentProperties; - Reference< util::XModifyListener > xModifyEventForwarder; - { - MutexGuard aGuard( GetMutex() ); - xParentProperties = this; - xModifyEventForwarder = m_xModifyEventForwarder; - } - - // create a new XPropertySet for this data point - xResult.set( new DataPoint( xParentProperties ) ); - { - MutexGuard aGuard( GetMutex() ); - m_aAttributedDataPoints[ nIndex ] = xResult; - } - ModifyListenerHelper::addListener( xResult, xModifyEventForwarder ); - } - } - } - else - { - throw lang::IndexOutOfBoundsException(); - } - - return xResult; -} - -void SAL_CALL DataSeries::resetDataPoint( sal_Int32 nIndex ) - throw (uno::RuntimeException) -{ - Reference< beans::XPropertySet > xDataPointProp; - Reference< util::XModifyListener > xModifyEventForwarder; - { - MutexGuard aGuard( GetMutex() ); - xModifyEventForwarder = m_xModifyEventForwarder; - tDataPointAttributeContainer::iterator aIt( m_aAttributedDataPoints.find( nIndex )); - if( aIt != m_aAttributedDataPoints.end()) - { - xDataPointProp = (*aIt).second; - m_aAttributedDataPoints.erase(aIt); - } - - } - if( xDataPointProp.is() ) - { - Reference< util::XModifyBroadcaster > xBroadcaster( xDataPointProp, uno::UNO_QUERY ); - if( xBroadcaster.is() && xModifyEventForwarder.is()) - xBroadcaster->removeModifyListener( xModifyEventForwarder ); - fireModifyEvent(); - } -} - -void SAL_CALL DataSeries::resetAllDataPoints() - throw (uno::RuntimeException) -{ - tDataPointAttributeContainer aOldAttributedDataPoints; - Reference< util::XModifyListener > xModifyEventForwarder; - { - MutexGuard aGuard( GetMutex() ); - xModifyEventForwarder = m_xModifyEventForwarder; - std::swap( aOldAttributedDataPoints, m_aAttributedDataPoints ); - } - ModifyListenerHelper::removeListenerFromAllMapElements( aOldAttributedDataPoints, xModifyEventForwarder ); - aOldAttributedDataPoints.clear(); - fireModifyEvent(); -} - -// ____ XDataSink ____ -void SAL_CALL DataSeries::setData( const uno::Sequence< Reference< chart2::data::XLabeledDataSequence > >& aData ) - throw (uno::RuntimeException) -{ - tDataSequenceContainer aOldDataSequences; - tDataSequenceContainer aNewDataSequences; - Reference< util::XModifyListener > xModifyEventForwarder; - Reference< lang::XEventListener > xListener; - { - MutexGuard aGuard( GetMutex() ); - xModifyEventForwarder = m_xModifyEventForwarder; - xListener = this; - std::swap( aOldDataSequences, m_aDataSequences ); - aNewDataSequences = ContainerHelper::SequenceToVector( aData ); - m_aDataSequences = aNewDataSequences; - } - ModifyListenerHelper::removeListenerFromAllElements( aOldDataSequences, xModifyEventForwarder ); - EventListenerHelper::removeListenerFromAllElements( aOldDataSequences, xListener ); - EventListenerHelper::addListenerToAllElements( aNewDataSequences, xListener ); - ModifyListenerHelper::addListenerToAllElements( aNewDataSequences, xModifyEventForwarder ); - fireModifyEvent(); -} - -// ____ XDataSource ____ -Sequence< Reference< chart2::data::XLabeledDataSequence > > SAL_CALL DataSeries::getDataSequences() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return ContainerHelper::ContainerToSequence( m_aDataSequences ); -} - - -// ____ XRegressionCurveContainer ____ -void SAL_CALL DataSeries::addRegressionCurve( - const uno::Reference< chart2::XRegressionCurve >& xRegressionCurve ) - throw (lang::IllegalArgumentException, - uno::RuntimeException) -{ - Reference< util::XModifyListener > xModifyEventForwarder; - { - MutexGuard aGuard( GetMutex() ); - xModifyEventForwarder = m_xModifyEventForwarder; - if( ::std::find( m_aRegressionCurves.begin(), m_aRegressionCurves.end(), xRegressionCurve ) - != m_aRegressionCurves.end()) - throw lang::IllegalArgumentException(); - m_aRegressionCurves.push_back( xRegressionCurve ); - } - ModifyListenerHelper::addListener( xRegressionCurve, xModifyEventForwarder ); - fireModifyEvent(); -} - -void SAL_CALL DataSeries::removeRegressionCurve( - const uno::Reference< chart2::XRegressionCurve >& xRegressionCurve ) - throw (container::NoSuchElementException, - uno::RuntimeException) -{ - if( !xRegressionCurve.is() ) - throw container::NoSuchElementException(); - - Reference< util::XModifyListener > xModifyEventForwarder; - { - MutexGuard aGuard( GetMutex() ); - xModifyEventForwarder = m_xModifyEventForwarder; - tRegressionCurveContainerType::iterator aIt( - ::std::find( m_aRegressionCurves.begin(), m_aRegressionCurves.end(), xRegressionCurve ) ); - if( aIt == m_aRegressionCurves.end()) - throw container::NoSuchElementException( - C2U( "The given regression curve is no element of this series" ), - static_cast< uno::XWeak * >( this )); - m_aRegressionCurves.erase( aIt ); - } - - ModifyListenerHelper::removeListener( xRegressionCurve, xModifyEventForwarder ); - fireModifyEvent(); -} - -uno::Sequence< uno::Reference< chart2::XRegressionCurve > > SAL_CALL DataSeries::getRegressionCurves() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return ContainerHelper::ContainerToSequence( m_aRegressionCurves ); -} - -void SAL_CALL DataSeries::setRegressionCurves( - const Sequence< Reference< chart2::XRegressionCurve > >& aRegressionCurves ) - throw (uno::RuntimeException) -{ - tRegressionCurveContainerType aOldCurves; - tRegressionCurveContainerType aNewCurves( ContainerHelper::SequenceToVector( aRegressionCurves ) ); - Reference< util::XModifyListener > xModifyEventForwarder; - { - MutexGuard aGuard( GetMutex() ); - xModifyEventForwarder = m_xModifyEventForwarder; - std::swap( aOldCurves, m_aRegressionCurves ); - m_aRegressionCurves = aNewCurves; - } - ModifyListenerHelper::removeListenerFromAllElements( aOldCurves, xModifyEventForwarder ); - ModifyListenerHelper::addListenerToAllElements( aNewCurves, xModifyEventForwarder ); - fireModifyEvent(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL DataSeries::addModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL DataSeries::removeModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL DataSeries::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL DataSeries::disposing( const lang::EventObject& rEventObject ) - throw (uno::RuntimeException) -{ - // forget disposed data sequences - tDataSequenceContainer::iterator aIt( - ::std::find( m_aDataSequences.begin(), m_aDataSequences.end(), rEventObject.Source )); - if( aIt != m_aDataSequences.end()) - m_aDataSequences.erase( aIt ); -} - -// ____ OPropertySet ____ -void DataSeries::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void DataSeries::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - - -// ================================================================================ - -using impl::DataSeries_Base; -using ::property::OPropertySet; - -IMPLEMENT_FORWARD_XINTERFACE2( DataSeries, DataSeries_Base, OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( DataSeries, DataSeries_Base, OPropertySet ) - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( DataSeries, - C2U( "com.sun.star.comp.chart.DataSeries" )); - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataSeriesProperties.cxx b/chart2/source/model/main/DataSeriesProperties.cxx deleted file mode 100644 index 482880428..000000000 --- a/chart2/source/model/main/DataSeriesProperties.cxx +++ /dev/null @@ -1,101 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "DataSeriesProperties.hxx" -#include "DataPointProperties.hxx" -#include "DataPoint.hxx" -#include "macros.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/style/XStyle.hpp> -#include <com/sun/star/chart2/StackingDirection.hpp> - -#include <algorithm> - -using namespace ::com::sun::star; - -using ::rtl::OUString; -using ::com::sun::star::beans::Property; -using ::com::sun::star::uno::Reference; - -namespace chart -{ - -void DataSeriesProperties::AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "AttributedDataPoints" ), - PROP_DATASERIES_ATTRIBUTED_DATA_POINTS, - ::getCppuType( reinterpret_cast< const uno::Sequence< sal_Int32 > * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "StackingDirection" ), - PROP_DATASERIES_STACKING_DIRECTION, - ::getCppuType( reinterpret_cast< const chart2::StackingDirection * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "VaryColorsByPoint" ), - PROP_DATASERIES_VARY_COLORS_BY_POINT, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "AttachedAxisIndex" ), - PROP_DATASERIES_ATTACHED_AXIS_INDEX, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID - | beans::PropertyAttribute::MAYBEDEFAULT )); - - // add properties of service DataPointProperties - DataPointProperties::AddPropertiesToVector( rOutProperties ); -} - -void DataSeriesProperties::AddDefaultsToMap( - tPropertyValueMap & rOutMap ) -{ - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_STACKING_DIRECTION, chart2::StackingDirection_NO_STACKING ); - PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_VARY_COLORS_BY_POINT, false ); - PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATASERIES_ATTACHED_AXIS_INDEX, 0 ); - - // PROP_DATASERIES_ATTRIBUTED_DATA_POINTS has no default - - // add properties of service DataPointProperties - DataPointProperties::AddDefaultsToMap( rOutMap ); -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/DataSeriesProperties.hxx b/chart2/source/model/main/DataSeriesProperties.hxx deleted file mode 100644 index 62068fe25..000000000 --- a/chart2/source/model/main/DataSeriesProperties.hxx +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_DATASERIESPROPERTIES_HXX -#define CHART_DATASERIESPROPERTIES_HXX - -#include "PropertyHelper.hxx" -#include "FastPropertyIdRanges.hxx" -#include <com/sun/star/beans/Property.hpp> - -#include <vector> - -namespace chart -{ - -class DataSeriesProperties -{ -public: - enum - { - PROP_DATASERIES_ATTRIBUTED_DATA_POINTS = FAST_PROPERTY_ID_START_DATA_SERIES, - PROP_DATASERIES_STACKING_DIRECTION, - PROP_DATASERIES_VARY_COLORS_BY_POINT, - PROP_DATASERIES_ATTACHED_AXIS_INDEX - }; - - static void AddPropertiesToVector( - ::std::vector< ::com::sun::star::beans::Property > & rOutProperties ); - - static void AddDefaultsToMap( tPropertyValueMap & rOutMap ); - -private: - // not implemented - DataSeriesProperties(); -}; - -} // namespace chart - -// CHART_DATASERIESPROPERTIES_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Diagram.cxx b/chart2/source/model/main/Diagram.cxx deleted file mode 100644 index 710053816..000000000 --- a/chart2/source/model/main/Diagram.cxx +++ /dev/null @@ -1,734 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "Diagram.hxx" -#include "macros.hxx" -#include "PropertyHelper.hxx" -#include "Wall.hxx" -#include "UserDefinedProperties.hxx" -#include "ConfigColorScheme.hxx" -#include "DiagramHelper.hxx" -#include "ContainerHelper.hxx" -#include "ThreeDHelper.hxx" -#include "CloneHelper.hxx" -#include "AxisHelper.hxx" -#include "SceneProperties.hxx" -#include "DisposeHelper.hxx" -#include "BaseGFXHelper.hxx" -#include <basegfx/numeric/ftools.hxx> -#include <rtl/instance.hxx> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/chart2/RelativePosition.hpp> -#include <com/sun/star/chart2/RelativeSize.hpp> -#include <com/sun/star/drawing/CameraGeometry.hpp> - -#include <com/sun/star/drawing/HomogenMatrix.hpp> - -#include <algorithm> -#include <iterator> -#include <functional> - -using namespace ::com::sun::star; -using namespace ::com::sun::star::beans::PropertyAttribute; - -using ::rtl::OUString; -using ::com::sun::star::beans::Property; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Any; -using ::osl::MutexGuard; - -// ====================================================================== - -namespace -{ - -enum -{ - PROP_DIAGRAM_REL_POS, - PROP_DIAGRAM_REL_SIZE, - PROP_DIAGRAM_POSSIZE_EXCLUDE_LABELS, - PROP_DIAGRAM_SORT_BY_X_VALUES, - PROP_DIAGRAM_CONNECT_BARS, - PROP_DIAGRAM_GROUP_BARS_PER_AXIS, - PROP_DIAGRAM_INCLUDE_HIDDEN_CELLS, - PROP_DIAGRAM_STARTING_ANGLE, - PROP_DIAGRAM_RIGHT_ANGLED_AXES, - PROP_DIAGRAM_PERSPECTIVE, - PROP_DIAGRAM_ROTATION_HORIZONTAL, - PROP_DIAGRAM_ROTATION_VERTICAL, - PROP_DIAGRAM_MISSING_VALUE_TREATMENT -}; - -void lcl_AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "RelativePosition" ), - PROP_DIAGRAM_REL_POS, - ::getCppuType( reinterpret_cast< const chart2::RelativePosition * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "RelativeSize" ), - PROP_DIAGRAM_REL_SIZE, - ::getCppuType( reinterpret_cast< const chart2::RelativeSize * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "PosSizeExcludeAxes" ), - PROP_DIAGRAM_POSSIZE_EXCLUDE_LABELS, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "SortByXValues" ), - PROP_DIAGRAM_SORT_BY_X_VALUES, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U("ConnectBars"), - PROP_DIAGRAM_CONNECT_BARS, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U("GroupBarsPerAxis"), - PROP_DIAGRAM_GROUP_BARS_PER_AXIS, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U("IncludeHiddenCells"), - PROP_DIAGRAM_INCLUDE_HIDDEN_CELLS, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "StartingAngle" ), - PROP_DIAGRAM_STARTING_ANGLE, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0) ), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U("RightAngledAxes"), - PROP_DIAGRAM_RIGHT_ANGLED_AXES, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U("Perspective"), - PROP_DIAGRAM_PERSPECTIVE, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U("RotationHorizontal"), - PROP_DIAGRAM_ROTATION_HORIZONTAL, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U("RotationVertical"), - PROP_DIAGRAM_ROTATION_VERTICAL, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "MissingValueTreatment" ), - PROP_DIAGRAM_MISSING_VALUE_TREATMENT, - ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); -} - -struct StaticDiagramDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_POSSIZE_EXCLUDE_LABELS, true ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_SORT_BY_X_VALUES, false ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_CONNECT_BARS, false ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_GROUP_BARS_PER_AXIS, true ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_INCLUDE_HIDDEN_CELLS, true ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DIAGRAM_RIGHT_ANGLED_AXES, false ); - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DIAGRAM_STARTING_ANGLE, 90 ); - ::chart::SceneProperties::AddDefaultsToMap( rOutMap ); - } -}; - -struct StaticDiagramDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticDiagramDefaults_Initializer > -{ -}; - -struct StaticDiagramInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - lcl_AddPropertiesToVector( aProperties ); - ::chart::SceneProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } -}; - -struct StaticDiagramInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticDiagramInfoHelper_Initializer > -{ -}; - -struct StaticDiagramInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticDiagramInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticDiagramInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticDiagramInfo_Initializer > -{ -}; - -/// clones a UNO-sequence of UNO-References -typedef Reference< chart2::XCoordinateSystem > lcl_tCooSysRef; -typedef ::std::map< lcl_tCooSysRef, lcl_tCooSysRef > lcl_tCooSysMapping; -typedef ::std::vector< lcl_tCooSysRef > lcl_tCooSysVector; - -lcl_tCooSysMapping lcl_CloneCoordinateSystems( - const lcl_tCooSysVector & rSource, - lcl_tCooSysVector & rDestination ) -{ - lcl_tCooSysMapping aResult; - - for( lcl_tCooSysVector::const_iterator aIt( rSource.begin()); - aIt != rSource.end(); ++aIt ) - { - lcl_tCooSysRef xClone; - ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > - xCloneable( *aIt, ::com::sun::star::uno::UNO_QUERY ); - if( xCloneable.is()) - xClone.set( xCloneable->createClone(), ::com::sun::star::uno::UNO_QUERY ); - - if( xClone.is()) - { - rDestination.push_back( xClone ); - aResult.insert( lcl_tCooSysMapping::value_type( *aIt, xClone )); - } - else - rDestination.push_back( *aIt ); - } - - return aResult; -} - -} // anonymous namespace - -// ====================================================================== - -namespace chart -{ - -Diagram::Diagram( uno::Reference< uno::XComponentContext > const & xContext ) : - ::property::OPropertySet( m_aMutex ), - m_xContext( xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ - // Set camera position to a default position (that should be set hard, so - // that it will be exported. The property default is a camera looking - // straight ono the scene). These defaults have been acquired from the old - // chart implemetation. - setFastPropertyValue_NoBroadcast( - SceneProperties::PROP_SCENE_CAMERA_GEOMETRY, uno::makeAny( - ThreeDHelper::getDefaultCameraGeometry())); -} - -Diagram::Diagram( const Diagram & rOther ) : - MutexContainer(), - impl::Diagram_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xContext( rOther.m_xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ - lcl_tCooSysMapping aCooSysMapping = - lcl_CloneCoordinateSystems( rOther.m_aCoordSystems, m_aCoordSystems ); - ModifyListenerHelper::addListenerToAllElements( m_aCoordSystems, m_xModifyEventForwarder ); - - m_xWall.set( CloneHelper::CreateRefClone< Reference< beans::XPropertySet > >()( rOther.m_xWall )); - m_xFloor.set( CloneHelper::CreateRefClone< Reference< beans::XPropertySet > >()( rOther.m_xFloor )); - m_xTitle.set( CloneHelper::CreateRefClone< Reference< chart2::XTitle > >()( rOther.m_xTitle )); - m_xLegend.set( CloneHelper::CreateRefClone< Reference< chart2::XLegend > >()( rOther.m_xLegend )); - - ModifyListenerHelper::addListener( m_xWall, m_xModifyEventForwarder ); - ModifyListenerHelper::addListener( m_xFloor, m_xModifyEventForwarder ); - ModifyListenerHelper::addListener( m_xTitle, m_xModifyEventForwarder ); - ModifyListenerHelper::addListener( m_xLegend, m_xModifyEventForwarder ); -} - -Diagram::~Diagram() -{ - try - { - ModifyListenerHelper::removeListenerFromAllElements( m_aCoordSystems, m_xModifyEventForwarder ); - - ModifyListenerHelper::removeListener( m_xWall, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListener( m_xFloor, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListener( m_xTitle, m_xModifyEventForwarder ); - ModifyListenerHelper::removeListener( m_xLegend, m_xModifyEventForwarder ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XDiagram ____ -uno::Reference< beans::XPropertySet > SAL_CALL Diagram::getWall() - throw (uno::RuntimeException) -{ - uno::Reference< beans::XPropertySet > xRet; - bool bAddListener = false; - { - MutexGuard aGuard( GetMutex() ); - if( !m_xWall.is() ) - { - m_xWall.set( new Wall() ); - bAddListener = true; - } - xRet = m_xWall; - } - if(bAddListener) - ModifyListenerHelper::addListener( xRet, m_xModifyEventForwarder ); - return xRet; -} - -uno::Reference< beans::XPropertySet > SAL_CALL Diagram::getFloor() - throw (uno::RuntimeException) -{ - uno::Reference< beans::XPropertySet > xRet; - bool bAddListener = false; - { - MutexGuard aGuard( GetMutex() ); - if( !m_xFloor.is() ) - { - m_xFloor.set( new Wall() ); - bAddListener = true; - } - xRet = m_xFloor; - } - if(bAddListener) - ModifyListenerHelper::addListener( xRet, m_xModifyEventForwarder ); - return xRet; -} - -uno::Reference< chart2::XLegend > SAL_CALL Diagram::getLegend() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return m_xLegend; -} - -void SAL_CALL Diagram::setLegend( const uno::Reference< chart2::XLegend >& xNewLegend ) - throw (uno::RuntimeException) -{ - Reference< chart2::XLegend > xOldLegend; - { - MutexGuard aGuard( GetMutex() ); - if( m_xLegend == xNewLegend ) - return; - xOldLegend = m_xLegend; - m_xLegend = xNewLegend; - } - if( xOldLegend.is()) - ModifyListenerHelper::removeListener( xOldLegend, m_xModifyEventForwarder ); - if( xNewLegend.is()) - ModifyListenerHelper::addListener( xNewLegend, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -Reference< chart2::XColorScheme > SAL_CALL Diagram::getDefaultColorScheme() - throw (uno::RuntimeException) -{ - Reference< chart2::XColorScheme > xRet; - { - MutexGuard aGuard( GetMutex() ); - xRet = m_xColorScheme; - } - - if( !xRet.is()) - { - xRet.set( createConfigColorScheme( m_xContext )); - MutexGuard aGuard( GetMutex() ); - m_xColorScheme = xRet; - } - return xRet; -} - -void SAL_CALL Diagram::setDefaultColorScheme( const Reference< chart2::XColorScheme >& xColorScheme ) - throw (uno::RuntimeException) -{ - { - MutexGuard aGuard( GetMutex() ); - m_xColorScheme.set( xColorScheme ); - } - fireModifyEvent(); -} - -void SAL_CALL Diagram::setDiagramData( - const Reference< chart2::data::XDataSource >& xDataSource, - const Sequence< beans::PropertyValue >& aArguments ) - throw (uno::RuntimeException) -{ - uno::Reference< lang::XMultiServiceFactory > xChartTypeManager( m_xContext->getServiceManager()->createInstanceWithContext( - C2U( "com.sun.star.chart2.ChartTypeManager" ), m_xContext ), uno::UNO_QUERY ); - DiagramHelper::tTemplateWithServiceName aTemplateAndService = DiagramHelper::getTemplateForDiagram( this, xChartTypeManager ); - uno::Reference< chart2::XChartTypeTemplate > xTemplate( aTemplateAndService.first ); - if( !xTemplate.is() ) - xTemplate.set( xChartTypeManager->createInstance( C2U("com.sun.star.chart2.template.Column") ), uno::UNO_QUERY ); - if(!xTemplate.is()) - return; - xTemplate->changeDiagramData( this, xDataSource, aArguments ); -} - -// ____ XTitled ____ -uno::Reference< chart2::XTitle > SAL_CALL Diagram::getTitleObject() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return m_xTitle; -} - -void SAL_CALL Diagram::setTitleObject( const uno::Reference< chart2::XTitle >& xNewTitle ) - throw (uno::RuntimeException) -{ - Reference< chart2::XTitle > xOldTitle; - { - MutexGuard aGuard( GetMutex() ); - if( m_xTitle == xNewTitle ) - return; - xOldTitle = m_xTitle; - m_xTitle = xNewTitle; - } - if( xOldTitle.is()) - ModifyListenerHelper::removeListener( xOldTitle, m_xModifyEventForwarder ); - if( xNewTitle.is()) - ModifyListenerHelper::addListener( xNewTitle, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -// ____ X3DDefaultSetter ____ -void SAL_CALL Diagram::set3DSettingsToDefault() - throw (uno::RuntimeException) -{ - ThreeDHelper::set3DSettingsToDefault( this ); -} - -void SAL_CALL Diagram::setDefaultRotation() - throw (uno::RuntimeException) -{ - ThreeDHelper::setDefaultRotation( this ); -} - -void SAL_CALL Diagram::setDefaultIllumination() - throw (uno::RuntimeException) -{ - ThreeDHelper::setDefaultIllumination( this ); -} - -// ____ XCoordinateSystemContainer ____ -void SAL_CALL Diagram::addCoordinateSystem( - const uno::Reference< chart2::XCoordinateSystem >& aCoordSys ) - throw (lang::IllegalArgumentException, - uno::RuntimeException) -{ - { - MutexGuard aGuard( GetMutex() ); - if( ::std::find( m_aCoordSystems.begin(), m_aCoordSystems.end(), aCoordSys ) - != m_aCoordSystems.end()) - throw lang::IllegalArgumentException(); - - if( m_aCoordSystems.size()>=1 ) - { - OSL_FAIL( "more than one coordinatesystem is not supported yet by the fileformat" ); - return; - } - m_aCoordSystems.push_back( aCoordSys ); - } - ModifyListenerHelper::addListener( aCoordSys, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -void SAL_CALL Diagram::removeCoordinateSystem( - const uno::Reference< chart2::XCoordinateSystem >& aCoordSys ) - throw (container::NoSuchElementException, - uno::RuntimeException) -{ - { - MutexGuard aGuard( GetMutex() ); - ::std::vector< uno::Reference< chart2::XCoordinateSystem > >::iterator - aIt( ::std::find( m_aCoordSystems.begin(), m_aCoordSystems.end(), aCoordSys )); - if( aIt == m_aCoordSystems.end()) - throw container::NoSuchElementException( - C2U( "The given coordinate-system is no element of the container" ), - static_cast< uno::XWeak * >( this )); - m_aCoordSystems.erase( aIt ); - } - ModifyListenerHelper::removeListener( aCoordSys, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -uno::Sequence< uno::Reference< chart2::XCoordinateSystem > > SAL_CALL Diagram::getCoordinateSystems() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return ContainerHelper::ContainerToSequence( m_aCoordSystems ); -} - -void SAL_CALL Diagram::setCoordinateSystems( - const Sequence< Reference< chart2::XCoordinateSystem > >& aCoordinateSystems ) - throw (lang::IllegalArgumentException, - uno::RuntimeException) -{ - tCoordinateSystemContainerType aNew; - tCoordinateSystemContainerType aOld; - if( aCoordinateSystems.getLength()>0 ) - { - OSL_ENSURE( aCoordinateSystems.getLength()<=1, "more than one coordinatesystem is not supported yet by the fileformat" ); - aNew.push_back( aCoordinateSystems[0] ); - } - { - MutexGuard aGuard( GetMutex() ); - std::swap( aOld, m_aCoordSystems ); - m_aCoordSystems = aNew; - } - ModifyListenerHelper::removeListenerFromAllElements( aOld, m_xModifyEventForwarder ); - ModifyListenerHelper::addListenerToAllElements( aNew, m_xModifyEventForwarder ); - fireModifyEvent(); -} - -// ____ XCloneable ____ -Reference< util::XCloneable > SAL_CALL Diagram::createClone() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return Reference< util::XCloneable >( new Diagram( *this )); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL Diagram::addModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL Diagram::removeModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL Diagram::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL Diagram::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void Diagram::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void Diagram::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ============================================================ - -Sequence< OUString > Diagram::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 3 ); - - aServices[ 0 ] = C2U( "com.sun.star.chart2.Diagram" ); - aServices[ 1 ] = C2U( "com.sun.star.layout.LayoutElement" ); - aServices[ 2 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// ____ OPropertySet ____ -uno::Any Diagram::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticDiagramDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -// ____ OPropertySet ____ -::cppu::IPropertyArrayHelper & SAL_CALL Diagram::getInfoHelper() -{ - return *StaticDiagramInfoHelper::get(); -} - -// ____ XPropertySet ____ -uno::Reference< beans::XPropertySetInfo > SAL_CALL Diagram::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticDiagramInfo::get(); -} - -// ____ XFastPropertySet ____ -void SAL_CALL Diagram::setFastPropertyValue( sal_Int32 nHandle, const Any& rValue ) - throw(beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, uno::RuntimeException) -{ - //special treatment for some 3D properties - if( PROP_DIAGRAM_PERSPECTIVE == nHandle ) - { - sal_Int32 fPerspective = 20; - if( rValue >>=fPerspective ) - ThreeDHelper::setCameraDistance( this, ThreeDHelper::PerspectiveToCameraDistance( fPerspective ) ); - } - else if( PROP_DIAGRAM_ROTATION_HORIZONTAL == nHandle - || PROP_DIAGRAM_ROTATION_VERTICAL == nHandle ) - { - sal_Int32 nNewAngleDegree = 0; - if( rValue >>=nNewAngleDegree ) - { - sal_Int32 nHorizontal, nVertical; - ThreeDHelper::getRotationFromDiagram( const_cast< Diagram* >( this ), nHorizontal, nVertical ); - if( PROP_DIAGRAM_ROTATION_HORIZONTAL == nHandle ) - nHorizontal = nNewAngleDegree; - else - nVertical = nNewAngleDegree; - ThreeDHelper::setRotationToDiagram( this, nHorizontal, nVertical ); - } - } - else - ::property::OPropertySet::setFastPropertyValue( nHandle, rValue ); -} - -void SAL_CALL Diagram::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const -{ - //special treatment for some 3D properties - if( nHandle == PROP_DIAGRAM_PERSPECTIVE ) - { - sal_Int32 nPerspective = ::basegfx::fround( ThreeDHelper::CameraDistanceToPerspective( - ThreeDHelper::getCameraDistance( const_cast< Diagram* >( this ) ) ) ); - rValue = uno::makeAny(nPerspective); - } - else if( PROP_DIAGRAM_ROTATION_HORIZONTAL == nHandle - || PROP_DIAGRAM_ROTATION_VERTICAL == nHandle ) - { - sal_Int32 nHorizontal, nVertical; - ThreeDHelper::getRotationFromDiagram( const_cast< Diagram* >( this ), nHorizontal, nVertical ); - sal_Int32 nAngleDegree = 0; - if( PROP_DIAGRAM_ROTATION_HORIZONTAL == nHandle ) - nAngleDegree = nHorizontal; - else - nAngleDegree = nVertical; - rValue = uno::makeAny(nAngleDegree); - } - else - ::property::OPropertySet::getFastPropertyValue( rValue,nHandle ); -} - -// ================================================================================ - -using impl::Diagram_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( Diagram, Diagram_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( Diagram, Diagram_Base, ::property::OPropertySet ) - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( Diagram, - C2U( "com.sun.star.comp.chart2.Diagram" )); - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/FormattedString.cxx b/chart2/source/model/main/FormattedString.cxx deleted file mode 100644 index 94f43c3c1..000000000 --- a/chart2/source/model/main/FormattedString.cxx +++ /dev/null @@ -1,266 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "FormattedString.hxx" -#include "ContainerHelper.hxx" - -#include "CharacterProperties.hxx" -#include "PropertyHelper.hxx" -#include "macros.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> - -using namespace ::com::sun::star; - -using ::rtl::OUString; -using ::com::sun::star::beans::Property; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Any; -using ::osl::MutexGuard; - -namespace -{ - -struct StaticFormattedStringDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::CharacterProperties::AddDefaultsToMap( rOutMap ); - } -}; - -struct StaticFormattedStringDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticFormattedStringDefaults_Initializer > -{ -}; - -struct StaticFormattedStringInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - -}; - -struct StaticFormattedStringInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticFormattedStringInfoHelper_Initializer > -{ -}; - -struct StaticFormattedStringInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticFormattedStringInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticFormattedStringInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticFormattedStringInfo_Initializer > -{ -}; - -} // anonymous namespace - -namespace chart -{ - -FormattedString::FormattedString( - uno::Reference< uno::XComponentContext > const & /* xContext */ ) : - ::property::OPropertySet( m_aMutex ), - m_aString(), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -FormattedString::FormattedString( const FormattedString & rOther ) : - MutexContainer(), - impl::FormattedString_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_aString( rOther.m_aString ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -FormattedString::~FormattedString() -{} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL FormattedString::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new FormattedString( *this )); -} - -// ____ XFormattedString ____ -::rtl::OUString SAL_CALL FormattedString::getString() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex()); - return m_aString; -} - -void SAL_CALL FormattedString::setString( const ::rtl::OUString& String ) - throw (uno::RuntimeException) -{ - { - MutexGuard aGuard( GetMutex()); - m_aString = String; - } - //don't keep the mutex locked while calling out - fireModifyEvent(); - -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL FormattedString::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL FormattedString::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL FormattedString::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL FormattedString::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void FormattedString::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void FormattedString::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - - -// ---------------------------------------- - -Sequence< OUString > FormattedString::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - - aServices[ 0 ] = C2U( "com.sun.star.chart2.FormattedString" ); - aServices[ 1 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// ____ OPropertySet ____ -uno::Any FormattedString::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticFormattedStringDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -// ____ OPropertySet ____ -::cppu::IPropertyArrayHelper & SAL_CALL FormattedString::getInfoHelper() -{ - return *StaticFormattedStringInfoHelper::get(); -} - - -// ____ XPropertySet ____ -uno::Reference< beans::XPropertySetInfo > SAL_CALL FormattedString::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticFormattedStringInfo::get(); -} - -// ================================================================================ - -using impl::FormattedString_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( FormattedString, FormattedString_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( FormattedString, FormattedString_Base, ::property::OPropertySet ) - -// do this in derived classes! - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( FormattedString, - C2U( "com.sun.star.comp.chart.FormattedString" )); - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/FormattedString.hxx b/chart2/source/model/main/FormattedString.hxx deleted file mode 100644 index f3a2fdcaa..000000000 --- a/chart2/source/model/main/FormattedString.hxx +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_FORMATTEDSTRING_HXX -#define CHART_FORMATTEDSTRING_HXX - -#include "MutexContainer.hxx" -#include "OPropertySet.hxx" -#include <cppuhelper/implbase5.hxx> -#include <comphelper/uno3.hxx> -#include "ServiceMacros.hxx" -#include "ModifyListenerHelper.hxx" -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/chart2/XFormattedString.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper5< - ::com::sun::star::chart2::XFormattedString, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - FormattedString_Base; -} - -class FormattedString : - public MutexContainer, - public impl::FormattedString_Base, - public ::property::OPropertySet -{ -public: - FormattedString( ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > const & xContext ); - virtual ~FormattedString(); - - /// declare XServiceInfo methods - APPHELPER_XSERVICEINFO_DECL() - /// establish methods for factory instatiation - APPHELPER_SERVICE_FACTORY_HELPER( FormattedString ) - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -protected: - explicit FormattedString( const FormattedString & rOther ); - - // ____ XFormattedString ____ - virtual ::rtl::OUString SAL_CALL getString() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setString( const ::rtl::OUString& String ) - throw (::com::sun::star::uno::RuntimeException); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - ::rtl::OUString m_aString; - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; -}; - -} // namespace chart - -// CHART_FORMATTEDSTRING_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/GridProperties.cxx b/chart2/source/model/main/GridProperties.cxx deleted file mode 100644 index 1d159e638..000000000 --- a/chart2/source/model/main/GridProperties.cxx +++ /dev/null @@ -1,277 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" - -#include "GridProperties.hxx" -#include "LineProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "PropertyHelper.hxx" -#include "macros.hxx" -#include "ContainerHelper.hxx" -#include <com/sun/star/style/XStyle.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/uno/Sequence.hxx> - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; -using ::rtl::OUString; - -// ____________________________________________________________ - -namespace -{ - -static const ::rtl::OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.GridProperties" )); - -enum -{ - PROP_GRID_SHOW -}; - -void lcl_AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "Show" ), - PROP_GRID_SHOW, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); -} - -struct StaticGridDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_GRID_SHOW, false ); - - // override other defaults - ::chart::PropertyHelper::setPropertyValue< sal_Int32 >( - rOutMap, ::chart::LineProperties::PROP_LINE_COLOR, 0xb3b3b3 ); // gray30 - } -}; - -struct StaticGridDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticGridDefaults_Initializer > -{ -}; - -struct StaticGridInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< Property > aProperties; - lcl_AddPropertiesToVector( aProperties ); - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - - -}; - -struct StaticGridInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticGridInfoHelper_Initializer > -{ -}; - -struct StaticGridInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticGridInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticGridInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticGridInfo_Initializer > -{ -}; - -} // anonymous namespace - -// ____________________________________________________________ - -namespace chart -{ - -GridProperties::GridProperties( Reference< uno::XComponentContext > const & /* xContext */ ) : - ::property::OPropertySet( m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ -} - -GridProperties::GridProperties() : - ::property::OPropertySet( m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -GridProperties::GridProperties( const GridProperties & rOther ) : - MutexContainer(), - impl::GridProperties_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ -} - -GridProperties::~GridProperties() -{} - -// ____ OPropertySet ____ -uno::Any GridProperties::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticGridDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL GridProperties::getInfoHelper() -{ - return *StaticGridInfoHelper::get(); -} - -// ____ XPropertySet ____ -Reference< beans::XPropertySetInfo > SAL_CALL GridProperties::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticGridInfo::get(); -} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL GridProperties::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new GridProperties( *this )); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL GridProperties::addModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL GridProperties::removeModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL GridProperties::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL GridProperties::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void GridProperties::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void GridProperties::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ================================================================================ - -Sequence< OUString > GridProperties::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.GridProperties" ); - aServices[ 1 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( GridProperties, lcl_aServiceName ); - -// needed by MSC compiler -using impl::GridProperties_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( GridProperties, GridProperties_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( GridProperties, GridProperties_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/GridProperties.hxx b/chart2/source/model/main/GridProperties.hxx deleted file mode 100644 index c26e90afb..000000000 --- a/chart2/source/model/main/GridProperties.hxx +++ /dev/null @@ -1,131 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_GRIDPROPERTIES_HXX -#define CHART_GRIDPROPERTIES_HXX - -#include "ServiceMacros.hxx" -#include <osl/mutex.hxx> -#include <cppuhelper/implbase4.hxx> -#include <comphelper/uno3.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/util/XModifyBroadcaster.hpp> -#include <com/sun/star/util/XModifyListener.hpp> - -#include "OPropertySet.hxx" -#include "MutexContainer.hxx" -#include "ModifyListenerHelper.hxx" - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper4< - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - GridProperties_Base; -} - -class GridProperties : - public MutexContainer, - public impl::GridProperties_Base, - public ::property::OPropertySet -{ -public: - GridProperties( ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > const & xContext ); - explicit GridProperties(); - virtual ~GridProperties(); - - /// establish methods for factory instatiation - APPHELPER_SERVICE_FACTORY_HELPER( GridProperties ) - - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -protected: - explicit GridProperties( const GridProperties & rOther ); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; -}; - -} // namespace chart - -// CHART_GRIDPROPERTIES_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Legend.cxx b/chart2/source/model/main/Legend.cxx deleted file mode 100644 index 56449721c..000000000 --- a/chart2/source/model/main/Legend.cxx +++ /dev/null @@ -1,329 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "Legend.hxx" -#include "macros.hxx" -#include "LineProperties.hxx" -#include "FillProperties.hxx" -#include "CharacterProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "LegendHelper.hxx" -#include "ContainerHelper.hxx" -#include "CloneHelper.hxx" -#include "PropertyHelper.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/awt/Size.hpp> -#include <com/sun/star/chart2/LegendPosition.hpp> -#include <com/sun/star/chart/ChartLegendExpansion.hpp> -#include <com/sun/star/chart2/RelativePosition.hpp> -#include <com/sun/star/chart2/RelativeSize.hpp> - -#include <algorithm> - -using namespace ::com::sun::star; -using namespace ::com::sun::star::beans::PropertyAttribute; - -using ::rtl::OUString; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Any; -using ::com::sun::star::beans::Property; - -namespace -{ - -static const OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.Legend" )); - -enum -{ - PROP_LEGEND_ANCHOR_POSITION, - PROP_LEGEND_EXPANSION, - PROP_LEGEND_SHOW, - PROP_LEGEND_REF_PAGE_SIZE, - PROP_LEGEND_REL_POS, - PROP_LEGEND_REL_SIZE -}; - -void lcl_AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "AnchorPosition" ), - PROP_LEGEND_ANCHOR_POSITION, - ::getCppuType( reinterpret_cast< const chart2::LegendPosition * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "Expansion" ), - PROP_LEGEND_EXPANSION, - ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartLegendExpansion * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "Show" ), - PROP_LEGEND_SHOW, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "ReferencePageSize" ), - PROP_LEGEND_REF_PAGE_SIZE, - ::getCppuType( reinterpret_cast< const awt::Size * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "RelativePosition" ), - PROP_LEGEND_REL_POS, - ::getCppuType( reinterpret_cast< const chart2::RelativePosition * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "RelativeSize" ), - PROP_LEGEND_REL_SIZE, - ::getCppuType( reinterpret_cast< const chart2::RelativeSize * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - -} - -struct StaticLegendDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - ::chart::FillProperties::AddDefaultsToMap( rOutMap ); - ::chart::CharacterProperties::AddDefaultsToMap( rOutMap ); - - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LEGEND_ANCHOR_POSITION, chart2::LegendPosition_LINE_END ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LEGEND_EXPANSION, ::com::sun::star::chart::ChartLegendExpansion_HIGH ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LEGEND_SHOW, true ); - - float fDefaultCharHeight = 10.0; - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_CHAR_HEIGHT, fDefaultCharHeight ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultCharHeight ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::CharacterProperties::PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultCharHeight ); - } -}; - -struct StaticLegendDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticLegendDefaults_Initializer > -{ -}; - -struct StaticLegendInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - lcl_AddPropertiesToVector( aProperties ); - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::FillProperties::AddPropertiesToVector( aProperties ); - ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } -}; - -struct StaticLegendInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticLegendInfoHelper_Initializer > -{ -}; - -struct StaticLegendInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticLegendInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticLegendInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticLegendInfo_Initializer > -{ -}; - -} // anonymous namespace - -namespace chart -{ - -Legend::Legend( Reference< uno::XComponentContext > const & /* xContext */ ) : - ::property::OPropertySet( m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ -} - -Legend::Legend( const Legend & rOther ) : - MutexContainer(), - impl::Legend_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ -} - -Legend::~Legend() -{ -} - -// ____ XCloneable ____ -Reference< util::XCloneable > SAL_CALL Legend::createClone() - throw (uno::RuntimeException) -{ - return Reference< util::XCloneable >( new Legend( *this )); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL Legend::addModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL Legend::removeModifyListener( const Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL Legend::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL Legend::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void Legend::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void Legend::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ================================================================================ - -Sequence< OUString > Legend::getSupportedServiceNames_Static() -{ - const sal_Int32 nNumServices( 6 ); - sal_Int32 nI = 0; - Sequence< OUString > aServices( nNumServices ); - aServices[ nI++ ] = C2U( "com.sun.star.chart2.Legend" ); - aServices[ nI++ ] = C2U( "com.sun.star.beans.PropertySet" ); - aServices[ nI++ ] = C2U( "com.sun.star.drawing.FillProperties" ); - aServices[ nI++ ] = C2U( "com.sun.star.drawing.LineProperties" ); - aServices[ nI++ ] = C2U( "com.sun.star.style.CharacterProperties" ); - aServices[ nI++ ] = C2U( "com.sun.star.layout.LayoutElement" ); - OSL_ASSERT( nNumServices == nI ); - return aServices; -} - -// ____ OPropertySet ____ -Any Legend::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticLegendDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL Legend::getInfoHelper() -{ - return *StaticLegendInfoHelper::get(); -} - -// ____ XPropertySet ____ -Reference< beans::XPropertySetInfo > SAL_CALL Legend::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticLegendInfo::get(); -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( Legend, lcl_aServiceName ); - -// needed by MSC compiler -using impl::Legend_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( Legend, Legend_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( Legend, Legend_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Legend.hxx b/chart2/source/model/main/Legend.hxx deleted file mode 100644 index 63031a8d0..000000000 --- a/chart2/source/model/main/Legend.hxx +++ /dev/null @@ -1,131 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_LEGEND_HXX -#define CHART_LEGEND_HXX - -#include "ServiceMacros.hxx" -#include "ModifyListenerHelper.hxx" -#include "OPropertySet.hxx" -#include "MutexContainer.hxx" -#include <cppuhelper/implbase5.hxx> -#include <comphelper/uno3.hxx> -#include <com/sun/star/chart2/XLegend.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/util/XModifyBroadcaster.hpp> -#include <com/sun/star/util/XModifyListener.hpp> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper5< - ::com::sun::star::chart2::XLegend, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - Legend_Base; -} - -class Legend : - public MutexContainer, - public impl::Legend_Base, - public ::property::OPropertySet -{ -public: - Legend( ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > const & xContext ); - virtual ~Legend(); - - /// establish methods for factory instatiation - APPHELPER_SERVICE_FACTORY_HELPER( Legend ) - - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -protected: - explicit Legend( const Legend & rOther ); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; -}; - -} // namespace chart - -// CHART_LEGEND_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/PageBackground.cxx b/chart2/source/model/main/PageBackground.cxx deleted file mode 100644 index 17c44d1b1..000000000 --- a/chart2/source/model/main/PageBackground.cxx +++ /dev/null @@ -1,252 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "PageBackground.hxx" -#include "macros.hxx" -#include "LineProperties.hxx" -#include "FillProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "ContainerHelper.hxx" -#include "PropertyHelper.hxx" - -#include <com/sun/star/drawing/LineStyle.hpp> -#include <rtl/uuid.h> -#include <cppuhelper/queryinterface.hxx> - -#include <vector> -#include <algorithm> - -using namespace ::com::sun::star; - -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; - -namespace -{ - -static const ::rtl::OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.PageBackground" )); - -struct StaticPageBackgroundDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - ::chart::FillProperties::AddDefaultsToMap( rOutMap ); - - // override other defaults - ::chart::PropertyHelper::setPropertyValue< sal_Int32 >( rOutMap, ::chart::FillProperties::PROP_FILL_COLOR, 0xffffff ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::LineProperties::PROP_LINE_STYLE, drawing::LineStyle_NONE ); - } -}; - -struct StaticPageBackgroundDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticPageBackgroundDefaults_Initializer > -{ -}; - -struct StaticPageBackgroundInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - uno::Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::FillProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - -}; - -struct StaticPageBackgroundInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticPageBackgroundInfoHelper_Initializer > -{ -}; - -struct StaticPageBackgroundInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticPageBackgroundInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticPageBackgroundInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticPageBackgroundInfo_Initializer > -{ -}; - -} // anonymous namespace - -// ================================================================================ - -namespace chart -{ - -PageBackground::PageBackground( const uno::Reference< uno::XComponentContext > & xContext ) : - ::property::OPropertySet( m_aMutex ), - m_xContext( xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -PageBackground::PageBackground( const PageBackground & rOther ) : - MutexContainer(), - impl::PageBackground_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xContext( rOther.m_xContext ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -PageBackground::~PageBackground() -{} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL PageBackground::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new PageBackground( *this )); -} - -// ================================================================================ - -// ____ OPropertySet ____ -uno::Any PageBackground::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticPageBackgroundDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL PageBackground::getInfoHelper() -{ - return *StaticPageBackgroundInfoHelper::get(); -} - -// ____ XPropertySet ____ -uno::Reference< beans::XPropertySetInfo > SAL_CALL PageBackground::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticPageBackgroundInfo::get(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL PageBackground::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL PageBackground::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL PageBackground::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL PageBackground::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void PageBackground::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void PageBackground::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ================================================================================ - -uno::Sequence< ::rtl::OUString > PageBackground::getSupportedServiceNames_Static() -{ - uno::Sequence< ::rtl::OUString > aServices( 2 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.PageBackground" ); - aServices[ 1 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( PageBackground, lcl_aServiceName ); - -using impl::PageBackground_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( PageBackground, PageBackground_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/PageBackground.hxx b/chart2/source/model/main/PageBackground.hxx deleted file mode 100644 index bf9b9a3ed..000000000 --- a/chart2/source/model/main/PageBackground.hxx +++ /dev/null @@ -1,128 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_PAGEBACKGROUND_HXX -#define CHART_PAGEBACKGROUND_HXX - -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include "MutexContainer.hxx" -#include "OPropertySet.hxx" -#include <cppuhelper/implbase3.hxx> - -#include "ServiceMacros.hxx" -#include "ModifyListenerHelper.hxx" -#include <comphelper/uno3.hxx> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper3< - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - PageBackground_Base; -} - -class PageBackground : - public MutexContainer, - public impl::PageBackground_Base, - public ::property::OPropertySet -{ -public: - PageBackground( const ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > & xContext ); - virtual ~PageBackground(); - - /// establish methods for factory instatiation - APPHELPER_SERVICE_FACTORY_HELPER( PageBackground ) - - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - - /// merge XInterface implementations - DECLARE_XINTERFACE() - -protected: - explicit PageBackground( const PageBackground & rOther ); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > - m_xContext; - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; -}; - -} // namespace chart - -// CHART_PAGEBACKGROUND_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/PolarCoordinateSystem.cxx b/chart2/source/model/main/PolarCoordinateSystem.cxx deleted file mode 100644 index 02c52e033..000000000 --- a/chart2/source/model/main/PolarCoordinateSystem.cxx +++ /dev/null @@ -1,158 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "PolarCoordinateSystem.hxx" -#include "macros.hxx" -#include "servicenames_coosystems.hxx" - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::RuntimeException; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::rtl::OUString; - -namespace -{ - -static const ::rtl::OUString lcl_aServiceNamePolar2d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.PolarCoordinateSystem2d" )); -static const ::rtl::OUString lcl_aServiceNamePolar3d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.PolarCoordinateSystem3d" )); - -static const ::rtl::OUString lcl_aImplementationNamePolar2d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.PolarCoordinateSystem2d" )); -static const ::rtl::OUString lcl_aImplementationNamePolar3d( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.PolarCoordinateSystem3d" )); -} - -namespace chart -{ - -// explicit -PolarCoordinateSystem::PolarCoordinateSystem( - const uno::Reference< uno::XComponentContext > & xContext, - sal_Int32 nDimensionCount /* = 2 */, - sal_Bool bSwapXAndYAxis /* = sal_False */ ) : - BaseCoordinateSystem( xContext, nDimensionCount, bSwapXAndYAxis ) -{} - -PolarCoordinateSystem::PolarCoordinateSystem( - const PolarCoordinateSystem & rSource ) : - BaseCoordinateSystem( rSource ) -{} - -PolarCoordinateSystem::~PolarCoordinateSystem() -{} - -// ____ XCoordinateSystem ____ -::rtl::OUString SAL_CALL PolarCoordinateSystem::getCoordinateSystemType() - throw (RuntimeException) -{ - return CHART2_COOSYSTEM_POLAR_SERVICE_NAME; -} - -::rtl::OUString SAL_CALL PolarCoordinateSystem::getViewServiceName() - throw (RuntimeException) -{ - return CHART2_COOSYSTEM_POLAR_VIEW_SERVICE_NAME; -} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL PolarCoordinateSystem::createClone() - throw (RuntimeException) -{ - return Reference< util::XCloneable >( new PolarCoordinateSystem( *this )); -} - -// ____ XServiceInfo ____ -Sequence< OUString > PolarCoordinateSystem::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 1 ); - aServices[ 0 ] = CHART2_COOSYSTEM_POLAR_SERVICE_NAME; - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( PolarCoordinateSystem, - C2U( "com.sun.star.comp.chart.PolarCoordinateSystem" )) - - -// ================================= -// ==== PolarCoordinateSystem2d ==== -// ================================= - -PolarCoordinateSystem2d::PolarCoordinateSystem2d( - const uno::Reference< uno::XComponentContext > & xContext ) : - PolarCoordinateSystem( xContext, 2, sal_False ) -{} - -PolarCoordinateSystem2d::~PolarCoordinateSystem2d() -{} - -// ____ XServiceInfo ____ -Sequence< OUString > PolarCoordinateSystem2d::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - aServices[ 0 ] = CHART2_COOSYSTEM_POLAR_SERVICE_NAME; - aServices[ 1 ] = lcl_aServiceNamePolar2d; - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( PolarCoordinateSystem2d, lcl_aImplementationNamePolar2d ) - -// ================================= -// ==== PolarCoordinateSystem3d ==== -// ================================= - -PolarCoordinateSystem3d::PolarCoordinateSystem3d( - const uno::Reference< uno::XComponentContext > & xContext ) : - PolarCoordinateSystem( xContext, 3, sal_False ) -{} - -PolarCoordinateSystem3d::~PolarCoordinateSystem3d() -{} - -// ____ XServiceInfo ____ -Sequence< OUString > PolarCoordinateSystem3d::getSupportedServiceNames_Static() -{ - Sequence< OUString > aServices( 2 ); - aServices[ 0 ] = CHART2_COOSYSTEM_POLAR_SERVICE_NAME; - aServices[ 1 ] = lcl_aServiceNamePolar3d; - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( PolarCoordinateSystem3d, lcl_aImplementationNamePolar3d ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/StockBar.cxx b/chart2/source/model/main/StockBar.cxx deleted file mode 100644 index 031f70544..000000000 --- a/chart2/source/model/main/StockBar.cxx +++ /dev/null @@ -1,264 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" - -#include "StockBar.hxx" -#include "LineProperties.hxx" -#include "FillProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "PropertyHelper.hxx" -#include "macros.hxx" -#include "ContainerHelper.hxx" -#include "ModifyListenerHelper.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/style/XStyle.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/uno/Sequence.hxx> - -#include <algorithm> - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::Reference; -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; - -// ____________________________________________________________ - -namespace -{ - -static const ::rtl::OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.StockBar" )); - -struct StaticStockBarInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - uno::Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::FillProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - -}; - -struct StaticStockBarInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticStockBarInfoHelper_Initializer > -{ -}; - -struct StaticStockBarInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticStockBarInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticStockBarInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticStockBarInfo_Initializer > -{ -}; - -struct StaticStockBarDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - ::chart::FillProperties::AddDefaultsToMap( rOutMap ); - - // override other defaults - ::chart::PropertyHelper::setPropertyValue< sal_Int32 >( rOutMap, ::chart::FillProperties::PROP_FILL_COLOR, 0xffffff ); // white - } -}; - -struct StaticStockBarDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticStockBarDefaults_Initializer > -{ -}; - -} // anonymous namespace - -// ____________________________________________________________ - -namespace chart -{ - -StockBar::StockBar( bool bRisingCourse ) : - ::property::OPropertySet( m_aMutex ), - m_bRisingCourse( bRisingCourse ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ - if( ! m_bRisingCourse ) - { - setFastPropertyValue_NoBroadcast( - ::chart::FillProperties::PROP_FILL_COLOR, - uno::makeAny( sal_Int32( 0x000000 ))); // black - setFastPropertyValue_NoBroadcast( - ::chart::LineProperties::PROP_LINE_COLOR, - uno::makeAny( sal_Int32( 0xb3b3b3 ))); // gray30 - } -} - -StockBar::StockBar( const StockBar & rOther ) : - MutexContainer(), - impl::StockBar_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_bRisingCourse( rOther.m_bRisingCourse ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -StockBar::~StockBar() -{} - - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL StockBar::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new StockBar( *this )); -} - -// ____ OPropertySet ____ -uno::Any StockBar::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticStockBarDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL StockBar::getInfoHelper() -{ - return *StaticStockBarInfoHelper::get(); -} - -// ____ XPropertySet ____ -Reference< beans::XPropertySetInfo > SAL_CALL StockBar::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticStockBarInfo::get(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL StockBar::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL StockBar::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL StockBar::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL StockBar::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void StockBar::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void StockBar::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ================================================================================ - -uno::Sequence< ::rtl::OUString > StockBar::getSupportedServiceNames_Static() -{ - uno::Sequence< ::rtl::OUString > aServices( 2 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.StockBar" ); - aServices[ 1 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( StockBar, lcl_aServiceName ); - -using impl::StockBar_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( StockBar, StockBar_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Title.cxx b/chart2/source/model/main/Title.cxx deleted file mode 100644 index d1e3a9e47..000000000 --- a/chart2/source/model/main/Title.cxx +++ /dev/null @@ -1,409 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "Title.hxx" -#include "macros.hxx" -#include "FormattedString.hxx" -#include "LineProperties.hxx" -#include "FillProperties.hxx" -#include "ContainerHelper.hxx" -#include "CloneHelper.hxx" -#include "PropertyHelper.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/style/ParagraphAdjust.hpp> -#include <com/sun/star/drawing/FillStyle.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/chart2/RelativePosition.hpp> -#include <com/sun/star/awt/Size.hpp> -#include <rtl/uuid.h> -#include <cppuhelper/queryinterface.hxx> - -#include <vector> -#include <algorithm> - -using namespace ::com::sun::star; -using namespace ::com::sun::star::beans::PropertyAttribute; - -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; - -namespace -{ - -static const ::rtl::OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.Title" )); - -enum -{ - PROP_TITLE_PARA_ADJUST, - PROP_TITLE_PARA_LAST_LINE_ADJUST, - PROP_TITLE_PARA_LEFT_MARGIN, - PROP_TITLE_PARA_RIGHT_MARGIN, - PROP_TITLE_PARA_TOP_MARGIN, - PROP_TITLE_PARA_BOTTOM_MARGIN, - PROP_TITLE_PARA_IS_HYPHENATION, - - PROP_TITLE_TEXT_ROTATION, - PROP_TITLE_TEXT_STACKED, - PROP_TITLE_REL_POS, - - PROP_TITLE_REF_PAGE_SIZE -}; - -void lcl_AddPropertiesToVector( - ::std::vector< Property > & rOutProperties ) -{ - rOutProperties.push_back( - Property( C2U( "ParaAdjust" ), - PROP_TITLE_PARA_ADJUST, - ::getCppuType( reinterpret_cast< ::com::sun::star::style::ParagraphAdjust * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ParaLastLineAdjust" ), - PROP_TITLE_PARA_LAST_LINE_ADJUST, - ::getCppuType( reinterpret_cast< sal_Int16 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ParaLeftMargin" ), - PROP_TITLE_PARA_LEFT_MARGIN, - ::getCppuType( reinterpret_cast< sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ParaRightMargin" ), - PROP_TITLE_PARA_RIGHT_MARGIN, - ::getCppuType( reinterpret_cast< sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ParaTopMargin" ), - PROP_TITLE_PARA_TOP_MARGIN, - ::getCppuType( reinterpret_cast< sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ParaBottomMargin" ), - PROP_TITLE_PARA_BOTTOM_MARGIN, - ::getCppuType( reinterpret_cast< sal_Int32 * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "ParaIsHyphenation" ), - PROP_TITLE_PARA_IS_HYPHENATION, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "TextRotation" ), - PROP_TITLE_TEXT_ROTATION, - ::getCppuType( reinterpret_cast< const double * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - rOutProperties.push_back( - Property( C2U( "StackCharacters" ), - PROP_TITLE_TEXT_STACKED, - ::getBooleanCppuType(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT )); - - rOutProperties.push_back( - Property( C2U( "RelativePosition" ), - PROP_TITLE_REL_POS, - ::getCppuType( reinterpret_cast< const chart2::RelativePosition * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); - - rOutProperties.push_back( - Property( C2U( "ReferencePageSize" ), - PROP_TITLE_REF_PAGE_SIZE, - ::getCppuType( reinterpret_cast< const awt::Size * >(0)), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEVOID )); -} - -struct StaticTitleDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - ::chart::FillProperties::AddDefaultsToMap( rOutMap ); - - // ParagraphProperties - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_TITLE_PARA_ADJUST, - ::com::sun::star::style::ParagraphAdjust_CENTER ); - // PROP_TITLE_PARA_LAST_LINE_ADJUST - - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_LEFT_MARGIN, 0 ); - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_RIGHT_MARGIN, 0 ); - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_TOP_MARGIN, 0 ); - ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_TITLE_PARA_BOTTOM_MARGIN, 0 ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_TITLE_PARA_IS_HYPHENATION, true ); - - // own properties - ::chart::PropertyHelper::setPropertyValueDefault< double >( rOutMap, PROP_TITLE_TEXT_ROTATION, 0.0 ); - ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_TITLE_TEXT_STACKED, false ); - - // override other defaults - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::FillProperties::PROP_FILL_STYLE, drawing::FillStyle_NONE ); - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::LineProperties::PROP_LINE_STYLE, drawing::LineStyle_NONE ); - } -}; - -struct StaticTitleDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticTitleDefaults_Initializer > -{ -}; - -struct StaticTitleInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - uno::Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - lcl_AddPropertiesToVector( aProperties ); - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::FillProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - - -}; - -struct StaticTitleInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticTitleInfoHelper_Initializer > -{ -}; - -struct StaticTitleInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticTitleInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticTitleInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticTitleInfo_Initializer > -{ -}; - -} // anonymous namespace - -// ================================================================================ - -namespace chart -{ - -Title::Title( uno::Reference< uno::XComponentContext > const & /* xContext */ ) : - ::property::OPropertySet( m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -Title::Title( const Title & rOther ) : - MutexContainer(), - impl::Title_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{ - CloneHelper::CloneRefSequence< uno::Reference< chart2::XFormattedString > >( - rOther.m_aStrings, m_aStrings ); - ModifyListenerHelper::addListenerToAllElements( - ContainerHelper::SequenceToVector( m_aStrings ), m_xModifyEventForwarder ); -} - -Title::~Title() -{ - ModifyListenerHelper::removeListenerFromAllElements( - ContainerHelper::SequenceToVector( m_aStrings ), m_xModifyEventForwarder ); -} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL Title::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new Title( *this )); -} - -// -------------------------------------------------------------------------------- - -// ____ XTitle ____ -uno::Sequence< uno::Reference< chart2::XFormattedString > > SAL_CALL Title::getText() - throw (uno::RuntimeException) -{ - MutexGuard aGuard( GetMutex() ); - return m_aStrings; -} - -void SAL_CALL Title::setText( const uno::Sequence< uno::Reference< chart2::XFormattedString > >& rNewStrings ) - throw (uno::RuntimeException) -{ - uno::Sequence< uno::Reference< chart2::XFormattedString > > aOldStrings; - { - MutexGuard aGuard( GetMutex() ); - std::swap( m_aStrings, aOldStrings ); - m_aStrings = rNewStrings; - } - //don't keep the mutex locked while calling out - ModifyListenerHelper::removeListenerFromAllElements( - ContainerHelper::SequenceToVector( aOldStrings ), m_xModifyEventForwarder ); - ModifyListenerHelper::addListenerToAllElements( - ContainerHelper::SequenceToVector( rNewStrings ), m_xModifyEventForwarder ); - fireModifyEvent(); -} - -// ================================================================================ - -// ____ OPropertySet ____ -uno::Any Title::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticTitleDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL Title::getInfoHelper() -{ - return *StaticTitleInfoHelper::get(); -} - -// ____ XPropertySet ____ -uno::Reference< beans::XPropertySetInfo > SAL_CALL Title::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticTitleInfo::get(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL Title::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL Title::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL Title::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL Title::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void Title::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void Title::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - - -// ================================================================================ - -uno::Sequence< ::rtl::OUString > Title::getSupportedServiceNames_Static() -{ - uno::Sequence< ::rtl::OUString > aServices( 4 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.Title" ); - aServices[ 1 ] = C2U( "com.sun.star.style.ParagraphProperties" ); - aServices[ 2 ] = C2U( "com.sun.star.beans.PropertySet" ); - aServices[ 3 ] = C2U( "com.sun.star.layout.LayoutElement" ); - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( Title, lcl_aServiceName ); - -// needed by MSC compiler -using impl::Title_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( Title, Title_Base, ::property::OPropertySet ) -IMPLEMENT_FORWARD_XTYPEPROVIDER2( Title, Title_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Title.hxx b/chart2/source/model/main/Title.hxx deleted file mode 100644 index 1d5ef366b..000000000 --- a/chart2/source/model/main/Title.hxx +++ /dev/null @@ -1,143 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_TITLE_HXX -#define CHART_TITLE_HXX - -#include "ServiceMacros.hxx" -#include "ModifyListenerHelper.hxx" -#include "OPropertySet.hxx" -#include "MutexContainer.hxx" -#include <cppuhelper/implbase5.hxx> -#include <comphelper/uno3.hxx> -#include <com/sun/star/chart2/XTitle.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCloneable.hpp> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper5< - ::com::sun::star::chart2::XTitle, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - Title_Base; -} - -class Title : - public MutexContainer, - public impl::Title_Base, - public ::property::OPropertySet -{ -public: - Title( ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XComponentContext > const & xContext ); - virtual ~Title(); - - /// establish methods for factory instatiation - APPHELPER_SERVICE_FACTORY_HELPER( Title ) - - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -protected: - explicit Title( const Title & rOther ); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XTitle ____ - virtual ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XFormattedString > > SAL_CALL getText() - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setText( const ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XFormattedString > >& Strings ) - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::XFormattedString > > m_aStrings; - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; -}; - -} // namespace chart - -// CHART_TITLE_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/UndoManager.cxx b/chart2/source/model/main/UndoManager.cxx deleted file mode 100644 index 44056b118..000000000 --- a/chart2/source/model/main/UndoManager.cxx +++ /dev/null @@ -1,427 +0,0 @@ -/************************************************************************* - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "precompiled_chart2.hxx" - -#include "UndoManager.hxx" -#include "ChartViewHelper.hxx" - -/** === begin UNO includes === **/ -#include <com/sun/star/lang/DisposedException.hpp> -/** === end UNO includes === **/ - -#include <framework/undomanagerhelper.hxx> -#include <svl/undo.hxx> -#include <unotools/undoopt.hxx> - -//...................................................................................................................... -namespace chart -{ -//...................................................................................................................... - - /** === begin UNO using === **/ - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::uno::UNO_QUERY; - using ::com::sun::star::uno::UNO_QUERY_THROW; - using ::com::sun::star::uno::UNO_SET_THROW; - using ::com::sun::star::uno::Exception; - using ::com::sun::star::uno::RuntimeException; - using ::com::sun::star::uno::Any; - using ::com::sun::star::uno::makeAny; - using ::com::sun::star::uno::Sequence; - using ::com::sun::star::uno::Type; - using ::com::sun::star::lang::DisposedException; - using ::com::sun::star::document::XUndoManager; - using ::com::sun::star::document::EmptyUndoStackException; - using ::com::sun::star::document::UndoContextNotClosedException; - using ::com::sun::star::document::UndoFailedException; - using ::com::sun::star::util::InvalidStateException; - using ::com::sun::star::document::XUndoAction; - using ::com::sun::star::lang::IllegalArgumentException; - using ::com::sun::star::document::XUndoManagerListener; - using ::com::sun::star::util::NotLockedException; - using ::com::sun::star::lang::NoSupportException; - using ::com::sun::star::util::XModifyListener; - using ::com::sun::star::frame::XModel; - /** === end UNO using === **/ - - namespace impl - { - //============================================================================================================== - //= UndoManager_Impl - //============================================================================================================== - class UndoManager_Impl : public ::framework::IUndoManagerImplementation - { - public: - UndoManager_Impl( UndoManager& i_antiImpl, ::cppu::OWeakObject& i_parent, ::osl::Mutex& i_mutex ) - :m_rAntiImpl( i_antiImpl ) - ,m_rParent( i_parent ) - ,m_rMutex( i_mutex ) - ,m_bDisposed( false ) - ,m_aUndoManager() - ,m_aUndoHelper( *this ) - { - m_aUndoManager.SetMaxUndoActionCount( (sal_uInt16)SvtUndoOptions().GetUndoCount() ); - } - - virtual ~UndoManager_Impl() - { - } - - // ......................................................................................................... - // IUndoManagerImplementation - virtual ::osl::Mutex& getMutex(); - virtual ::svl::IUndoManager& getImplUndoManager(); - virtual Reference< XUndoManager > getThis(); - - // ......................................................................................................... - // attribute access - ::cppu::OWeakObject& getParent() { return m_rParent; } - ::framework::UndoManagerHelper& getUndoHelper() { return m_aUndoHelper; } - - // ......................................................................................................... - // public interface - - /// is called when the owner of the UndoManager is being disposed - void disposing(); - - /// checks whether we're already disposed, throws a DisposedException if so - void checkDisposed_lck(); - - private: - UndoManager& m_rAntiImpl; - ::cppu::OWeakObject& m_rParent; - ::osl::Mutex& m_rMutex; - bool m_bDisposed; - - SfxUndoManager m_aUndoManager; - ::framework::UndoManagerHelper m_aUndoHelper; - }; - - //-------------------------------------------------------------------------------------------------------------- - ::osl::Mutex& UndoManager_Impl::getMutex() - { - return m_rMutex; - } - - //-------------------------------------------------------------------------------------------------------------- - ::svl::IUndoManager& UndoManager_Impl::getImplUndoManager() - { - return m_aUndoManager; - } - - //-------------------------------------------------------------------------------------------------------------- - Reference< XUndoManager > UndoManager_Impl::getThis() - { - return &m_rAntiImpl; - } - - //-------------------------------------------------------------------------------------------------------------- - void UndoManager_Impl::disposing() - { - { - ::osl::MutexGuard aGuard( m_rMutex ); - m_bDisposed = true; - } - m_aUndoHelper.disposing(); - } - - //-------------------------------------------------------------------------------------------------------------- - void UndoManager_Impl::checkDisposed_lck() - { - if ( m_bDisposed ) - throw DisposedException( ::rtl::OUString(), getThis() ); - } - - //============================================================================================================== - //= UndoManagerMethodGuard - //============================================================================================================== - /** guard for public UNO methods of the UndoManager - - The only purpose of this guard is to check for the instance being disposed already. Everything else, - in particular the IMutexGuard functionality required by the UndoManagerHelper class, is a dummy only, - as all involved classes (means we ourselves, the UndoManagerHelper, the SfxUndoManager, and the Undo actions - we create) are inherently thread-safe, thus need no external lock (in particular no SolarMutex!). - */ - class UndoManagerMethodGuard : public ::framework::IMutexGuard - { - public: - UndoManagerMethodGuard( UndoManager_Impl& i_impl ) - { - ::osl::MutexGuard aGuard( i_impl.getMutex() ); - // throw if the instance is already disposed - i_impl.checkDisposed_lck(); - } - virtual ~UndoManagerMethodGuard() - { - } - - // IMutexGuard - virtual ::framework::IMutex& getGuardedMutex(); - - // IGuard - virtual void clear(); - virtual void reset(); - }; - - class DummyMutex : public ::framework::IMutex - { - public: - virtual void acquire() { } - virtual void release() { } - }; - - //-------------------------------------------------------------------------------------------------------------- - ::framework::IMutex& UndoManagerMethodGuard::getGuardedMutex() - { - static DummyMutex s_aDummyMutex; - return s_aDummyMutex; - } - - //-------------------------------------------------------------------------------------------------------------- - void UndoManagerMethodGuard::clear() - { - // nothing to do. This interface implementation is a dummy. - } - - //-------------------------------------------------------------------------------------------------------------- - void UndoManagerMethodGuard::reset() - { - // nothing to do. This interface implementation is a dummy. - } - } - - //================================================================================================================== - //= UndoManager - //================================================================================================================== - using impl::UndoManagerMethodGuard; - - //------------------------------------------------------------------------------------------------------------------ - UndoManager::UndoManager( ::cppu::OWeakObject& i_parent, ::osl::Mutex& i_mutex ) - :m_pImpl( new impl::UndoManager_Impl( *this, i_parent, i_mutex ) ) - { - } - - //------------------------------------------------------------------------------------------------------------------ - UndoManager::~UndoManager() - { - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::acquire() throw () - { - m_pImpl->getParent().acquire(); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::release() throw () - { - m_pImpl->getParent().release(); - } - - //------------------------------------------------------------------------------------------------------------------ - void UndoManager::disposing() - { - m_pImpl->disposing(); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::enterUndoContext( const ::rtl::OUString& i_title ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().enterUndoContext( i_title, aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::enterHiddenUndoContext( ) throw (EmptyUndoStackException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().enterHiddenUndoContext( aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::leaveUndoContext( ) throw (InvalidStateException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().leaveUndoContext( aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::addUndoAction( const Reference< XUndoAction >& i_action ) throw (IllegalArgumentException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().addUndoAction( i_action, aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::undo( ) throw (EmptyUndoStackException, UndoContextNotClosedException, UndoFailedException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().undo( aGuard ); - - ChartViewHelper::setViewToDirtyState( Reference< XModel >( getParent(), UNO_QUERY ) ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::redo( ) throw (EmptyUndoStackException, UndoContextNotClosedException, UndoFailedException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().redo( aGuard ); - - ChartViewHelper::setViewToDirtyState( Reference< XModel >( getParent(), UNO_QUERY ) ); - } - - //------------------------------------------------------------------------------------------------------------------ - ::sal_Bool SAL_CALL UndoManager::isUndoPossible( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().isUndoPossible(); - } - - //------------------------------------------------------------------------------------------------------------------ - ::sal_Bool SAL_CALL UndoManager::isRedoPossible( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().isRedoPossible(); - } - - //------------------------------------------------------------------------------------------------------------------ - ::rtl::OUString SAL_CALL UndoManager::getCurrentUndoActionTitle( ) throw (EmptyUndoStackException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().getCurrentUndoActionTitle(); - } - - //------------------------------------------------------------------------------------------------------------------ - ::rtl::OUString SAL_CALL UndoManager::getCurrentRedoActionTitle( ) throw (EmptyUndoStackException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().getCurrentRedoActionTitle(); - } - - //------------------------------------------------------------------------------------------------------------------ - Sequence< ::rtl::OUString > SAL_CALL UndoManager::getAllUndoActionTitles( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().getAllUndoActionTitles(); - } - - //------------------------------------------------------------------------------------------------------------------ - Sequence< ::rtl::OUString > SAL_CALL UndoManager::getAllRedoActionTitles( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().getAllRedoActionTitles(); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::clear( ) throw (UndoContextNotClosedException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().clear( aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::clearRedo( ) throw (UndoContextNotClosedException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().clearRedo( aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::reset( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().reset( aGuard ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::addUndoManagerListener( const Reference< XUndoManagerListener >& i_listener ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().addUndoManagerListener( i_listener ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::removeUndoManagerListener( const Reference< XUndoManagerListener >& i_listener ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().removeUndoManagerListener( i_listener ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::lock( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().lock(); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::unlock( ) throw (NotLockedException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().unlock(); - } - - //------------------------------------------------------------------------------------------------------------------ - ::sal_Bool SAL_CALL UndoManager::isLocked( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return m_pImpl->getUndoHelper().isLocked(); - } - - //------------------------------------------------------------------------------------------------------------------ - Reference< XInterface > SAL_CALL UndoManager::getParent( ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - return *&m_pImpl->getParent(); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::setParent( const Reference< XInterface >& i_parent ) throw (NoSupportException, RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - (void)i_parent; - throw NoSupportException( ::rtl::OUString(), m_pImpl->getThis() ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::addModifyListener( const Reference< XModifyListener >& i_listener ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().addModifyListener( i_listener ); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL UndoManager::removeModifyListener( const Reference< XModifyListener >& i_listener ) throw (RuntimeException) - { - UndoManagerMethodGuard aGuard( *m_pImpl ); - m_pImpl->getUndoHelper().removeModifyListener( i_listener ); - } - -//...................................................................................................................... -} // namespace chart -//...................................................................................................................... diff --git a/chart2/source/model/main/UndoManager.hxx b/chart2/source/model/main/UndoManager.hxx deleted file mode 100644 index 07091207e..000000000 --- a/chart2/source/model/main/UndoManager.hxx +++ /dev/null @@ -1,109 +0,0 @@ -/************************************************************************* - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef CHART2_UNDOMANAGER_HXX -#define CHART2_UNDOMANAGER_HXX - -/** === begin UNO includes === **/ -#include <com/sun/star/document/XUndoManager.hpp> -#include <com/sun/star/util/XModifyBroadcaster.hpp> -#include <com/sun/star/container/XChild.hpp> -/** === end UNO includes === **/ - -#include <cppuhelper/implbase2.hxx> - -#include <boost/scoped_ptr.hpp> - -//...................................................................................................................... -namespace chart -{ -//...................................................................................................................... - - namespace impl - { - class UndoManager_Impl; - typedef ::cppu::ImplHelper2 < ::com::sun::star::document::XUndoManager - , ::com::sun::star::util::XModifyBroadcaster - > UndoManager_Base; - } - - //================================================================================================================== - //= UndoManager - //================================================================================================================== - class UndoManager : public impl::UndoManager_Base - { - public: - UndoManager( ::cppu::OWeakObject& i_parent, ::osl::Mutex& i_mutex ); - virtual ~UndoManager(); - - // XInterface - virtual void SAL_CALL acquire( ) throw (); - virtual void SAL_CALL release( ) throw (); - - // XComponent equivalents - void disposing(); - - // XUndoManager - virtual void SAL_CALL enterUndoContext( const ::rtl::OUString& i_title ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL enterHiddenUndoContext( ) throw (::com::sun::star::document::EmptyUndoStackException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL leaveUndoContext( ) throw (::com::sun::star::util::InvalidStateException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL addUndoAction( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XUndoAction >& i_action ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL undo( ) throw (::com::sun::star::document::EmptyUndoStackException, ::com::sun::star::document::UndoContextNotClosedException, ::com::sun::star::document::UndoFailedException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL redo( ) throw (::com::sun::star::document::EmptyUndoStackException, ::com::sun::star::document::UndoContextNotClosedException, ::com::sun::star::document::UndoFailedException, ::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL isUndoPossible( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL isRedoPossible( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getCurrentUndoActionTitle( ) throw (::com::sun::star::document::EmptyUndoStackException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getCurrentRedoActionTitle( ) throw (::com::sun::star::document::EmptyUndoStackException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAllUndoActionTitles( ) throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAllRedoActionTitles( ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL clear( ) throw (::com::sun::star::document::UndoContextNotClosedException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL clearRedo( ) throw (::com::sun::star::document::UndoContextNotClosedException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL reset( ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL addUndoManagerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XUndoManagerListener >& i_listener ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL removeUndoManagerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XUndoManagerListener >& i_listener ) throw (::com::sun::star::uno::RuntimeException); - - // XLockable (base of XUndoManager) - virtual void SAL_CALL lock( ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL unlock( ) throw (::com::sun::star::util::NotLockedException, ::com::sun::star::uno::RuntimeException); - virtual ::sal_Bool SAL_CALL isLocked( ) throw (::com::sun::star::uno::RuntimeException); - - // XChild (base of XUndoManager) - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) throw (::com::sun::star::lang::NoSupportException, ::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); - - private: - ::boost::scoped_ptr< impl::UndoManager_Impl > m_pImpl; - }; - -//...................................................................................................................... -} // namespace chart -//...................................................................................................................... - -#endif // CHART2_UNDOMANAGER_HXX diff --git a/chart2/source/model/main/Wall.cxx b/chart2/source/model/main/Wall.cxx deleted file mode 100644 index 097a7573b..000000000 --- a/chart2/source/model/main/Wall.cxx +++ /dev/null @@ -1,255 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include "Wall.hxx" -#include "macros.hxx" -#include "LineProperties.hxx" -#include "FillProperties.hxx" -#include "UserDefinedProperties.hxx" -#include "ContainerHelper.hxx" -#include "PropertyHelper.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/drawing/FillStyle.hpp> -#include <com/sun/star/awt/Gradient.hpp> -#include <com/sun/star/drawing/Hatch.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/drawing/LineDash.hpp> -#include <com/sun/star/drawing/LineJoint.hpp> -#include <rtl/uuid.h> -#include <cppuhelper/queryinterface.hxx> - -#include <vector> -#include <algorithm> - -using namespace ::com::sun::star; -using namespace ::com::sun::star::beans::PropertyAttribute; - -using ::com::sun::star::beans::Property; -using ::osl::MutexGuard; - -namespace -{ - -static const ::rtl::OUString lcl_aServiceName( - RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart2.Wall" )); - -struct StaticWallDefaults_Initializer -{ - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - lcl_AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } -private: - void lcl_AddDefaultsToMap( ::chart::tPropertyValueMap & rOutMap ) - { - ::chart::LineProperties::AddDefaultsToMap( rOutMap ); - ::chart::FillProperties::AddDefaultsToMap( rOutMap ); - - // override other defaults - ::chart::PropertyHelper::setPropertyValue( rOutMap, ::chart::LineProperties::PROP_LINE_STYLE, drawing::LineStyle_NONE ); - } -}; - -struct StaticWallDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticWallDefaults_Initializer > -{ -}; - -struct StaticWallInfoHelper_Initializer -{ - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - uno::Sequence< Property > lcl_GetPropertySequence() - { - ::std::vector< ::com::sun::star::beans::Property > aProperties; - ::chart::LineProperties::AddPropertiesToVector( aProperties ); - ::chart::FillProperties::AddPropertiesToVector( aProperties ); - ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties ); - - ::std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return ::chart::ContainerHelper::ContainerToSequence( aProperties ); - } - -}; - -struct StaticWallInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticWallInfoHelper_Initializer > -{ -}; - -struct StaticWallInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticWallInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; - -struct StaticWallInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticWallInfo_Initializer > -{ -}; - -} // anonymous namespace - -// ================================================================================ - -namespace chart -{ - -Wall::Wall() : - ::property::OPropertySet( m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -Wall::Wall( const Wall & rOther ) : - MutexContainer(), - impl::Wall_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) -{} - -Wall::~Wall() -{} - -// ____ XCloneable ____ -uno::Reference< util::XCloneable > SAL_CALL Wall::createClone() - throw (uno::RuntimeException) -{ - return uno::Reference< util::XCloneable >( new Wall( *this )); -} - -// ================================================================================ - -// ____ OPropertySet ____ -uno::Any Wall::GetDefaultValue( sal_Int32 nHandle ) const - throw(beans::UnknownPropertyException) -{ - const tPropertyValueMap& rStaticDefaults = *StaticWallDefaults::get(); - tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); - if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; -} - -::cppu::IPropertyArrayHelper & SAL_CALL Wall::getInfoHelper() -{ - return *StaticWallInfoHelper::get(); -} - -// ____ XPropertySet ____ -uno::Reference< beans::XPropertySetInfo > SAL_CALL Wall::getPropertySetInfo() - throw (uno::RuntimeException) -{ - return *StaticWallInfo::get(); -} - -// ____ XModifyBroadcaster ____ -void SAL_CALL Wall::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -void SAL_CALL Wall::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - throw (uno::RuntimeException) -{ - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ex ) - { - ASSERT_EXCEPTION( ex ); - } -} - -// ____ XModifyListener ____ -void SAL_CALL Wall::modified( const lang::EventObject& aEvent ) - throw (uno::RuntimeException) -{ - m_xModifyEventForwarder->modified( aEvent ); -} - -// ____ XEventListener (base of XModifyListener) ____ -void SAL_CALL Wall::disposing( const lang::EventObject& /* Source */ ) - throw (uno::RuntimeException) -{ - // nothing -} - -// ____ OPropertySet ____ -void Wall::firePropertyChangeEvent() -{ - fireModifyEvent(); -} - -void Wall::fireModifyEvent() -{ - m_xModifyEventForwarder->modified( lang::EventObject( static_cast< uno::XWeak* >( this ))); -} - -// ================================================================================ - -uno::Sequence< ::rtl::OUString > Wall::getSupportedServiceNames_Static() -{ - uno::Sequence< ::rtl::OUString > aServices( 2 ); - aServices[ 0 ] = C2U( "com.sun.star.chart2.Wall" ); - aServices[ 1 ] = C2U( "com.sun.star.beans.PropertySet" ); - return aServices; -} - -// implement XServiceInfo methods basing upon getSupportedServiceNames_Static -APPHELPER_XSERVICEINFO_IMPL( Wall, lcl_aServiceName ); - -using impl::Wall_Base; - -IMPLEMENT_FORWARD_XINTERFACE2( Wall, Wall_Base, ::property::OPropertySet ) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/Wall.hxx b/chart2/source/model/main/Wall.hxx deleted file mode 100644 index d90db3476..000000000 --- a/chart2/source/model/main/Wall.hxx +++ /dev/null @@ -1,123 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef CHART_WALL_HXX -#define CHART_WALL_HXX - -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/util/XModifyBroadcaster.hpp> -#include <com/sun/star/util/XModifyListener.hpp> -#include "MutexContainer.hxx" -#include "OPropertySet.hxx" -#include <cppuhelper/weak.hxx> - -#include "ServiceMacros.hxx" -#include "ModifyListenerHelper.hxx" -#include <cppuhelper/implbase3.hxx> -#include <comphelper/uno3.hxx> - -namespace chart -{ - -namespace impl -{ -typedef ::cppu::WeakImplHelper3< - ::com::sun::star::util::XCloneable, - ::com::sun::star::util::XModifyBroadcaster, - ::com::sun::star::util::XModifyListener > - Wall_Base; -} - -class Wall : - public MutexContainer, - public impl::Wall_Base, - public ::property::OPropertySet -{ -public: - Wall(); - virtual ~Wall(); - - /// XServiceInfo declarations - APPHELPER_XSERVICEINFO_DECL() - - /// merge XInterface implementations - DECLARE_XINTERFACE() - -protected: - explicit Wall( const Wall & rOther ); - - // ____ OPropertySet ____ - virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const - throw(::com::sun::star::beans::UnknownPropertyException); - - // ____ OPropertySet ____ - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - // ____ XPropertySet ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL - getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - // ____ XCloneable ____ - virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone() - throw (::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); - - // ____ OPropertySet ____ - virtual void firePropertyChangeEvent(); - using OPropertySet::disposing; - - void fireModifyEvent(); - -private: - - ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > m_xModifyEventForwarder; -}; - -} // namespace chart - -// CHART_WALL_HXX -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/model/main/_serviceregistration_model.cxx b/chart2/source/model/main/_serviceregistration_model.cxx deleted file mode 100644 index 30e873b5d..000000000 --- a/chart2/source/model/main/_serviceregistration_model.cxx +++ /dev/null @@ -1,204 +0,0 @@ -/* -*- 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_chart2.hxx" -#include <cppuhelper/implementationentry.hxx> -#include "ChartModel.hxx" - -#include "Diagram.hxx" -#include "Legend.hxx" -#include "Axis.hxx" -#include "GridProperties.hxx" -#include "Title.hxx" -#include "FormattedString.hxx" -#include "PageBackground.hxx" -#include "DataSeries.hxx" -#include "PolarCoordinateSystem.hxx" -#include "CartesianCoordinateSystem.hxx" - -#include "ChartTypeManager.hxx" -#include "XMLFilter.hxx" - -#include "_serviceregistration_charttypes.hxx" - -static struct ::cppu::ImplementationEntry g_entries_chart2_model[] = -{ - { - ::chart::ChartModel::create - , ::chart::ChartModel::getImplementationName_Static - , ::chart::ChartModel::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::Diagram::create - , ::chart::Diagram::getImplementationName_Static - , ::chart::Diagram::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::Legend::create - , ::chart::Legend::getImplementationName_Static - , ::chart::Legend::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::Axis::create - , ::chart::Axis::getImplementationName_Static - , ::chart::Axis::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::GridProperties::create - , ::chart::GridProperties::getImplementationName_Static - , ::chart::GridProperties::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::Title::create - , ::chart::Title::getImplementationName_Static - , ::chart::Title::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - - ,{ - ::chart::FormattedString::create - , ::chart::FormattedString::getImplementationName_Static - , ::chart::FormattedString::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - - ,{ - ::chart::ChartTypeManager::create - , ::chart::ChartTypeManager::getImplementationName_Static - , ::chart::ChartTypeManager::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::PageBackground::create - , ::chart::PageBackground::getImplementationName_Static - , ::chart::PageBackground::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::DataSeries::create - , ::chart::DataSeries::getImplementationName_Static - , ::chart::DataSeries::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::XMLFilter::create - , ::chart::XMLFilter::getImplementationName_Static - , ::chart::XMLFilter::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::XMLReportFilterHelper::create - , ::chart::XMLReportFilterHelper::getImplementationName_Static - , ::chart::XMLFilter::getSupportedServiceNames_Static // we support the same, because we are derived from - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::PolarCoordinateSystem2d::create - , ::chart::PolarCoordinateSystem2d::getImplementationName_Static - , ::chart::PolarCoordinateSystem2d::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::PolarCoordinateSystem3d::create - , ::chart::PolarCoordinateSystem3d::getImplementationName_Static - , ::chart::PolarCoordinateSystem3d::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::CartesianCoordinateSystem2d::create - , ::chart::CartesianCoordinateSystem2d::getImplementationName_Static - , ::chart::CartesianCoordinateSystem2d::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ - ::chart::CartesianCoordinateSystem3d::create - , ::chart::CartesianCoordinateSystem3d::getImplementationName_Static - , ::chart::CartesianCoordinateSystem3d::getSupportedServiceNames_Static - , ::cppu::createSingleComponentFactory - , 0 - , 0 - } - ,{ 0, 0, 0, 0, 0, 0 } -}; - -// component exports -extern "C" -{ -SAL_DLLPUBLIC_EXPORT void * SAL_CALL chartmodel_component_getFactory( - const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) -{ - void * pResult = ::cppu::component_getFactoryHelper( - pImplName, pServiceManager, pRegistryKey, g_entries_chart2_model ); - - if( ! pResult ) - pResult = ::cppu::component_getFactoryHelper( - pImplName, pServiceManager, pRegistryKey, - ChartTypeEntriesForServiceRegistration::getImplementationEntries() ); - - return pResult; -} -} -//========================================================================= - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |