diff options
Diffstat (limited to 'chart2/source/model/main/FormattedString.cxx')
-rw-r--r-- | chart2/source/model/main/FormattedString.cxx | 152 |
1 files changed, 72 insertions, 80 deletions
diff --git a/chart2/source/model/main/FormattedString.cxx b/chart2/source/model/main/FormattedString.cxx index 0d6e733a2c31..8e1842559c7b 100644 --- a/chart2/source/model/main/FormattedString.cxx +++ b/chart2/source/model/main/FormattedString.cxx @@ -17,13 +17,12 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "FormattedString.hxx" +#include <FormattedString.hxx> #include <CharacterProperties.hxx> #include <PropertyHelper.hxx> #include <ModifyListenerHelper.hxx> #include <cppuhelper/supportsservice.hxx> -#include <tools/diagnose_ex.h> namespace com::sun::star::uno { class XComponentContext; } @@ -33,61 +32,36 @@ using ::com::sun::star::beans::Property; using ::com::sun::star::uno::Sequence; using ::osl::MutexGuard; -namespace +namespace chart { - -struct StaticFormattedStringDefaults_Initializer +const ::chart::tPropertyValueMap & StaticFormattedStringDefaults() { - ::chart::tPropertyValueMap* operator()() - { - static ::chart::tPropertyValueMap aStaticDefaults; - ::chart::CharacterProperties::AddDefaultsToMap( aStaticDefaults ); - return &aStaticDefaults; - } + static ::chart::tPropertyValueMap aStaticDefaults = [] + { + ::chart::tPropertyValueMap aMap; + ::chart::CharacterProperties::AddDefaultsToMap( aMap ); + return aMap; + }(); + return aStaticDefaults; }; +} // namespace chart -struct StaticFormattedStringDefaults : public rtl::StaticAggregate< ::chart::tPropertyValueMap, StaticFormattedStringDefaults_Initializer > -{ -}; - -struct StaticFormattedStringInfoHelper_Initializer +namespace { - ::cppu::OPropertyArrayHelper* operator()() - { - static ::cppu::OPropertyArrayHelper aPropHelper( lcl_GetPropertySequence() ); - return &aPropHelper; - } - -private: - static Sequence< Property > lcl_GetPropertySequence() - { - std::vector< css::beans::Property > aProperties; - ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); - std::sort( aProperties.begin(), aProperties.end(), - ::chart::PropertyNameLess() ); - - return comphelper::containerToSequence( aProperties ); - } - -}; - -struct StaticFormattedStringInfoHelper : public rtl::StaticAggregate< ::cppu::OPropertyArrayHelper, StaticFormattedStringInfoHelper_Initializer > +::cppu::OPropertyArrayHelper& StaticFormattedStringInfoHelper() { -}; + static ::cppu::OPropertyArrayHelper aPropHelper = []() + { + std::vector< css::beans::Property > aProperties; + ::chart::CharacterProperties::AddPropertiesToVector( aProperties ); -struct StaticFormattedStringInfo_Initializer -{ - uno::Reference< beans::XPropertySetInfo >* operator()() - { - static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(*StaticFormattedStringInfoHelper::get() ) ); - return &xPropertySetInfo; - } -}; + std::sort( aProperties.begin(), aProperties.end(), + ::chart::PropertyNameLess() ); -struct StaticFormattedStringInfo : public rtl::StaticAggregate< uno::Reference< beans::XPropertySetInfo >, StaticFormattedStringInfo_Initializer > -{ + return comphelper::containerToSequence( aProperties ); + }(); + return aPropHelper; }; } // anonymous namespace @@ -96,20 +70,19 @@ namespace chart { FormattedString::FormattedString() : - ::property::OPropertySet( m_aMutex ), - m_aString(), m_aType(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT), - m_aGuid(), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) + m_bDataLabelsRange(false), + m_xModifyEventForwarder( new ModifyEventForwarder() ) {} FormattedString::FormattedString( const FormattedString & rOther ) : impl::FormattedString_Base(rOther), - ::property::OPropertySet( rOther, m_aMutex ), + ::property::OPropertySet( rOther ), m_aString( rOther.m_aString ), m_aType(rOther.m_aType), m_aGuid(rOther.m_aGuid), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) + m_bDataLabelsRange(rOther.m_bDataLabelsRange), + m_xModifyEventForwarder( new ModifyEventForwarder() ) {} FormattedString::~FormattedString() @@ -174,31 +147,47 @@ void SAL_CALL FormattedString::setGuid( const OUString& guid ) } -// ____ XModifyBroadcaster ____ -void SAL_CALL FormattedString::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) +sal_Bool SAL_CALL FormattedString::getDataLabelsRange() +{ + MutexGuard aGuard( m_aMutex); + return m_bDataLabelsRange; +} + +void SAL_CALL FormattedString::setDataLabelsRange( sal_Bool dataLabelsRange ) { - try { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->addModifyListener( aListener ); + MutexGuard aGuard( m_aMutex); + m_bDataLabelsRange = dataLabelsRange; } - catch( const uno::Exception & ) + //don't keep the mutex locked while calling out + fireModifyEvent(); +} + +OUString SAL_CALL FormattedString::getCellRange() +{ + MutexGuard aGuard( m_aMutex); + return m_aCellRange; +} + +void SAL_CALL FormattedString::setCellRange( const OUString& cellRange ) +{ { - DBG_UNHANDLED_EXCEPTION("chart2"); + MutexGuard aGuard( m_aMutex); + m_aCellRange = cellRange; } + //don't keep the mutex locked while calling out + fireModifyEvent(); +} + +// ____ XModifyBroadcaster ____ +void SAL_CALL FormattedString::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) +{ + m_xModifyEventForwarder->addModifyListener( aListener ); } void SAL_CALL FormattedString::removeModifyListener( const uno::Reference< util::XModifyListener >& aListener ) { - try - { - uno::Reference< util::XModifyBroadcaster > xBroadcaster( m_xModifyEventForwarder, uno::UNO_QUERY_THROW ); - xBroadcaster->removeModifyListener( aListener ); - } - catch( const uno::Exception & ) - { - DBG_UNHANDLED_EXCEPTION("chart2"); - } + m_xModifyEventForwarder->removeModifyListener( aListener ); } // ____ XModifyListener ____ @@ -225,25 +214,28 @@ void FormattedString::fireModifyEvent() } // ____ OPropertySet ____ -uno::Any FormattedString::GetDefaultValue( sal_Int32 nHandle ) const +void FormattedString::GetDefaultValue( sal_Int32 nHandle, uno::Any& rAny ) const { - const tPropertyValueMap& rStaticDefaults = *StaticFormattedStringDefaults::get(); + const tPropertyValueMap& rStaticDefaults = StaticFormattedStringDefaults(); tPropertyValueMap::const_iterator aFound( rStaticDefaults.find( nHandle ) ); if( aFound == rStaticDefaults.end() ) - return uno::Any(); - return (*aFound).second; + rAny.clear(); + else + rAny = (*aFound).second; } // ____ OPropertySet ____ ::cppu::IPropertyArrayHelper & SAL_CALL FormattedString::getInfoHelper() { - return *StaticFormattedStringInfoHelper::get(); + return StaticFormattedStringInfoHelper(); } // ____ XPropertySet ____ uno::Reference< beans::XPropertySetInfo > SAL_CALL FormattedString::getPropertySetInfo() { - return *StaticFormattedStringInfo::get(); + static uno::Reference< beans::XPropertySetInfo > xPropertySetInfo( + ::cppu::OPropertySetHelper::createPropertySetInfo(StaticFormattedStringInfoHelper() ) ); + return xPropertySetInfo; } using impl::FormattedString_Base; @@ -256,7 +248,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( FormattedString, FormattedString_Base, ::prope // implement XServiceInfo methods basing upon getSupportedServiceNames_Static OUString SAL_CALL FormattedString::getImplementationName() { - return "com.sun.star.comp.chart.FormattedString"; + return u"com.sun.star.comp.chart.FormattedString"_ustr; } sal_Bool SAL_CALL FormattedString::supportsService( const OUString& rServiceName ) @@ -267,9 +259,9 @@ sal_Bool SAL_CALL FormattedString::supportsService( const OUString& rServiceName css::uno::Sequence< OUString > SAL_CALL FormattedString::getSupportedServiceNames() { return { - "com.sun.star.chart2.DataPointCustomLabelField", - "com.sun.star.chart2.FormattedString", - "com.sun.star.beans.PropertySet" }; + u"com.sun.star.chart2.DataPointCustomLabelField"_ustr, + u"com.sun.star.chart2.FormattedString"_ustr, + u"com.sun.star.beans.PropertySet"_ustr }; } } // namespace chart |