diff options
Diffstat (limited to 'chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx')
-rw-r--r-- | chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx b/chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx index 7eb90e8b932b..61946ea5d75f 100644 --- a/chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx +++ b/chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx @@ -20,13 +20,12 @@ #include <WrappedProperty.hxx> #include "Chart2ModelContact.hxx" -#include <DiagramHelper.hxx> +#include <DataSeries.hxx> #include <memory> +#include <utility> #include <vector> -namespace com::sun::star::chart2 { class XDataSeries; } - namespace chart::wrapper { @@ -46,10 +45,10 @@ public: virtual void setValueToSeries( const css::uno::Reference< css::beans::XPropertySet >& xSeriesPropertySet, const PROPERTYTYPE & aNewValue ) const =0; explicit WrappedSeriesOrDiagramProperty( const OUString& rName, const css::uno::Any& rDefaulValue - , const std::shared_ptr<Chart2ModelContact>& spChart2ModelContact + , std::shared_ptr<Chart2ModelContact> spChart2ModelContact , tSeriesOrDiagramPropertyType ePropertyType ) : WrappedProperty(rName,OUString()) - , m_spChart2ModelContact(spChart2ModelContact) + , m_spChart2ModelContact(std::move(spChart2ModelContact)) , m_aOuterValue(rDefaulValue) , m_aDefaultValue(rDefaulValue) , m_ePropertyType( ePropertyType ) @@ -58,30 +57,31 @@ public: bool detectInnerValue( PROPERTYTYPE& rValue, bool& rHasAmbiguousValue ) const { - bool bHasDetectableInnerValue = false; rHasAmbiguousValue = false; - if( m_ePropertyType == DIAGRAM && - m_spChart2ModelContact ) + if( m_ePropertyType != DIAGRAM || !m_spChart2ModelContact ) + return false; + bool bHasDetectableInnerValue = false; + rtl::Reference<Diagram> xDiagram = m_spChart2ModelContact->getDiagram(); + if (!xDiagram) + return false; + std::vector< rtl::Reference< DataSeries > > aSeriesVector = + xDiagram->getDataSeries(); + for (auto const& series : aSeriesVector) { - std::vector< css::uno::Reference< css::chart2::XDataSeries > > aSeriesVector( - ::chart::DiagramHelper::getDataSeriesFromDiagram( m_spChart2ModelContact->getChart2Diagram() ) ); - for (auto const& series : aSeriesVector) + PROPERTYTYPE aCurValue = getValueFromSeries( series ); + if( !bHasDetectableInnerValue ) + rValue = aCurValue; + else { - PROPERTYTYPE aCurValue = getValueFromSeries( css::uno::Reference< css::beans::XPropertySet >::query(series) ); - if( !bHasDetectableInnerValue ) - rValue = aCurValue; - else + if( rValue != aCurValue ) { - if( rValue != aCurValue ) - { - rHasAmbiguousValue = true; - break; - } - else - rValue = aCurValue; + rHasAmbiguousValue = true; + break; } - bHasDetectableInnerValue = true; + else + rValue = aCurValue; } + bHasDetectableInnerValue = true; } return bHasDetectableInnerValue; } @@ -90,15 +90,11 @@ public: if( m_ePropertyType == DIAGRAM && m_spChart2ModelContact ) { - std::vector< css::uno::Reference< css::chart2::XDataSeries > > aSeriesVector( - ::chart::DiagramHelper::getDataSeriesFromDiagram( m_spChart2ModelContact->getChart2Diagram() ) ); + std::vector< rtl::Reference< DataSeries > > aSeriesVector = + m_spChart2ModelContact->getDiagram()->getDataSeries(); for (auto const& series : aSeriesVector) { - css::uno::Reference< css::beans::XPropertySet > xSeriesPropertySet(series, css::uno::UNO_QUERY); - if( xSeriesPropertySet.is() ) - { - setValueToSeries( xSeriesPropertySet, aNewValue ); - } + setValueToSeries( series, aNewValue ); } } } @@ -106,7 +102,7 @@ public: { PROPERTYTYPE aNewValue = PROPERTYTYPE(); if( ! (rOuterValue >>= aNewValue) ) - throw css::lang::IllegalArgumentException( "statistic property requires different type", nullptr, 0 ); + throw css::lang::IllegalArgumentException( u"statistic property requires different type"_ustr, nullptr, 0 ); if( m_ePropertyType == DIAGRAM ) { |