blob: deade424736edb61a4dbc01086a13a1665720d13 [file] [log] [blame]
/**************************************************************
*
* 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 <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/chart/ChartErrorCategory.hpp>
#include <com/sun/star/chart/ErrorBarStyle.hpp>
#include <com/sun/star/chart/ChartErrorIndicatorType.hpp>
#include <com/sun/star/chart/ChartRegressionCurveType.hpp>
#include <com/sun/star/chart2/data/XDataProvider.hpp>
#include <com/sun/star/chart2/data/XRangeXMLConversion.hpp>
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
//.............................................................................