/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_chart2.hxx" #include "WrappedStatisticProperties.hxx" #include "WrappedSeriesOrDiagramProperty.hxx" #include "macros.hxx" #include "FastPropertyIdRanges.hxx" #include "RegressionCurveHelper.hxx" #include "DiagramHelper.hxx" #include "ErrorBar.hxx" #include "StatisticsHelper.hxx" #include #include #include #include #include #include #include using namespace ::com::sun::star; using ::com::sun::star::uno::Any; using ::com::sun::star::uno::Reference; using ::com::sun::star::uno::Sequence; using ::com::sun::star::beans::Property; using ::rtl::OUString; //............................................................................. namespace chart { namespace wrapper { namespace { Any lcl_getRegressionDefault() { Any aRet; aRet <<= ::com::sun::star::chart::ChartRegressionCurveType_NONE; return aRet; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- ::com::sun::star::chart::ChartRegressionCurveType lcl_getRegressionCurveType( RegressionCurveHelper::tRegressionType eRegressionType ) { ::com::sun::star::chart::ChartRegressionCurveType eRet = ::com::sun::star::chart::ChartRegressionCurveType_NONE; switch(eRegressionType) { case RegressionCurveHelper::REGRESSION_TYPE_LINEAR: eRet = ::com::sun::star::chart::ChartRegressionCurveType_LINEAR; break; case RegressionCurveHelper::REGRESSION_TYPE_LOG: eRet = ::com::sun::star::chart::ChartRegressionCurveType_LOGARITHM; break; case RegressionCurveHelper::REGRESSION_TYPE_EXP: eRet = ::com::sun::star::chart::ChartRegressionCurveType_EXPONENTIAL; break; case RegressionCurveHelper::REGRESSION_TYPE_POWER: eRet = ::com::sun::star::chart::ChartRegressionCurveType_POWER; break; default: eRet = ::com::sun::star::chart::ChartRegressionCurveType_NONE; break; } return eRet; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- RegressionCurveHelper::tRegressionType lcl_getRegressionType( ::com::sun::star::chart::ChartRegressionCurveType eRegressionCurveType ) { RegressionCurveHelper::tRegressionType eRet; switch(eRegressionCurveType) { case ::com::sun::star::chart::ChartRegressionCurveType_LINEAR: eRet = RegressionCurveHelper::REGRESSION_TYPE_LINEAR; break; case ::com::sun::star::chart::ChartRegressionCurveType_LOGARITHM: eRet = RegressionCurveHelper::REGRESSION_TYPE_LOG; break; case ::com::sun::star::chart::ChartRegressionCurveType_EXPONENTIAL: eRet = RegressionCurveHelper::REGRESSION_TYPE_EXP; break; case ::com::sun::star::chart::ChartRegressionCurveType_POLYNOMIAL: case ::com::sun::star::chart::ChartRegressionCurveType_POWER: eRet = RegressionCurveHelper::REGRESSION_TYPE_POWER; break; default: eRet = RegressionCurveHelper::REGRESSION_TYPE_NONE; break; } return eRet; } sal_Int32 lcl_getErrorBarStyle( const uno::Reference< beans::XPropertySet >& xErrorBarProperties ) { sal_Int32 nStyle = ::com::sun::star::chart::ErrorBarStyle::NONE; if(xErrorBarProperties.is()) xErrorBarProperties->getPropertyValue( C2U( "ErrorBarStyle" )) >>= nStyle; return nStyle; } uno::Reference< chart2::data::XDataProvider > lcl_getDataProviderFromContact( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact ) { uno::Reference< chart2::data::XDataProvider > xResult; if( spChart2ModelContact.get()) { uno::Reference< chart2::XChartDocument > xChartDoc( spChart2ModelContact->getChart2Document()); if( xChartDoc.is()) xResult.set( xChartDoc->getDataProvider()); } return xResult; } void lcl_ConvertRangeFromXML( ::rtl::OUString & rInOutRange, ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact ) { if( !rInOutRange.isEmpty() ) { uno::Reference< chart2::data::XRangeXMLConversion > xConverter( lcl_getDataProviderFromContact( spChart2ModelContact ), uno::UNO_QUERY ); if( xConverter.is()) { ::rtl::OUString aResult = xConverter->convertRangeFromXML( rInOutRange ); rInOutRange = aResult; } } } void lcl_ConvertRangeToXML( ::rtl::OUString & rInOutRange, ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact ) { if( !rInOutRange.isEmpty() ) { uno::Reference< chart2::data::XRangeXMLConversion > xConverter( lcl_getDataProviderFromContact( spChart2ModelContact ), uno::UNO_QUERY ); if( xConverter.is()) { ::rtl::OUString aResult = xConverter->convertRangeToXML( rInOutRange ); rInOutRange = aResult; } } } }//anonymous namespace //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- template< typename PROPERTYTYPE > class WrappedStatisticProperty : public WrappedSeriesOrDiagramProperty< PROPERTYTYPE > { public: explicit WrappedStatisticProperty( const OUString& rName, const Any& rDefaulValue , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact , tSeriesOrDiagramPropertyType ePropertyType ) : WrappedSeriesOrDiagramProperty< PROPERTYTYPE >(rName,rDefaulValue,spChart2ModelContact,ePropertyType) {} virtual ~WrappedStatisticProperty() {}; protected: uno::Reference< beans::XPropertySet > getOrCreateErrorBarProperties( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { if(!xSeriesPropertySet.is()) return 0; uno::Reference< beans::XPropertySet > xErrorBarProperties; xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties; if( !xErrorBarProperties.is() ) { // todo: use a valid context xErrorBarProperties = ::chart::createErrorBar( uno::Reference< uno::XComponentContext >() ); //default in new and old api are different xErrorBarProperties->setPropertyValue( C2U( "ShowPositiveError" ), uno::makeAny(sal_Bool(sal_False)) ); xErrorBarProperties->setPropertyValue( C2U( "ShowNegativeError" ), uno::makeAny(sal_Bool(sal_False)) ); xErrorBarProperties->setPropertyValue( C2U( "ErrorBarStyle" ), uno::makeAny(::com::sun::star::chart::ErrorBarStyle::NONE) ); xSeriesPropertySet->setPropertyValue( C2U( "ErrorBarY" ), uno::makeAny( xErrorBarProperties ) ); } return xErrorBarProperties; } }; //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_CONST_ERROR_LOW class WrappedConstantErrorLowProperty : public WrappedStatisticProperty< double > { public: virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const; explicit WrappedConstantErrorLowProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedConstantErrorLowProperty(); private: mutable Any m_aOuterValue; }; WrappedConstantErrorLowProperty::WrappedConstantErrorLowProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< double >( C2U("ConstantErrorLow") , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType ) { } WrappedConstantErrorLowProperty::~WrappedConstantErrorLowProperty() { } double WrappedConstantErrorLowProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { double aRet = 0.0; m_aDefaultValue >>= aRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) ) xErrorBarProperties->getPropertyValue( C2U( "NegativeError" )) >>= aRet; else m_aOuterValue >>= aRet; } return aRet; } void WrappedConstantErrorLowProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { m_aOuterValue = uno::makeAny( aNewValue ); if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) ) { xErrorBarProperties->setPropertyValue( C2U( "NegativeError" ), m_aOuterValue ); } } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_CONST_ERROR_HIGH class WrappedConstantErrorHighProperty : public WrappedStatisticProperty< double > { public: virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const; explicit WrappedConstantErrorHighProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedConstantErrorHighProperty(); private: mutable Any m_aOuterValue; }; WrappedConstantErrorHighProperty::WrappedConstantErrorHighProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< double >( C2U("ConstantErrorHigh") , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType ) { } WrappedConstantErrorHighProperty::~WrappedConstantErrorHighProperty() { } double WrappedConstantErrorHighProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { double aRet = 0.0; m_aDefaultValue >>= aRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) ) xErrorBarProperties->getPropertyValue( C2U( "PositiveError" )) >>= aRet; else m_aOuterValue >>= aRet; } return aRet; } void WrappedConstantErrorHighProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { m_aOuterValue = uno::makeAny( aNewValue ); if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) ) { xErrorBarProperties->setPropertyValue( C2U( "PositiveError" ), m_aOuterValue ); } } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_MEAN_VALUE class WrappedMeanValueProperty : public WrappedStatisticProperty< sal_Bool > { public: virtual sal_Bool getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Bool aNewValue ) const; explicit WrappedMeanValueProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedMeanValueProperty(); }; WrappedMeanValueProperty::WrappedMeanValueProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< sal_Bool >( C2U("MeanValue"), uno::makeAny( sal_False ), spChart2ModelContact, ePropertyType ) { } WrappedMeanValueProperty::~WrappedMeanValueProperty() { } sal_Bool WrappedMeanValueProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { sal_Bool bRet = sal_False; uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY ); if( xRegCnt.is() ) bRet = RegressionCurveHelper::hasMeanValueLine( xRegCnt ); return bRet; } void WrappedMeanValueProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Bool aNewValue ) const { uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY ); if( xRegCnt.is() ) { if(aNewValue) RegressionCurveHelper::addMeanValueLine( xRegCnt, 0, 0 ); else RegressionCurveHelper::removeMeanValueLine( xRegCnt ); } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_ERROR_CATEGORY // deprecated, replaced by ErrorBarStyle class WrappedErrorCategoryProperty : public WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorCategory > { public: virtual ::com::sun::star::chart::ChartErrorCategory getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorCategory aNewValue ) const; explicit WrappedErrorCategoryProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedErrorCategoryProperty(); }; WrappedErrorCategoryProperty::WrappedErrorCategoryProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorCategory >( C2U("ErrorCategory") , uno::makeAny( ::com::sun::star::chart::ChartErrorCategory_NONE ), spChart2ModelContact, ePropertyType ) { } WrappedErrorCategoryProperty::~WrappedErrorCategoryProperty() { } ::com::sun::star::chart::ChartErrorCategory WrappedErrorCategoryProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { ::com::sun::star::chart::ChartErrorCategory aRet = ::com::sun::star::chart::ChartErrorCategory_NONE; m_aDefaultValue >>= aRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { sal_Int32 nStyle = ::com::sun::star::chart::ErrorBarStyle::NONE; xErrorBarProperties->getPropertyValue( C2U( "ErrorBarStyle" )) >>= nStyle; switch(nStyle) { case ::com::sun::star::chart::ErrorBarStyle::NONE: aRet = ::com::sun::star::chart::ChartErrorCategory_NONE; break; case ::com::sun::star::chart::ErrorBarStyle::VARIANCE: aRet = ::com::sun::star::chart::ChartErrorCategory_VARIANCE; break; case ::com::sun::star::chart::ErrorBarStyle::STANDARD_DEVIATION: aRet = ::com::sun::star::chart::ChartErrorCategory_STANDARD_DEVIATION; break; case ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE: aRet = ::com::sun::star::chart::ChartErrorCategory_CONSTANT_VALUE; break; case ::com::sun::star::chart::ErrorBarStyle::RELATIVE: aRet = ::com::sun::star::chart::ChartErrorCategory_PERCENT; break; case ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN: aRet = ::com::sun::star::chart::ChartErrorCategory_ERROR_MARGIN; break; case ::com::sun::star::chart::ErrorBarStyle::STANDARD_ERROR: break; case ::com::sun::star::chart::ErrorBarStyle::FROM_DATA: break; default: break; } } return aRet; } void WrappedErrorCategoryProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorCategory aNewValue ) const { if( !xSeriesPropertySet.is() ) return; uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { sal_Int32 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::NONE; switch(aNewValue) { case ::com::sun::star::chart::ChartErrorCategory_NONE: nNewStyle = ::com::sun::star::chart::ErrorBarStyle::NONE; break; case ::com::sun::star::chart::ChartErrorCategory_VARIANCE: nNewStyle = ::com::sun::star::chart::ErrorBarStyle::VARIANCE; break; case ::com::sun::star::chart::ChartErrorCategory_STANDARD_DEVIATION: nNewStyle = ::com::sun::star::chart::ErrorBarStyle::STANDARD_DEVIATION; break; case ::com::sun::star::chart::ChartErrorCategory_CONSTANT_VALUE: nNewStyle = ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE; break; case ::com::sun::star::chart::ChartErrorCategory_PERCENT: nNewStyle = ::com::sun::star::chart::ErrorBarStyle::RELATIVE; break; case ::com::sun::star::chart::ChartErrorCategory_ERROR_MARGIN: nNewStyle = ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN; break; default: break; } xErrorBarProperties->setPropertyValue( C2U( "ErrorBarStyle" ), uno::makeAny(nNewStyle) ); } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_PERCENT_ERROR class WrappedPercentageErrorProperty : public WrappedStatisticProperty< double > { public: virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const; explicit WrappedPercentageErrorProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedPercentageErrorProperty(); private: mutable Any m_aOuterValue; }; WrappedPercentageErrorProperty::WrappedPercentageErrorProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< double >( C2U("PercentageError") , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType ) { } WrappedPercentageErrorProperty::~WrappedPercentageErrorProperty() { } double WrappedPercentageErrorProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { double aRet = 0.0; m_aDefaultValue >>= aRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { if( ::com::sun::star::chart::ErrorBarStyle::RELATIVE == lcl_getErrorBarStyle( xErrorBarProperties ) ) xErrorBarProperties->getPropertyValue( C2U( "PositiveError" )) >>= aRet; else m_aOuterValue >>= aRet; } return aRet; } void WrappedPercentageErrorProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { m_aOuterValue = uno::makeAny( aNewValue ); if( ::com::sun::star::chart::ErrorBarStyle::RELATIVE == lcl_getErrorBarStyle( xErrorBarProperties ) ) { xErrorBarProperties->setPropertyValue( C2U( "PositiveError" ), m_aOuterValue ); xErrorBarProperties->setPropertyValue( C2U( "NegativeError" ), m_aOuterValue ); } } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_ERROR_MARGIN class WrappedErrorMarginProperty : public WrappedStatisticProperty< double > { public: virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const; explicit WrappedErrorMarginProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedErrorMarginProperty(); private: mutable Any m_aOuterValue; }; WrappedErrorMarginProperty::WrappedErrorMarginProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< double >( C2U("ErrorMargin") , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType ) { } WrappedErrorMarginProperty::~WrappedErrorMarginProperty() { } double WrappedErrorMarginProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { double aRet = 0.0; m_aDefaultValue >>= aRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { if( ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN == lcl_getErrorBarStyle( xErrorBarProperties ) ) xErrorBarProperties->getPropertyValue( C2U( "PositiveError" )) >>= aRet; else m_aOuterValue >>= aRet; } return aRet; } void WrappedErrorMarginProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { m_aOuterValue = uno::makeAny( aNewValue ); if( ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN == lcl_getErrorBarStyle( xErrorBarProperties ) ) { xErrorBarProperties->setPropertyValue( C2U( "PositiveError" ), m_aOuterValue ); xErrorBarProperties->setPropertyValue( C2U( "NegativeError" ), m_aOuterValue ); } } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_ERROR_INDICATOR class WrappedErrorIndicatorProperty : public WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorIndicatorType > { public: virtual ::com::sun::star::chart::ChartErrorIndicatorType getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorIndicatorType aNewValue ) const; explicit WrappedErrorIndicatorProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedErrorIndicatorProperty(); }; WrappedErrorIndicatorProperty::WrappedErrorIndicatorProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorIndicatorType >( C2U("ErrorIndicator") , uno::makeAny( ::com::sun::star::chart::ChartErrorIndicatorType_NONE ), spChart2ModelContact, ePropertyType ) { } WrappedErrorIndicatorProperty::~WrappedErrorIndicatorProperty() { } ::com::sun::star::chart::ChartErrorIndicatorType WrappedErrorIndicatorProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { ::com::sun::star::chart::ChartErrorIndicatorType aRet = ::com::sun::star::chart::ChartErrorIndicatorType_NONE; m_aDefaultValue >>= aRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { sal_Bool bPositive = sal_False; sal_Bool bNegative = sal_False; xErrorBarProperties->getPropertyValue( C2U( "ShowPositiveError" )) >>= bPositive; xErrorBarProperties->getPropertyValue( C2U( "ShowNegativeError" )) >>= bNegative; if( bPositive && bNegative ) aRet = ::com::sun::star::chart::ChartErrorIndicatorType_TOP_AND_BOTTOM; else if( bPositive && !bNegative ) aRet = ::com::sun::star::chart::ChartErrorIndicatorType_UPPER; else if( !bPositive && bNegative ) aRet = ::com::sun::star::chart::ChartErrorIndicatorType_LOWER; } return aRet; } void WrappedErrorIndicatorProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorIndicatorType aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { sal_Bool bPositive = sal_False; sal_Bool bNegative = sal_False; switch( aNewValue ) { case ::com::sun::star::chart::ChartErrorIndicatorType_TOP_AND_BOTTOM: bPositive = sal_True; bNegative = sal_True; break; case ::com::sun::star::chart::ChartErrorIndicatorType_UPPER: bPositive = sal_True; break; case ::com::sun::star::chart::ChartErrorIndicatorType_LOWER: bNegative = sal_True; break; default: break; } xErrorBarProperties->setPropertyValue( C2U( "ShowPositiveError" ), uno::makeAny(bPositive) ); xErrorBarProperties->setPropertyValue( C2U( "ShowNegativeError" ), uno::makeAny(bNegative) ); } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_ERROR_BAR_STYLE // this is the new constant group that replaces the deprecated enum ChartErrorCategory class WrappedErrorBarStyleProperty : public WrappedStatisticProperty< sal_Int32 > { public: virtual sal_Int32 getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Int32 nNewValue ) const; explicit WrappedErrorBarStyleProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact1, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedErrorBarStyleProperty(); }; WrappedErrorBarStyleProperty::WrappedErrorBarStyleProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< sal_Int32 >( C2U("ErrorBarStyle") , uno::makeAny( ::com::sun::star::chart::ErrorBarStyle::NONE ), spChart2ModelContact, ePropertyType ) { } WrappedErrorBarStyleProperty::~WrappedErrorBarStyleProperty() { } sal_Int32 WrappedErrorBarStyleProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { sal_Int32 nRet = ::com::sun::star::chart::ErrorBarStyle::NONE; m_aDefaultValue >>= nRet; uno::Reference< beans::XPropertySet > xErrorBarProperties; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is()) { xErrorBarProperties->getPropertyValue( C2U( "ErrorBarStyle" )) >>= nRet; } return nRet; } void WrappedErrorBarStyleProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Int32 nNewValue ) const { if( !xSeriesPropertySet.is() ) return; uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { xErrorBarProperties->setPropertyValue( C2U( "ErrorBarStyle" ), uno::makeAny( nNewValue )); } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_ERROR_RANGE_POSITIVE class WrappedErrorBarRangePositiveProperty : public WrappedStatisticProperty< OUString > { public: virtual OUString getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const; explicit WrappedErrorBarRangePositiveProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedErrorBarRangePositiveProperty(); private: mutable Any m_aOuterValue; }; WrappedErrorBarRangePositiveProperty::WrappedErrorBarRangePositiveProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< OUString >( C2U("ErrorBarRangePositive") , uno::makeAny( OUString() ), spChart2ModelContact, ePropertyType ) { } WrappedErrorBarRangePositiveProperty::~WrappedErrorBarRangePositiveProperty() { } OUString WrappedErrorBarRangePositiveProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { OUString aRet; m_aDefaultValue >>= aRet; uno::Reference< chart2::data::XDataSource > xErrorBarDataSource; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarDataSource ) && xErrorBarDataSource.is()) { uno::Reference< chart2::data::XDataSequence > xSeq( StatisticsHelper::getErrorDataSequenceFromDataSource( xErrorBarDataSource, true /* positive */, true /* y-error */ )); if( xSeq.is()) aRet = xSeq->getSourceRangeRepresentation(); else m_aOuterValue >>= aRet; } lcl_ConvertRangeToXML( aRet, m_spChart2ModelContact ); return aRet; } void WrappedErrorBarRangePositiveProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { uno::Reference< chart2::data::XDataProvider > xDataProvider( lcl_getDataProviderFromContact( m_spChart2ModelContact )); uno::Reference< chart2::data::XDataSource > xDataSource( xErrorBarProperties, uno::UNO_QUERY ); if( xDataSource.is() && xDataProvider.is()) { OUString aXMLRange( aNewValue ); lcl_ConvertRangeFromXML( aNewValue, m_spChart2ModelContact ); StatisticsHelper::setErrorDataSequence( xDataSource, xDataProvider, aNewValue, true /* positive */, true /* y-error */, &aXMLRange ); m_aOuterValue <<= aNewValue; } } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_ERROR_RANGE_NEGATIVE class WrappedErrorBarRangeNegativeProperty : public WrappedStatisticProperty< OUString > { public: virtual OUString getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const; explicit WrappedErrorBarRangeNegativeProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedErrorBarRangeNegativeProperty(); private: mutable Any m_aOuterValue; }; WrappedErrorBarRangeNegativeProperty::WrappedErrorBarRangeNegativeProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< OUString >( C2U("ErrorBarRangeNegative") , uno::makeAny( OUString() ), spChart2ModelContact, ePropertyType ) { } WrappedErrorBarRangeNegativeProperty::~WrappedErrorBarRangeNegativeProperty() { } OUString WrappedErrorBarRangeNegativeProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { OUString aRet; m_aDefaultValue >>= aRet; uno::Reference< chart2::data::XDataSource > xErrorBarDataSource; if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarDataSource ) && xErrorBarDataSource.is()) { uno::Reference< chart2::data::XDataSequence > xSeq( StatisticsHelper::getErrorDataSequenceFromDataSource( xErrorBarDataSource, false /* positive */, true /* y-error */ )); if( xSeq.is()) aRet = xSeq->getSourceRangeRepresentation(); else m_aOuterValue >>= aRet; } lcl_ConvertRangeToXML( aRet, m_spChart2ModelContact ); return aRet; } void WrappedErrorBarRangeNegativeProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const { uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) ); if( xErrorBarProperties.is() ) { uno::Reference< chart2::data::XDataProvider > xDataProvider( lcl_getDataProviderFromContact( m_spChart2ModelContact )); uno::Reference< chart2::data::XDataSource > xDataSource( xErrorBarProperties, uno::UNO_QUERY ); if( xDataSource.is() && xDataProvider.is()) { OUString aXMLRange( aNewValue ); lcl_ConvertRangeFromXML( aNewValue, m_spChart2ModelContact ); StatisticsHelper::setErrorDataSequence( xDataSource, xDataProvider, aNewValue, false /* positive */, true /* y-error */, &aXMLRange ); m_aOuterValue <<= aNewValue; } } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_REGRESSION_CURVES class WrappedRegressionCurvesProperty : public WrappedStatisticProperty< ::com::sun::star::chart::ChartRegressionCurveType > { public: virtual ::com::sun::star::chart::ChartRegressionCurveType getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartRegressionCurveType aNewValue ) const; explicit WrappedRegressionCurvesProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedRegressionCurvesProperty(); }; WrappedRegressionCurvesProperty::WrappedRegressionCurvesProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< ::com::sun::star::chart::ChartRegressionCurveType >( C2U("RegressionCurves") , lcl_getRegressionDefault(), spChart2ModelContact, ePropertyType ) { } WrappedRegressionCurvesProperty::~WrappedRegressionCurvesProperty() { } ::com::sun::star::chart::ChartRegressionCurveType WrappedRegressionCurvesProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { ::com::sun::star::chart::ChartRegressionCurveType aRet; m_aDefaultValue >>= aRet; uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY ); if( xRegCnt.is() ) { aRet = lcl_getRegressionCurveType( RegressionCurveHelper::getFirstRegressTypeNotMeanValueLine( xRegCnt ) ); } return aRet; } void WrappedRegressionCurvesProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartRegressionCurveType aNewValue ) const { uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY ); if( xRegCnt.is() ) { RegressionCurveHelper::tRegressionType eNewRegressionType = lcl_getRegressionType( aNewValue ); RegressionCurveHelper::removeAllExceptMeanValueLine( xRegCnt ); if( eNewRegressionType != RegressionCurveHelper::REGRESSION_TYPE_NONE ) RegressionCurveHelper::addRegressionCurve( eNewRegressionType, xRegCnt, 0, 0 ); } } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //PROP_CHART_STATISTIC_REGRESSION_PROPERTIES //PROP_CHART_STATISTIC_ERROR_PROPERTIES //PROP_CHART_STATISTIC_MEAN_VALUE_PROPERTIES class WrappedStatisticPropertySetProperty : public WrappedStatisticProperty< Reference< beans::XPropertySet > > { public: virtual Reference< beans::XPropertySet > getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const; // properties are read-only, so this method should never be called virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, Reference< beans::XPropertySet > xNewValue ) const; enum PropertySetType { PROPERTY_SET_TYPE_REGRESSION, PROPERTY_SET_TYPE_ERROR_BAR, PROPERTY_SET_TYPE_MEAN_VALUE }; explicit WrappedStatisticPropertySetProperty( PropertySetType ePropertySetType, ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact, tSeriesOrDiagramPropertyType ePropertyType ); virtual ~WrappedStatisticPropertySetProperty(); private: PropertySetType m_eType; }; WrappedStatisticPropertySetProperty::WrappedStatisticPropertySetProperty( PropertySetType ePropertySetType , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact , tSeriesOrDiagramPropertyType ePropertyType ) : WrappedStatisticProperty< Reference< beans::XPropertySet > >( (ePropertySetType == PROPERTY_SET_TYPE_REGRESSION) ? C2U("DataRegressionProperties") : (ePropertySetType == PROPERTY_SET_TYPE_ERROR_BAR) ? C2U("DataErrorProperties") : C2U("DataMeanValueProperties") , uno::Any(), spChart2ModelContact, ePropertyType ) , m_eType( ePropertySetType ) { } WrappedStatisticPropertySetProperty::~WrappedStatisticPropertySetProperty() { } Reference< beans::XPropertySet > WrappedStatisticPropertySetProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const { Reference< beans::XPropertySet > xResult; uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY ); switch( m_eType ) { case PROPERTY_SET_TYPE_REGRESSION: if( xRegCnt.is() ) xResult.set( RegressionCurveHelper::getFirstCurveNotMeanValueLine( xRegCnt ), uno::UNO_QUERY ); break; case PROPERTY_SET_TYPE_ERROR_BAR: if( xSeriesPropertySet.is()) xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xResult; break; case PROPERTY_SET_TYPE_MEAN_VALUE: if( xRegCnt.is() ) xResult.set( RegressionCurveHelper::getMeanValueLine( xRegCnt ), uno::UNO_QUERY ); break; } return xResult; } void WrappedStatisticPropertySetProperty::setValueToSeries( const Reference< beans::XPropertySet >& /* xSeriesPropertySet */ , Reference< beans::XPropertySet > /* xNewValue */ ) const { } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- namespace { enum { //statistic properties PROP_CHART_STATISTIC_CONST_ERROR_LOW = FAST_PROPERTY_ID_START_CHART_STATISTIC_PROP, PROP_CHART_STATISTIC_CONST_ERROR_HIGH, PROP_CHART_STATISTIC_MEAN_VALUE, PROP_CHART_STATISTIC_ERROR_CATEGORY, PROP_CHART_STATISTIC_ERROR_BAR_STYLE, PROP_CHART_STATISTIC_PERCENT_ERROR, PROP_CHART_STATISTIC_ERROR_MARGIN, PROP_CHART_STATISTIC_ERROR_INDICATOR, PROP_CHART_STATISTIC_ERROR_RANGE_POSITIVE, PROP_CHART_STATISTIC_ERROR_RANGE_NEGATIVE, PROP_CHART_STATISTIC_REGRESSION_CURVES, PROP_CHART_STATISTIC_REGRESSION_PROPERTIES, PROP_CHART_STATISTIC_ERROR_PROPERTIES, PROP_CHART_STATISTIC_MEAN_VALUE_PROPERTIES }; /** @parameter bDataSeriesProperty if true, this property is for a single data series, if false, it is for the whole diagram, i.e. for all series */ void lcl_addWrappedProperties( std::vector< WrappedProperty* >& rList , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact , tSeriesOrDiagramPropertyType ePropertyType ) { rList.push_back( new WrappedConstantErrorLowProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedConstantErrorHighProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedMeanValueProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedErrorCategoryProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedErrorBarStyleProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedPercentageErrorProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedErrorMarginProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedErrorIndicatorProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedErrorBarRangePositiveProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedErrorBarRangeNegativeProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedRegressionCurvesProperty( spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedStatisticPropertySetProperty( WrappedStatisticPropertySetProperty::PROPERTY_SET_TYPE_REGRESSION, spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedStatisticPropertySetProperty( WrappedStatisticPropertySetProperty::PROPERTY_SET_TYPE_ERROR_BAR, spChart2ModelContact, ePropertyType ) ); rList.push_back( new WrappedStatisticPropertySetProperty( WrappedStatisticPropertySetProperty::PROPERTY_SET_TYPE_MEAN_VALUE, spChart2ModelContact, ePropertyType ) ); } }//anonymous namespace void WrappedStatisticProperties::addProperties( ::std::vector< Property > & rOutProperties ) { rOutProperties.push_back( Property( C2U( "ConstantErrorLow" ), PROP_CHART_STATISTIC_CONST_ERROR_LOW, ::getCppuType( reinterpret_cast< double * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ConstantErrorHigh" ), PROP_CHART_STATISTIC_CONST_ERROR_HIGH, ::getCppuType( reinterpret_cast< double * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "MeanValue" ), PROP_CHART_STATISTIC_MEAN_VALUE, ::getBooleanCppuType(), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ErrorCategory" ), PROP_CHART_STATISTIC_ERROR_CATEGORY, ::getCppuType( reinterpret_cast< ::com::sun::star::chart::ChartErrorCategory * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ErrorBarStyle" ), PROP_CHART_STATISTIC_ERROR_BAR_STYLE, ::getCppuType( reinterpret_cast< sal_Int32 * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "PercentageError" ), PROP_CHART_STATISTIC_PERCENT_ERROR, ::getCppuType( reinterpret_cast< double * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ErrorMargin" ), PROP_CHART_STATISTIC_ERROR_MARGIN, ::getCppuType( reinterpret_cast< double * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ErrorIndicator" ), PROP_CHART_STATISTIC_ERROR_INDICATOR, ::getCppuType( reinterpret_cast< ::com::sun::star::chart::ChartErrorIndicatorType * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ErrorBarRangePositive" ), PROP_CHART_STATISTIC_ERROR_RANGE_POSITIVE, ::getCppuType( reinterpret_cast< OUString * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "ErrorBarRangeNegative" ), PROP_CHART_STATISTIC_ERROR_RANGE_NEGATIVE, ::getCppuType( reinterpret_cast< OUString * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "RegressionCurves" ), PROP_CHART_STATISTIC_REGRESSION_CURVES, ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartRegressionCurveType * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT )); rOutProperties.push_back( Property( C2U( "DataRegressionProperties" ), PROP_CHART_STATISTIC_REGRESSION_PROPERTIES, ::getCppuType( reinterpret_cast< const Reference< beans::XPropertySet > * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY | beans::PropertyAttribute::MAYBEVOID )); rOutProperties.push_back( Property( C2U( "DataErrorProperties" ), PROP_CHART_STATISTIC_ERROR_PROPERTIES, ::getCppuType( reinterpret_cast< const Reference< beans::XPropertySet > * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY | beans::PropertyAttribute::MAYBEVOID )); rOutProperties.push_back( Property( C2U( "DataMeanValueProperties" ), PROP_CHART_STATISTIC_MEAN_VALUE_PROPERTIES, ::getCppuType( reinterpret_cast< const Reference< beans::XPropertySet > * >(0)), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY | beans::PropertyAttribute::MAYBEVOID )); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- void WrappedStatisticProperties::addWrappedPropertiesForSeries( std::vector< WrappedProperty* >& rList , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact ) { lcl_addWrappedProperties( rList, spChart2ModelContact, DATA_SERIES ); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- void WrappedStatisticProperties::addWrappedPropertiesForDiagram( std::vector< WrappedProperty* >& rList , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact ) { lcl_addWrappedProperties( rList, spChart2ModelContact, DIAGRAM ); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- } //namespace wrapper } //namespace chart //.............................................................................