1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_chart2.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "WrappedStatisticProperties.hxx"
28*b1cdbd2cSJim Jagielski #include "WrappedSeriesOrDiagramProperty.hxx"
29*b1cdbd2cSJim Jagielski #include "macros.hxx"
30*b1cdbd2cSJim Jagielski #include "FastPropertyIdRanges.hxx"
31*b1cdbd2cSJim Jagielski #include "RegressionCurveHelper.hxx"
32*b1cdbd2cSJim Jagielski #include "DiagramHelper.hxx"
33*b1cdbd2cSJim Jagielski #include "ErrorBar.hxx"
34*b1cdbd2cSJim Jagielski #include "StatisticsHelper.hxx"
35*b1cdbd2cSJim Jagielski 
36*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyAttribute.hpp>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/chart/ChartErrorCategory.hpp>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/chart/ErrorBarStyle.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/chart/ChartErrorIndicatorType.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/chart/ChartRegressionCurveType.hpp>
41*b1cdbd2cSJim Jagielski #include <com/sun/star/chart2/data/XDataProvider.hpp>
42*b1cdbd2cSJim Jagielski #include <com/sun/star/chart2/data/XRangeXMLConversion.hpp>
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
45*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Any;
46*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Reference;
47*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Sequence;
48*b1cdbd2cSJim Jagielski using ::com::sun::star::beans::Property;
49*b1cdbd2cSJim Jagielski using ::rtl::OUString;
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski //.............................................................................
52*b1cdbd2cSJim Jagielski namespace chart
53*b1cdbd2cSJim Jagielski {
54*b1cdbd2cSJim Jagielski namespace wrapper
55*b1cdbd2cSJim Jagielski {
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski namespace
58*b1cdbd2cSJim Jagielski {
59*b1cdbd2cSJim Jagielski 
lcl_getRegressionDefault()60*b1cdbd2cSJim Jagielski Any lcl_getRegressionDefault()
61*b1cdbd2cSJim Jagielski {
62*b1cdbd2cSJim Jagielski     Any aRet;
63*b1cdbd2cSJim Jagielski     aRet <<= ::com::sun::star::chart::ChartRegressionCurveType_NONE;
64*b1cdbd2cSJim Jagielski     return aRet;
65*b1cdbd2cSJim Jagielski }
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
68*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
69*b1cdbd2cSJim Jagielski 
lcl_getRegressionCurveType(RegressionCurveHelper::tRegressionType eRegressionType)70*b1cdbd2cSJim Jagielski ::com::sun::star::chart::ChartRegressionCurveType lcl_getRegressionCurveType( RegressionCurveHelper::tRegressionType eRegressionType )
71*b1cdbd2cSJim Jagielski {
72*b1cdbd2cSJim Jagielski     ::com::sun::star::chart::ChartRegressionCurveType eRet = ::com::sun::star::chart::ChartRegressionCurveType_NONE;
73*b1cdbd2cSJim Jagielski     switch(eRegressionType)
74*b1cdbd2cSJim Jagielski     {
75*b1cdbd2cSJim Jagielski         case RegressionCurveHelper::REGRESSION_TYPE_LINEAR:
76*b1cdbd2cSJim Jagielski             eRet = ::com::sun::star::chart::ChartRegressionCurveType_LINEAR;
77*b1cdbd2cSJim Jagielski             break;
78*b1cdbd2cSJim Jagielski         case RegressionCurveHelper::REGRESSION_TYPE_LOG:
79*b1cdbd2cSJim Jagielski             eRet = ::com::sun::star::chart::ChartRegressionCurveType_LOGARITHM;
80*b1cdbd2cSJim Jagielski             break;
81*b1cdbd2cSJim Jagielski         case RegressionCurveHelper::REGRESSION_TYPE_EXP:
82*b1cdbd2cSJim Jagielski             eRet = ::com::sun::star::chart::ChartRegressionCurveType_EXPONENTIAL;
83*b1cdbd2cSJim Jagielski             break;
84*b1cdbd2cSJim Jagielski         case RegressionCurveHelper::REGRESSION_TYPE_POWER:
85*b1cdbd2cSJim Jagielski             eRet = ::com::sun::star::chart::ChartRegressionCurveType_POWER;
86*b1cdbd2cSJim Jagielski             break;
87*b1cdbd2cSJim Jagielski         default:
88*b1cdbd2cSJim Jagielski             eRet = ::com::sun::star::chart::ChartRegressionCurveType_NONE;
89*b1cdbd2cSJim Jagielski             break;
90*b1cdbd2cSJim Jagielski     }
91*b1cdbd2cSJim Jagielski     return eRet;
92*b1cdbd2cSJim Jagielski }
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
95*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
96*b1cdbd2cSJim Jagielski 
lcl_getRegressionType(::com::sun::star::chart::ChartRegressionCurveType eRegressionCurveType)97*b1cdbd2cSJim Jagielski RegressionCurveHelper::tRegressionType lcl_getRegressionType( ::com::sun::star::chart::ChartRegressionCurveType eRegressionCurveType )
98*b1cdbd2cSJim Jagielski {
99*b1cdbd2cSJim Jagielski     RegressionCurveHelper::tRegressionType eRet;
100*b1cdbd2cSJim Jagielski     switch(eRegressionCurveType)
101*b1cdbd2cSJim Jagielski     {
102*b1cdbd2cSJim Jagielski         case ::com::sun::star::chart::ChartRegressionCurveType_LINEAR:
103*b1cdbd2cSJim Jagielski             eRet = RegressionCurveHelper::REGRESSION_TYPE_LINEAR;
104*b1cdbd2cSJim Jagielski             break;
105*b1cdbd2cSJim Jagielski         case ::com::sun::star::chart::ChartRegressionCurveType_LOGARITHM:
106*b1cdbd2cSJim Jagielski             eRet = RegressionCurveHelper::REGRESSION_TYPE_LOG;
107*b1cdbd2cSJim Jagielski             break;
108*b1cdbd2cSJim Jagielski         case ::com::sun::star::chart::ChartRegressionCurveType_EXPONENTIAL:
109*b1cdbd2cSJim Jagielski             eRet = RegressionCurveHelper::REGRESSION_TYPE_EXP;
110*b1cdbd2cSJim Jagielski             break;
111*b1cdbd2cSJim Jagielski         case ::com::sun::star::chart::ChartRegressionCurveType_POLYNOMIAL:
112*b1cdbd2cSJim Jagielski         case ::com::sun::star::chart::ChartRegressionCurveType_POWER:
113*b1cdbd2cSJim Jagielski             eRet = RegressionCurveHelper::REGRESSION_TYPE_POWER;
114*b1cdbd2cSJim Jagielski             break;
115*b1cdbd2cSJim Jagielski         default:
116*b1cdbd2cSJim Jagielski             eRet = RegressionCurveHelper::REGRESSION_TYPE_NONE;
117*b1cdbd2cSJim Jagielski             break;
118*b1cdbd2cSJim Jagielski     }
119*b1cdbd2cSJim Jagielski     return eRet;
120*b1cdbd2cSJim Jagielski }
121*b1cdbd2cSJim Jagielski 
lcl_getErrorBarStyle(const uno::Reference<beans::XPropertySet> & xErrorBarProperties)122*b1cdbd2cSJim Jagielski sal_Int32 lcl_getErrorBarStyle( const uno::Reference< beans::XPropertySet >& xErrorBarProperties )
123*b1cdbd2cSJim Jagielski {
124*b1cdbd2cSJim Jagielski     sal_Int32 nStyle = ::com::sun::star::chart::ErrorBarStyle::NONE;
125*b1cdbd2cSJim Jagielski     if(xErrorBarProperties.is())
126*b1cdbd2cSJim Jagielski         xErrorBarProperties->getPropertyValue( C2U( "ErrorBarStyle" )) >>= nStyle;
127*b1cdbd2cSJim Jagielski     return nStyle;
128*b1cdbd2cSJim Jagielski }
129*b1cdbd2cSJim Jagielski 
lcl_getDataProviderFromContact(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)130*b1cdbd2cSJim Jagielski uno::Reference< chart2::data::XDataProvider > lcl_getDataProviderFromContact(
131*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
132*b1cdbd2cSJim Jagielski {
133*b1cdbd2cSJim Jagielski     uno::Reference< chart2::data::XDataProvider > xResult;
134*b1cdbd2cSJim Jagielski     if( spChart2ModelContact.get())
135*b1cdbd2cSJim Jagielski     {
136*b1cdbd2cSJim Jagielski         uno::Reference< chart2::XChartDocument > xChartDoc(
137*b1cdbd2cSJim Jagielski             spChart2ModelContact->getChart2Document());
138*b1cdbd2cSJim Jagielski         if( xChartDoc.is())
139*b1cdbd2cSJim Jagielski             xResult.set( xChartDoc->getDataProvider());
140*b1cdbd2cSJim Jagielski     }
141*b1cdbd2cSJim Jagielski     return xResult;
142*b1cdbd2cSJim Jagielski }
143*b1cdbd2cSJim Jagielski 
lcl_ConvertRangeFromXML(::rtl::OUString & rInOutRange,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)144*b1cdbd2cSJim Jagielski void lcl_ConvertRangeFromXML(
145*b1cdbd2cSJim Jagielski     ::rtl::OUString & rInOutRange,
146*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
147*b1cdbd2cSJim Jagielski {
148*b1cdbd2cSJim Jagielski     if( !rInOutRange.isEmpty() )
149*b1cdbd2cSJim Jagielski     {
150*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XRangeXMLConversion > xConverter(
151*b1cdbd2cSJim Jagielski             lcl_getDataProviderFromContact( spChart2ModelContact ), uno::UNO_QUERY );
152*b1cdbd2cSJim Jagielski         if( xConverter.is())
153*b1cdbd2cSJim Jagielski         {
154*b1cdbd2cSJim Jagielski             ::rtl::OUString aResult = xConverter->convertRangeFromXML( rInOutRange );
155*b1cdbd2cSJim Jagielski             rInOutRange = aResult;
156*b1cdbd2cSJim Jagielski         }
157*b1cdbd2cSJim Jagielski     }
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski 
lcl_ConvertRangeToXML(::rtl::OUString & rInOutRange,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)160*b1cdbd2cSJim Jagielski void lcl_ConvertRangeToXML(
161*b1cdbd2cSJim Jagielski     ::rtl::OUString & rInOutRange,
162*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
163*b1cdbd2cSJim Jagielski {
164*b1cdbd2cSJim Jagielski     if( !rInOutRange.isEmpty() )
165*b1cdbd2cSJim Jagielski     {
166*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XRangeXMLConversion > xConverter(
167*b1cdbd2cSJim Jagielski             lcl_getDataProviderFromContact( spChart2ModelContact ), uno::UNO_QUERY );
168*b1cdbd2cSJim Jagielski         if( xConverter.is())
169*b1cdbd2cSJim Jagielski         {
170*b1cdbd2cSJim Jagielski             ::rtl::OUString aResult = xConverter->convertRangeToXML( rInOutRange );
171*b1cdbd2cSJim Jagielski             rInOutRange = aResult;
172*b1cdbd2cSJim Jagielski         }
173*b1cdbd2cSJim Jagielski     }
174*b1cdbd2cSJim Jagielski }
175*b1cdbd2cSJim Jagielski 
176*b1cdbd2cSJim Jagielski }//anonymous namespace
177*b1cdbd2cSJim Jagielski 
178*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
179*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
180*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
181*b1cdbd2cSJim Jagielski 
182*b1cdbd2cSJim Jagielski template< typename PROPERTYTYPE >
183*b1cdbd2cSJim Jagielski class WrappedStatisticProperty : public WrappedSeriesOrDiagramProperty< PROPERTYTYPE >
184*b1cdbd2cSJim Jagielski {
185*b1cdbd2cSJim Jagielski public:
WrappedStatisticProperty(const OUString & rName,const Any & rDefaulValue,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)186*b1cdbd2cSJim Jagielski     explicit WrappedStatisticProperty( const OUString& rName, const Any& rDefaulValue
187*b1cdbd2cSJim Jagielski                               , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact
188*b1cdbd2cSJim Jagielski                               , tSeriesOrDiagramPropertyType ePropertyType )
189*b1cdbd2cSJim Jagielski             : WrappedSeriesOrDiagramProperty< PROPERTYTYPE >(rName,rDefaulValue,spChart2ModelContact,ePropertyType)
190*b1cdbd2cSJim Jagielski     {}
~WrappedStatisticProperty()191*b1cdbd2cSJim Jagielski     virtual ~WrappedStatisticProperty() {};
192*b1cdbd2cSJim Jagielski 
193*b1cdbd2cSJim Jagielski 
194*b1cdbd2cSJim Jagielski protected:
getOrCreateErrorBarProperties(const Reference<beans::XPropertySet> & xSeriesPropertySet) const195*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > getOrCreateErrorBarProperties( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
196*b1cdbd2cSJim Jagielski     {
197*b1cdbd2cSJim Jagielski         if(!xSeriesPropertySet.is())
198*b1cdbd2cSJim Jagielski             return 0;
199*b1cdbd2cSJim Jagielski         uno::Reference< beans::XPropertySet > xErrorBarProperties;
200*b1cdbd2cSJim Jagielski         xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties;
201*b1cdbd2cSJim Jagielski         if( !xErrorBarProperties.is() )
202*b1cdbd2cSJim Jagielski         {
203*b1cdbd2cSJim Jagielski             // todo: use a valid context
204*b1cdbd2cSJim Jagielski             xErrorBarProperties = ::chart::createErrorBar( uno::Reference< uno::XComponentContext >() );
205*b1cdbd2cSJim Jagielski             //default in new and old api are different
206*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "ShowPositiveError" ), uno::makeAny(sal_Bool(sal_False)) );
207*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "ShowNegativeError" ), uno::makeAny(sal_Bool(sal_False)) );
208*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "ErrorBarStyle" ), uno::makeAny(::com::sun::star::chart::ErrorBarStyle::NONE) );
209*b1cdbd2cSJim Jagielski             xSeriesPropertySet->setPropertyValue( C2U( "ErrorBarY" ), uno::makeAny( xErrorBarProperties ) );
210*b1cdbd2cSJim Jagielski         }
211*b1cdbd2cSJim Jagielski         return xErrorBarProperties;
212*b1cdbd2cSJim Jagielski     }
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski };
215*b1cdbd2cSJim Jagielski 
216*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
217*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
218*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
219*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_CONST_ERROR_LOW
220*b1cdbd2cSJim Jagielski class WrappedConstantErrorLowProperty : public WrappedStatisticProperty< double >
221*b1cdbd2cSJim Jagielski {
222*b1cdbd2cSJim Jagielski public:
223*b1cdbd2cSJim Jagielski     virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
224*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const;
225*b1cdbd2cSJim Jagielski 
226*b1cdbd2cSJim Jagielski     explicit WrappedConstantErrorLowProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
227*b1cdbd2cSJim Jagielski                                               tSeriesOrDiagramPropertyType ePropertyType );
228*b1cdbd2cSJim Jagielski     virtual ~WrappedConstantErrorLowProperty();
229*b1cdbd2cSJim Jagielski 
230*b1cdbd2cSJim Jagielski private:
231*b1cdbd2cSJim Jagielski     mutable Any m_aOuterValue;
232*b1cdbd2cSJim Jagielski };
233*b1cdbd2cSJim Jagielski 
WrappedConstantErrorLowProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)234*b1cdbd2cSJim Jagielski WrappedConstantErrorLowProperty::WrappedConstantErrorLowProperty(
235*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
236*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
237*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< double >( C2U("ConstantErrorLow")
238*b1cdbd2cSJim Jagielski             , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType  )
239*b1cdbd2cSJim Jagielski {
240*b1cdbd2cSJim Jagielski }
~WrappedConstantErrorLowProperty()241*b1cdbd2cSJim Jagielski WrappedConstantErrorLowProperty::~WrappedConstantErrorLowProperty()
242*b1cdbd2cSJim Jagielski {
243*b1cdbd2cSJim Jagielski }
244*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const245*b1cdbd2cSJim Jagielski double WrappedConstantErrorLowProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
246*b1cdbd2cSJim Jagielski {
247*b1cdbd2cSJim Jagielski     double aRet = 0.0;
248*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
249*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
250*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
251*b1cdbd2cSJim Jagielski     {
252*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) )
253*b1cdbd2cSJim Jagielski             xErrorBarProperties->getPropertyValue( C2U( "NegativeError" )) >>= aRet;
254*b1cdbd2cSJim Jagielski         else
255*b1cdbd2cSJim Jagielski             m_aOuterValue >>= aRet;
256*b1cdbd2cSJim Jagielski     }
257*b1cdbd2cSJim Jagielski     return aRet;
258*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,double aNewValue) const259*b1cdbd2cSJim Jagielski void WrappedConstantErrorLowProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const
260*b1cdbd2cSJim Jagielski {
261*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
262*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
263*b1cdbd2cSJim Jagielski     {
264*b1cdbd2cSJim Jagielski         m_aOuterValue = uno::makeAny( aNewValue );
265*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) )
266*b1cdbd2cSJim Jagielski         {
267*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "NegativeError" ), m_aOuterValue );
268*b1cdbd2cSJim Jagielski         }
269*b1cdbd2cSJim Jagielski     }
270*b1cdbd2cSJim Jagielski }
271*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
272*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
273*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
274*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_CONST_ERROR_HIGH
275*b1cdbd2cSJim Jagielski class WrappedConstantErrorHighProperty : public WrappedStatisticProperty< double >
276*b1cdbd2cSJim Jagielski {
277*b1cdbd2cSJim Jagielski public:
278*b1cdbd2cSJim Jagielski     virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
279*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const;
280*b1cdbd2cSJim Jagielski 
281*b1cdbd2cSJim Jagielski     explicit WrappedConstantErrorHighProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
282*b1cdbd2cSJim Jagielski                                                tSeriesOrDiagramPropertyType ePropertyType );
283*b1cdbd2cSJim Jagielski     virtual ~WrappedConstantErrorHighProperty();
284*b1cdbd2cSJim Jagielski 
285*b1cdbd2cSJim Jagielski private:
286*b1cdbd2cSJim Jagielski     mutable Any m_aOuterValue;
287*b1cdbd2cSJim Jagielski };
288*b1cdbd2cSJim Jagielski 
WrappedConstantErrorHighProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)289*b1cdbd2cSJim Jagielski WrappedConstantErrorHighProperty::WrappedConstantErrorHighProperty(
290*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
291*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
292*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< double >( C2U("ConstantErrorHigh")
293*b1cdbd2cSJim Jagielski             , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType  )
294*b1cdbd2cSJim Jagielski {
295*b1cdbd2cSJim Jagielski }
~WrappedConstantErrorHighProperty()296*b1cdbd2cSJim Jagielski WrappedConstantErrorHighProperty::~WrappedConstantErrorHighProperty()
297*b1cdbd2cSJim Jagielski {
298*b1cdbd2cSJim Jagielski }
299*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const300*b1cdbd2cSJim Jagielski double WrappedConstantErrorHighProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
301*b1cdbd2cSJim Jagielski {
302*b1cdbd2cSJim Jagielski     double aRet = 0.0;
303*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
304*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
305*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
306*b1cdbd2cSJim Jagielski     {
307*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) )
308*b1cdbd2cSJim Jagielski             xErrorBarProperties->getPropertyValue( C2U( "PositiveError" )) >>= aRet;
309*b1cdbd2cSJim Jagielski         else
310*b1cdbd2cSJim Jagielski             m_aOuterValue >>= aRet;
311*b1cdbd2cSJim Jagielski     }
312*b1cdbd2cSJim Jagielski     return aRet;
313*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,double aNewValue) const314*b1cdbd2cSJim Jagielski void WrappedConstantErrorHighProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const
315*b1cdbd2cSJim Jagielski {
316*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
317*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
318*b1cdbd2cSJim Jagielski     {
319*b1cdbd2cSJim Jagielski         m_aOuterValue = uno::makeAny( aNewValue );
320*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE == lcl_getErrorBarStyle( xErrorBarProperties ) )
321*b1cdbd2cSJim Jagielski         {
322*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "PositiveError" ), m_aOuterValue );
323*b1cdbd2cSJim Jagielski         }
324*b1cdbd2cSJim Jagielski     }
325*b1cdbd2cSJim Jagielski }
326*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
327*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
328*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
329*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_MEAN_VALUE
330*b1cdbd2cSJim Jagielski class WrappedMeanValueProperty : public WrappedStatisticProperty< sal_Bool >
331*b1cdbd2cSJim Jagielski {
332*b1cdbd2cSJim Jagielski public:
333*b1cdbd2cSJim Jagielski     virtual sal_Bool getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
334*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Bool aNewValue ) const;
335*b1cdbd2cSJim Jagielski 
336*b1cdbd2cSJim Jagielski     explicit WrappedMeanValueProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
337*b1cdbd2cSJim Jagielski                                        tSeriesOrDiagramPropertyType ePropertyType );
338*b1cdbd2cSJim Jagielski     virtual ~WrappedMeanValueProperty();
339*b1cdbd2cSJim Jagielski };
340*b1cdbd2cSJim Jagielski 
WrappedMeanValueProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)341*b1cdbd2cSJim Jagielski WrappedMeanValueProperty::WrappedMeanValueProperty(
342*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
343*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
344*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< sal_Bool >( C2U("MeanValue"), uno::makeAny( sal_False ), spChart2ModelContact, ePropertyType  )
345*b1cdbd2cSJim Jagielski {
346*b1cdbd2cSJim Jagielski }
~WrappedMeanValueProperty()347*b1cdbd2cSJim Jagielski WrappedMeanValueProperty::~WrappedMeanValueProperty()
348*b1cdbd2cSJim Jagielski {
349*b1cdbd2cSJim Jagielski }
350*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const351*b1cdbd2cSJim Jagielski sal_Bool WrappedMeanValueProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
352*b1cdbd2cSJim Jagielski {
353*b1cdbd2cSJim Jagielski     sal_Bool bRet = sal_False;
354*b1cdbd2cSJim Jagielski     uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY );
355*b1cdbd2cSJim Jagielski     if( xRegCnt.is() )
356*b1cdbd2cSJim Jagielski         bRet = RegressionCurveHelper::hasMeanValueLine( xRegCnt );
357*b1cdbd2cSJim Jagielski     return bRet;
358*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,sal_Bool aNewValue) const359*b1cdbd2cSJim Jagielski void WrappedMeanValueProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Bool aNewValue ) const
360*b1cdbd2cSJim Jagielski {
361*b1cdbd2cSJim Jagielski     uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY );
362*b1cdbd2cSJim Jagielski     if( xRegCnt.is() )
363*b1cdbd2cSJim Jagielski     {
364*b1cdbd2cSJim Jagielski         if(aNewValue)
365*b1cdbd2cSJim Jagielski             RegressionCurveHelper::addMeanValueLine( xRegCnt, 0, 0 );
366*b1cdbd2cSJim Jagielski         else
367*b1cdbd2cSJim Jagielski             RegressionCurveHelper::removeMeanValueLine( xRegCnt );
368*b1cdbd2cSJim Jagielski     }
369*b1cdbd2cSJim Jagielski }
370*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
371*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
372*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
373*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_CATEGORY
374*b1cdbd2cSJim Jagielski // deprecated, replaced by ErrorBarStyle
375*b1cdbd2cSJim Jagielski class WrappedErrorCategoryProperty : public WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorCategory >
376*b1cdbd2cSJim Jagielski {
377*b1cdbd2cSJim Jagielski public:
378*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::chart::ChartErrorCategory getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
379*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorCategory aNewValue ) const;
380*b1cdbd2cSJim Jagielski 
381*b1cdbd2cSJim Jagielski     explicit WrappedErrorCategoryProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
382*b1cdbd2cSJim Jagielski                                            tSeriesOrDiagramPropertyType ePropertyType );
383*b1cdbd2cSJim Jagielski     virtual ~WrappedErrorCategoryProperty();
384*b1cdbd2cSJim Jagielski };
385*b1cdbd2cSJim Jagielski 
WrappedErrorCategoryProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)386*b1cdbd2cSJim Jagielski WrappedErrorCategoryProperty::WrappedErrorCategoryProperty(
387*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
388*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
389*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorCategory >( C2U("ErrorCategory")
390*b1cdbd2cSJim Jagielski             , uno::makeAny( ::com::sun::star::chart::ChartErrorCategory_NONE ), spChart2ModelContact, ePropertyType  )
391*b1cdbd2cSJim Jagielski {
392*b1cdbd2cSJim Jagielski }
~WrappedErrorCategoryProperty()393*b1cdbd2cSJim Jagielski WrappedErrorCategoryProperty::~WrappedErrorCategoryProperty()
394*b1cdbd2cSJim Jagielski {
395*b1cdbd2cSJim Jagielski }
396*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const397*b1cdbd2cSJim Jagielski ::com::sun::star::chart::ChartErrorCategory WrappedErrorCategoryProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
398*b1cdbd2cSJim Jagielski {
399*b1cdbd2cSJim Jagielski     ::com::sun::star::chart::ChartErrorCategory aRet = ::com::sun::star::chart::ChartErrorCategory_NONE;
400*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
401*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
402*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
403*b1cdbd2cSJim Jagielski     {
404*b1cdbd2cSJim Jagielski         sal_Int32 nStyle = ::com::sun::star::chart::ErrorBarStyle::NONE;
405*b1cdbd2cSJim Jagielski         xErrorBarProperties->getPropertyValue( C2U( "ErrorBarStyle" )) >>= nStyle;
406*b1cdbd2cSJim Jagielski         switch(nStyle)
407*b1cdbd2cSJim Jagielski         {
408*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::NONE:
409*b1cdbd2cSJim Jagielski                 aRet = ::com::sun::star::chart::ChartErrorCategory_NONE;
410*b1cdbd2cSJim Jagielski                 break;
411*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::VARIANCE:
412*b1cdbd2cSJim Jagielski                 aRet = ::com::sun::star::chart::ChartErrorCategory_VARIANCE;
413*b1cdbd2cSJim Jagielski                 break;
414*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::STANDARD_DEVIATION:
415*b1cdbd2cSJim Jagielski                 aRet = ::com::sun::star::chart::ChartErrorCategory_STANDARD_DEVIATION;
416*b1cdbd2cSJim Jagielski                 break;
417*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE:
418*b1cdbd2cSJim Jagielski                 aRet = ::com::sun::star::chart::ChartErrorCategory_CONSTANT_VALUE;
419*b1cdbd2cSJim Jagielski                 break;
420*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::RELATIVE:
421*b1cdbd2cSJim Jagielski                 aRet = ::com::sun::star::chart::ChartErrorCategory_PERCENT;
422*b1cdbd2cSJim Jagielski                 break;
423*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN:
424*b1cdbd2cSJim Jagielski                 aRet = ::com::sun::star::chart::ChartErrorCategory_ERROR_MARGIN;
425*b1cdbd2cSJim Jagielski                 break;
426*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::STANDARD_ERROR:
427*b1cdbd2cSJim Jagielski                 break;
428*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ErrorBarStyle::FROM_DATA:
429*b1cdbd2cSJim Jagielski                 break;
430*b1cdbd2cSJim Jagielski             default:
431*b1cdbd2cSJim Jagielski                 break;
432*b1cdbd2cSJim Jagielski         }
433*b1cdbd2cSJim Jagielski     }
434*b1cdbd2cSJim Jagielski     return aRet;
435*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,::com::sun::star::chart::ChartErrorCategory aNewValue) const436*b1cdbd2cSJim Jagielski void WrappedErrorCategoryProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorCategory aNewValue ) const
437*b1cdbd2cSJim Jagielski {
438*b1cdbd2cSJim Jagielski     if( !xSeriesPropertySet.is() )
439*b1cdbd2cSJim Jagielski         return;
440*b1cdbd2cSJim Jagielski 
441*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
442*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
443*b1cdbd2cSJim Jagielski     {
444*b1cdbd2cSJim Jagielski         sal_Int32 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::NONE;
445*b1cdbd2cSJim Jagielski         switch(aNewValue)
446*b1cdbd2cSJim Jagielski         {
447*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorCategory_NONE:
448*b1cdbd2cSJim Jagielski                 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::NONE;
449*b1cdbd2cSJim Jagielski                 break;
450*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorCategory_VARIANCE:
451*b1cdbd2cSJim Jagielski                 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::VARIANCE;
452*b1cdbd2cSJim Jagielski                 break;
453*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorCategory_STANDARD_DEVIATION:
454*b1cdbd2cSJim Jagielski                 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::STANDARD_DEVIATION;
455*b1cdbd2cSJim Jagielski                 break;
456*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorCategory_CONSTANT_VALUE:
457*b1cdbd2cSJim Jagielski                 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::ABSOLUTE;
458*b1cdbd2cSJim Jagielski                 break;
459*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorCategory_PERCENT:
460*b1cdbd2cSJim Jagielski                 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::RELATIVE;
461*b1cdbd2cSJim Jagielski                 break;
462*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorCategory_ERROR_MARGIN:
463*b1cdbd2cSJim Jagielski                 nNewStyle = ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN;
464*b1cdbd2cSJim Jagielski                 break;
465*b1cdbd2cSJim Jagielski             default:
466*b1cdbd2cSJim Jagielski                 break;
467*b1cdbd2cSJim Jagielski         }
468*b1cdbd2cSJim Jagielski         xErrorBarProperties->setPropertyValue( C2U( "ErrorBarStyle" ), uno::makeAny(nNewStyle) );
469*b1cdbd2cSJim Jagielski     }
470*b1cdbd2cSJim Jagielski }
471*b1cdbd2cSJim Jagielski 
472*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
473*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
474*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
475*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_PERCENT_ERROR
476*b1cdbd2cSJim Jagielski class WrappedPercentageErrorProperty : public WrappedStatisticProperty< double >
477*b1cdbd2cSJim Jagielski {
478*b1cdbd2cSJim Jagielski public:
479*b1cdbd2cSJim Jagielski     virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
480*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const;
481*b1cdbd2cSJim Jagielski 
482*b1cdbd2cSJim Jagielski     explicit WrappedPercentageErrorProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
483*b1cdbd2cSJim Jagielski                                              tSeriesOrDiagramPropertyType ePropertyType );
484*b1cdbd2cSJim Jagielski     virtual ~WrappedPercentageErrorProperty();
485*b1cdbd2cSJim Jagielski 
486*b1cdbd2cSJim Jagielski private:
487*b1cdbd2cSJim Jagielski     mutable Any m_aOuterValue;
488*b1cdbd2cSJim Jagielski };
489*b1cdbd2cSJim Jagielski 
WrappedPercentageErrorProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)490*b1cdbd2cSJim Jagielski WrappedPercentageErrorProperty::WrappedPercentageErrorProperty(
491*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
492*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
493*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< double >( C2U("PercentageError")
494*b1cdbd2cSJim Jagielski             , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType  )
495*b1cdbd2cSJim Jagielski {
496*b1cdbd2cSJim Jagielski }
~WrappedPercentageErrorProperty()497*b1cdbd2cSJim Jagielski WrappedPercentageErrorProperty::~WrappedPercentageErrorProperty()
498*b1cdbd2cSJim Jagielski {
499*b1cdbd2cSJim Jagielski }
500*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const501*b1cdbd2cSJim Jagielski double WrappedPercentageErrorProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
502*b1cdbd2cSJim Jagielski {
503*b1cdbd2cSJim Jagielski     double aRet = 0.0;
504*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
505*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
506*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
507*b1cdbd2cSJim Jagielski     {
508*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::RELATIVE == lcl_getErrorBarStyle( xErrorBarProperties ) )
509*b1cdbd2cSJim Jagielski             xErrorBarProperties->getPropertyValue( C2U( "PositiveError" )) >>= aRet;
510*b1cdbd2cSJim Jagielski         else
511*b1cdbd2cSJim Jagielski             m_aOuterValue >>= aRet;
512*b1cdbd2cSJim Jagielski     }
513*b1cdbd2cSJim Jagielski     return aRet;
514*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,double aNewValue) const515*b1cdbd2cSJim Jagielski void WrappedPercentageErrorProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const
516*b1cdbd2cSJim Jagielski {
517*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
518*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
519*b1cdbd2cSJim Jagielski     {
520*b1cdbd2cSJim Jagielski         m_aOuterValue = uno::makeAny( aNewValue );
521*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::RELATIVE == lcl_getErrorBarStyle( xErrorBarProperties ) )
522*b1cdbd2cSJim Jagielski         {
523*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "PositiveError" ), m_aOuterValue );
524*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "NegativeError" ), m_aOuterValue );
525*b1cdbd2cSJim Jagielski         }
526*b1cdbd2cSJim Jagielski     }
527*b1cdbd2cSJim Jagielski }
528*b1cdbd2cSJim Jagielski 
529*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
530*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
531*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
532*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_MARGIN
533*b1cdbd2cSJim Jagielski class WrappedErrorMarginProperty : public WrappedStatisticProperty< double >
534*b1cdbd2cSJim Jagielski {
535*b1cdbd2cSJim Jagielski public:
536*b1cdbd2cSJim Jagielski     virtual double getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
537*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const;
538*b1cdbd2cSJim Jagielski 
539*b1cdbd2cSJim Jagielski     explicit WrappedErrorMarginProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
540*b1cdbd2cSJim Jagielski                                          tSeriesOrDiagramPropertyType ePropertyType );
541*b1cdbd2cSJim Jagielski     virtual ~WrappedErrorMarginProperty();
542*b1cdbd2cSJim Jagielski 
543*b1cdbd2cSJim Jagielski private:
544*b1cdbd2cSJim Jagielski     mutable Any m_aOuterValue;
545*b1cdbd2cSJim Jagielski };
546*b1cdbd2cSJim Jagielski 
WrappedErrorMarginProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)547*b1cdbd2cSJim Jagielski WrappedErrorMarginProperty::WrappedErrorMarginProperty(
548*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
549*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
550*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< double >( C2U("ErrorMargin")
551*b1cdbd2cSJim Jagielski             , uno::makeAny( double(0.0) ), spChart2ModelContact, ePropertyType  )
552*b1cdbd2cSJim Jagielski {
553*b1cdbd2cSJim Jagielski }
~WrappedErrorMarginProperty()554*b1cdbd2cSJim Jagielski WrappedErrorMarginProperty::~WrappedErrorMarginProperty()
555*b1cdbd2cSJim Jagielski {
556*b1cdbd2cSJim Jagielski }
557*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const558*b1cdbd2cSJim Jagielski double WrappedErrorMarginProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
559*b1cdbd2cSJim Jagielski {
560*b1cdbd2cSJim Jagielski     double aRet = 0.0;
561*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
562*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
563*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
564*b1cdbd2cSJim Jagielski     {
565*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN == lcl_getErrorBarStyle( xErrorBarProperties ) )
566*b1cdbd2cSJim Jagielski             xErrorBarProperties->getPropertyValue( C2U( "PositiveError" )) >>= aRet;
567*b1cdbd2cSJim Jagielski         else
568*b1cdbd2cSJim Jagielski             m_aOuterValue >>= aRet;
569*b1cdbd2cSJim Jagielski     }
570*b1cdbd2cSJim Jagielski     return aRet;
571*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,double aNewValue) const572*b1cdbd2cSJim Jagielski void WrappedErrorMarginProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, double aNewValue ) const
573*b1cdbd2cSJim Jagielski {
574*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
575*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
576*b1cdbd2cSJim Jagielski     {
577*b1cdbd2cSJim Jagielski         m_aOuterValue = uno::makeAny( aNewValue );
578*b1cdbd2cSJim Jagielski         if( ::com::sun::star::chart::ErrorBarStyle::ERROR_MARGIN == lcl_getErrorBarStyle( xErrorBarProperties ) )
579*b1cdbd2cSJim Jagielski         {
580*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "PositiveError" ), m_aOuterValue );
581*b1cdbd2cSJim Jagielski             xErrorBarProperties->setPropertyValue( C2U( "NegativeError" ), m_aOuterValue );
582*b1cdbd2cSJim Jagielski         }
583*b1cdbd2cSJim Jagielski     }
584*b1cdbd2cSJim Jagielski }
585*b1cdbd2cSJim Jagielski 
586*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
587*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
588*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
589*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_INDICATOR
590*b1cdbd2cSJim Jagielski class WrappedErrorIndicatorProperty : public WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorIndicatorType >
591*b1cdbd2cSJim Jagielski {
592*b1cdbd2cSJim Jagielski public:
593*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::chart::ChartErrorIndicatorType getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
594*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorIndicatorType aNewValue ) const;
595*b1cdbd2cSJim Jagielski 
596*b1cdbd2cSJim Jagielski     explicit WrappedErrorIndicatorProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
597*b1cdbd2cSJim Jagielski                                             tSeriesOrDiagramPropertyType ePropertyType );
598*b1cdbd2cSJim Jagielski     virtual ~WrappedErrorIndicatorProperty();
599*b1cdbd2cSJim Jagielski };
600*b1cdbd2cSJim Jagielski 
WrappedErrorIndicatorProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)601*b1cdbd2cSJim Jagielski WrappedErrorIndicatorProperty::WrappedErrorIndicatorProperty(
602*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
603*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
604*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< ::com::sun::star::chart::ChartErrorIndicatorType >( C2U("ErrorIndicator")
605*b1cdbd2cSJim Jagielski             , uno::makeAny( ::com::sun::star::chart::ChartErrorIndicatorType_NONE ), spChart2ModelContact, ePropertyType  )
606*b1cdbd2cSJim Jagielski {
607*b1cdbd2cSJim Jagielski }
~WrappedErrorIndicatorProperty()608*b1cdbd2cSJim Jagielski WrappedErrorIndicatorProperty::~WrappedErrorIndicatorProperty()
609*b1cdbd2cSJim Jagielski {
610*b1cdbd2cSJim Jagielski }
611*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const612*b1cdbd2cSJim Jagielski ::com::sun::star::chart::ChartErrorIndicatorType WrappedErrorIndicatorProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
613*b1cdbd2cSJim Jagielski {
614*b1cdbd2cSJim Jagielski     ::com::sun::star::chart::ChartErrorIndicatorType aRet = ::com::sun::star::chart::ChartErrorIndicatorType_NONE;
615*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
616*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
617*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
618*b1cdbd2cSJim Jagielski     {
619*b1cdbd2cSJim Jagielski         sal_Bool bPositive = sal_False;
620*b1cdbd2cSJim Jagielski         sal_Bool bNegative = sal_False;
621*b1cdbd2cSJim Jagielski         xErrorBarProperties->getPropertyValue( C2U( "ShowPositiveError" )) >>= bPositive;
622*b1cdbd2cSJim Jagielski         xErrorBarProperties->getPropertyValue( C2U( "ShowNegativeError" )) >>= bNegative;
623*b1cdbd2cSJim Jagielski 
624*b1cdbd2cSJim Jagielski         if( bPositive && bNegative )
625*b1cdbd2cSJim Jagielski             aRet = ::com::sun::star::chart::ChartErrorIndicatorType_TOP_AND_BOTTOM;
626*b1cdbd2cSJim Jagielski         else if( bPositive && !bNegative )
627*b1cdbd2cSJim Jagielski             aRet = ::com::sun::star::chart::ChartErrorIndicatorType_UPPER;
628*b1cdbd2cSJim Jagielski         else if( !bPositive && bNegative )
629*b1cdbd2cSJim Jagielski             aRet = ::com::sun::star::chart::ChartErrorIndicatorType_LOWER;
630*b1cdbd2cSJim Jagielski     }
631*b1cdbd2cSJim Jagielski     return aRet;
632*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,::com::sun::star::chart::ChartErrorIndicatorType aNewValue) const633*b1cdbd2cSJim Jagielski void WrappedErrorIndicatorProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartErrorIndicatorType aNewValue ) const
634*b1cdbd2cSJim Jagielski {
635*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
636*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
637*b1cdbd2cSJim Jagielski     {
638*b1cdbd2cSJim Jagielski         sal_Bool bPositive = sal_False;
639*b1cdbd2cSJim Jagielski         sal_Bool bNegative = sal_False;
640*b1cdbd2cSJim Jagielski         switch( aNewValue )
641*b1cdbd2cSJim Jagielski         {
642*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorIndicatorType_TOP_AND_BOTTOM:
643*b1cdbd2cSJim Jagielski                 bPositive = sal_True;
644*b1cdbd2cSJim Jagielski                 bNegative = sal_True;
645*b1cdbd2cSJim Jagielski                 break;
646*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorIndicatorType_UPPER:
647*b1cdbd2cSJim Jagielski                 bPositive = sal_True;
648*b1cdbd2cSJim Jagielski                 break;
649*b1cdbd2cSJim Jagielski             case ::com::sun::star::chart::ChartErrorIndicatorType_LOWER:
650*b1cdbd2cSJim Jagielski                 bNegative = sal_True;
651*b1cdbd2cSJim Jagielski                 break;
652*b1cdbd2cSJim Jagielski             default:
653*b1cdbd2cSJim Jagielski                 break;
654*b1cdbd2cSJim Jagielski         }
655*b1cdbd2cSJim Jagielski 
656*b1cdbd2cSJim Jagielski         xErrorBarProperties->setPropertyValue( C2U( "ShowPositiveError" ), uno::makeAny(bPositive) );
657*b1cdbd2cSJim Jagielski         xErrorBarProperties->setPropertyValue( C2U( "ShowNegativeError" ), uno::makeAny(bNegative) );
658*b1cdbd2cSJim Jagielski     }
659*b1cdbd2cSJim Jagielski }
660*b1cdbd2cSJim Jagielski 
661*b1cdbd2cSJim Jagielski 
662*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
663*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
664*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
665*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_BAR_STYLE
666*b1cdbd2cSJim Jagielski // this is the new constant group that replaces the deprecated enum ChartErrorCategory
667*b1cdbd2cSJim Jagielski class WrappedErrorBarStyleProperty : public WrappedStatisticProperty< sal_Int32 >
668*b1cdbd2cSJim Jagielski {
669*b1cdbd2cSJim Jagielski public:
670*b1cdbd2cSJim Jagielski     virtual sal_Int32 getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
671*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Int32 nNewValue ) const;
672*b1cdbd2cSJim Jagielski 
673*b1cdbd2cSJim Jagielski     explicit WrappedErrorBarStyleProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact1,
674*b1cdbd2cSJim Jagielski                                            tSeriesOrDiagramPropertyType ePropertyType );
675*b1cdbd2cSJim Jagielski     virtual ~WrappedErrorBarStyleProperty();
676*b1cdbd2cSJim Jagielski };
677*b1cdbd2cSJim Jagielski 
WrappedErrorBarStyleProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)678*b1cdbd2cSJim Jagielski WrappedErrorBarStyleProperty::WrappedErrorBarStyleProperty(
679*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
680*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
681*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< sal_Int32 >( C2U("ErrorBarStyle")
682*b1cdbd2cSJim Jagielski             , uno::makeAny( ::com::sun::star::chart::ErrorBarStyle::NONE ), spChart2ModelContact, ePropertyType  )
683*b1cdbd2cSJim Jagielski {
684*b1cdbd2cSJim Jagielski }
~WrappedErrorBarStyleProperty()685*b1cdbd2cSJim Jagielski WrappedErrorBarStyleProperty::~WrappedErrorBarStyleProperty()
686*b1cdbd2cSJim Jagielski {
687*b1cdbd2cSJim Jagielski }
688*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const689*b1cdbd2cSJim Jagielski sal_Int32 WrappedErrorBarStyleProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
690*b1cdbd2cSJim Jagielski {
691*b1cdbd2cSJim Jagielski     sal_Int32 nRet = ::com::sun::star::chart::ErrorBarStyle::NONE;
692*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= nRet;
693*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties;
694*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarProperties ) && xErrorBarProperties.is())
695*b1cdbd2cSJim Jagielski     {
696*b1cdbd2cSJim Jagielski         xErrorBarProperties->getPropertyValue( C2U( "ErrorBarStyle" )) >>= nRet;
697*b1cdbd2cSJim Jagielski     }
698*b1cdbd2cSJim Jagielski     return nRet;
699*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,sal_Int32 nNewValue) const700*b1cdbd2cSJim Jagielski void WrappedErrorBarStyleProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, sal_Int32 nNewValue ) const
701*b1cdbd2cSJim Jagielski {
702*b1cdbd2cSJim Jagielski     if( !xSeriesPropertySet.is() )
703*b1cdbd2cSJim Jagielski         return;
704*b1cdbd2cSJim Jagielski 
705*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
706*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
707*b1cdbd2cSJim Jagielski     {
708*b1cdbd2cSJim Jagielski         xErrorBarProperties->setPropertyValue( C2U( "ErrorBarStyle" ), uno::makeAny( nNewValue ));
709*b1cdbd2cSJim Jagielski     }
710*b1cdbd2cSJim Jagielski }
711*b1cdbd2cSJim Jagielski 
712*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
713*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
714*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
715*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_RANGE_POSITIVE
716*b1cdbd2cSJim Jagielski class WrappedErrorBarRangePositiveProperty : public WrappedStatisticProperty< OUString >
717*b1cdbd2cSJim Jagielski {
718*b1cdbd2cSJim Jagielski public:
719*b1cdbd2cSJim Jagielski     virtual OUString getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
720*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const;
721*b1cdbd2cSJim Jagielski 
722*b1cdbd2cSJim Jagielski     explicit WrappedErrorBarRangePositiveProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
723*b1cdbd2cSJim Jagielski                                                    tSeriesOrDiagramPropertyType ePropertyType );
724*b1cdbd2cSJim Jagielski     virtual ~WrappedErrorBarRangePositiveProperty();
725*b1cdbd2cSJim Jagielski 
726*b1cdbd2cSJim Jagielski private:
727*b1cdbd2cSJim Jagielski     mutable Any m_aOuterValue;
728*b1cdbd2cSJim Jagielski };
729*b1cdbd2cSJim Jagielski 
WrappedErrorBarRangePositiveProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)730*b1cdbd2cSJim Jagielski WrappedErrorBarRangePositiveProperty::WrappedErrorBarRangePositiveProperty(
731*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
732*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
733*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< OUString >( C2U("ErrorBarRangePositive")
734*b1cdbd2cSJim Jagielski             , uno::makeAny( OUString() ), spChart2ModelContact, ePropertyType  )
735*b1cdbd2cSJim Jagielski {
736*b1cdbd2cSJim Jagielski }
~WrappedErrorBarRangePositiveProperty()737*b1cdbd2cSJim Jagielski WrappedErrorBarRangePositiveProperty::~WrappedErrorBarRangePositiveProperty()
738*b1cdbd2cSJim Jagielski {
739*b1cdbd2cSJim Jagielski }
740*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const741*b1cdbd2cSJim Jagielski OUString WrappedErrorBarRangePositiveProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
742*b1cdbd2cSJim Jagielski {
743*b1cdbd2cSJim Jagielski     OUString aRet;
744*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
745*b1cdbd2cSJim Jagielski     uno::Reference< chart2::data::XDataSource > xErrorBarDataSource;
746*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() &&
747*b1cdbd2cSJim Jagielski         ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarDataSource ) &&
748*b1cdbd2cSJim Jagielski         xErrorBarDataSource.is())
749*b1cdbd2cSJim Jagielski     {
750*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XDataSequence > xSeq(
751*b1cdbd2cSJim Jagielski             StatisticsHelper::getErrorDataSequenceFromDataSource(
752*b1cdbd2cSJim Jagielski                 xErrorBarDataSource, true /* positive */, true /* y-error */ ));
753*b1cdbd2cSJim Jagielski         if( xSeq.is())
754*b1cdbd2cSJim Jagielski             aRet = xSeq->getSourceRangeRepresentation();
755*b1cdbd2cSJim Jagielski         else
756*b1cdbd2cSJim Jagielski             m_aOuterValue >>= aRet;
757*b1cdbd2cSJim Jagielski     }
758*b1cdbd2cSJim Jagielski     lcl_ConvertRangeToXML( aRet, m_spChart2ModelContact );
759*b1cdbd2cSJim Jagielski     return aRet;
760*b1cdbd2cSJim Jagielski }
761*b1cdbd2cSJim Jagielski 
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,OUString aNewValue) const762*b1cdbd2cSJim Jagielski void WrappedErrorBarRangePositiveProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const
763*b1cdbd2cSJim Jagielski {
764*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
765*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
766*b1cdbd2cSJim Jagielski     {
767*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XDataProvider > xDataProvider(
768*b1cdbd2cSJim Jagielski             lcl_getDataProviderFromContact( m_spChart2ModelContact ));
769*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XDataSource > xDataSource( xErrorBarProperties, uno::UNO_QUERY );
770*b1cdbd2cSJim Jagielski         if( xDataSource.is() && xDataProvider.is())
771*b1cdbd2cSJim Jagielski         {
772*b1cdbd2cSJim Jagielski             OUString aXMLRange( aNewValue );
773*b1cdbd2cSJim Jagielski             lcl_ConvertRangeFromXML( aNewValue, m_spChart2ModelContact );
774*b1cdbd2cSJim Jagielski             StatisticsHelper::setErrorDataSequence(
775*b1cdbd2cSJim Jagielski                 xDataSource, xDataProvider, aNewValue, true /* positive */, true /* y-error */, &aXMLRange );
776*b1cdbd2cSJim Jagielski             m_aOuterValue <<= aNewValue;
777*b1cdbd2cSJim Jagielski         }
778*b1cdbd2cSJim Jagielski     }
779*b1cdbd2cSJim Jagielski }
780*b1cdbd2cSJim Jagielski 
781*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
782*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
783*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
784*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_RANGE_NEGATIVE
785*b1cdbd2cSJim Jagielski class WrappedErrorBarRangeNegativeProperty : public WrappedStatisticProperty< OUString >
786*b1cdbd2cSJim Jagielski {
787*b1cdbd2cSJim Jagielski public:
788*b1cdbd2cSJim Jagielski     virtual OUString getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
789*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const;
790*b1cdbd2cSJim Jagielski 
791*b1cdbd2cSJim Jagielski     explicit WrappedErrorBarRangeNegativeProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
792*b1cdbd2cSJim Jagielski                                                    tSeriesOrDiagramPropertyType ePropertyType );
793*b1cdbd2cSJim Jagielski     virtual ~WrappedErrorBarRangeNegativeProperty();
794*b1cdbd2cSJim Jagielski 
795*b1cdbd2cSJim Jagielski private:
796*b1cdbd2cSJim Jagielski     mutable Any m_aOuterValue;
797*b1cdbd2cSJim Jagielski };
798*b1cdbd2cSJim Jagielski 
WrappedErrorBarRangeNegativeProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)799*b1cdbd2cSJim Jagielski WrappedErrorBarRangeNegativeProperty::WrappedErrorBarRangeNegativeProperty(
800*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
801*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
802*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< OUString >( C2U("ErrorBarRangeNegative")
803*b1cdbd2cSJim Jagielski             , uno::makeAny( OUString() ), spChart2ModelContact, ePropertyType  )
804*b1cdbd2cSJim Jagielski {
805*b1cdbd2cSJim Jagielski }
~WrappedErrorBarRangeNegativeProperty()806*b1cdbd2cSJim Jagielski WrappedErrorBarRangeNegativeProperty::~WrappedErrorBarRangeNegativeProperty()
807*b1cdbd2cSJim Jagielski {
808*b1cdbd2cSJim Jagielski }
809*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const810*b1cdbd2cSJim Jagielski OUString WrappedErrorBarRangeNegativeProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
811*b1cdbd2cSJim Jagielski {
812*b1cdbd2cSJim Jagielski     OUString aRet;
813*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
814*b1cdbd2cSJim Jagielski     uno::Reference< chart2::data::XDataSource > xErrorBarDataSource;
815*b1cdbd2cSJim Jagielski     if( xSeriesPropertySet.is() &&
816*b1cdbd2cSJim Jagielski         ( xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xErrorBarDataSource ) &&
817*b1cdbd2cSJim Jagielski         xErrorBarDataSource.is())
818*b1cdbd2cSJim Jagielski     {
819*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XDataSequence > xSeq(
820*b1cdbd2cSJim Jagielski             StatisticsHelper::getErrorDataSequenceFromDataSource(
821*b1cdbd2cSJim Jagielski                 xErrorBarDataSource, false /* positive */, true /* y-error */ ));
822*b1cdbd2cSJim Jagielski         if( xSeq.is())
823*b1cdbd2cSJim Jagielski             aRet = xSeq->getSourceRangeRepresentation();
824*b1cdbd2cSJim Jagielski         else
825*b1cdbd2cSJim Jagielski             m_aOuterValue >>= aRet;
826*b1cdbd2cSJim Jagielski     }
827*b1cdbd2cSJim Jagielski     lcl_ConvertRangeToXML( aRet, m_spChart2ModelContact );
828*b1cdbd2cSJim Jagielski     return aRet;
829*b1cdbd2cSJim Jagielski }
830*b1cdbd2cSJim Jagielski 
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,OUString aNewValue) const831*b1cdbd2cSJim Jagielski void WrappedErrorBarRangeNegativeProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, OUString aNewValue ) const
832*b1cdbd2cSJim Jagielski {
833*b1cdbd2cSJim Jagielski     uno::Reference< beans::XPropertySet > xErrorBarProperties( getOrCreateErrorBarProperties(xSeriesPropertySet) );
834*b1cdbd2cSJim Jagielski     if( xErrorBarProperties.is() )
835*b1cdbd2cSJim Jagielski     {
836*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XDataProvider > xDataProvider(
837*b1cdbd2cSJim Jagielski             lcl_getDataProviderFromContact( m_spChart2ModelContact ));
838*b1cdbd2cSJim Jagielski         uno::Reference< chart2::data::XDataSource > xDataSource( xErrorBarProperties, uno::UNO_QUERY );
839*b1cdbd2cSJim Jagielski         if( xDataSource.is() && xDataProvider.is())
840*b1cdbd2cSJim Jagielski         {
841*b1cdbd2cSJim Jagielski             OUString aXMLRange( aNewValue );
842*b1cdbd2cSJim Jagielski             lcl_ConvertRangeFromXML( aNewValue, m_spChart2ModelContact );
843*b1cdbd2cSJim Jagielski             StatisticsHelper::setErrorDataSequence(
844*b1cdbd2cSJim Jagielski                 xDataSource, xDataProvider, aNewValue, false /* positive */, true /* y-error */, &aXMLRange );
845*b1cdbd2cSJim Jagielski             m_aOuterValue <<= aNewValue;
846*b1cdbd2cSJim Jagielski         }
847*b1cdbd2cSJim Jagielski     }
848*b1cdbd2cSJim Jagielski }
849*b1cdbd2cSJim Jagielski 
850*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
851*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
852*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
853*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_REGRESSION_CURVES
854*b1cdbd2cSJim Jagielski class WrappedRegressionCurvesProperty : public WrappedStatisticProperty< ::com::sun::star::chart::ChartRegressionCurveType >
855*b1cdbd2cSJim Jagielski {
856*b1cdbd2cSJim Jagielski public:
857*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::chart::ChartRegressionCurveType getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
858*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartRegressionCurveType aNewValue ) const;
859*b1cdbd2cSJim Jagielski 
860*b1cdbd2cSJim Jagielski     explicit WrappedRegressionCurvesProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
861*b1cdbd2cSJim Jagielski                                               tSeriesOrDiagramPropertyType ePropertyType );
862*b1cdbd2cSJim Jagielski     virtual ~WrappedRegressionCurvesProperty();
863*b1cdbd2cSJim Jagielski };
864*b1cdbd2cSJim Jagielski 
WrappedRegressionCurvesProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)865*b1cdbd2cSJim Jagielski WrappedRegressionCurvesProperty::WrappedRegressionCurvesProperty(
866*b1cdbd2cSJim Jagielski     ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
867*b1cdbd2cSJim Jagielski     tSeriesOrDiagramPropertyType ePropertyType )
868*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< ::com::sun::star::chart::ChartRegressionCurveType >( C2U("RegressionCurves")
869*b1cdbd2cSJim Jagielski         , lcl_getRegressionDefault(), spChart2ModelContact, ePropertyType  )
870*b1cdbd2cSJim Jagielski {
871*b1cdbd2cSJim Jagielski }
~WrappedRegressionCurvesProperty()872*b1cdbd2cSJim Jagielski WrappedRegressionCurvesProperty::~WrappedRegressionCurvesProperty()
873*b1cdbd2cSJim Jagielski {
874*b1cdbd2cSJim Jagielski }
875*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const876*b1cdbd2cSJim Jagielski ::com::sun::star::chart::ChartRegressionCurveType WrappedRegressionCurvesProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
877*b1cdbd2cSJim Jagielski {
878*b1cdbd2cSJim Jagielski     ::com::sun::star::chart::ChartRegressionCurveType aRet;
879*b1cdbd2cSJim Jagielski     m_aDefaultValue >>= aRet;
880*b1cdbd2cSJim Jagielski     uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY );
881*b1cdbd2cSJim Jagielski     if( xRegCnt.is() )
882*b1cdbd2cSJim Jagielski     {
883*b1cdbd2cSJim Jagielski         aRet = lcl_getRegressionCurveType(
884*b1cdbd2cSJim Jagielski             RegressionCurveHelper::getFirstRegressTypeNotMeanValueLine( xRegCnt ) );
885*b1cdbd2cSJim Jagielski     }
886*b1cdbd2cSJim Jagielski     return aRet;
887*b1cdbd2cSJim Jagielski }
setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet,::com::sun::star::chart::ChartRegressionCurveType aNewValue) const888*b1cdbd2cSJim Jagielski void WrappedRegressionCurvesProperty::setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, ::com::sun::star::chart::ChartRegressionCurveType aNewValue ) const
889*b1cdbd2cSJim Jagielski {
890*b1cdbd2cSJim Jagielski     uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY );
891*b1cdbd2cSJim Jagielski     if( xRegCnt.is() )
892*b1cdbd2cSJim Jagielski     {
893*b1cdbd2cSJim Jagielski         RegressionCurveHelper::tRegressionType eNewRegressionType = lcl_getRegressionType( aNewValue );
894*b1cdbd2cSJim Jagielski         RegressionCurveHelper::removeAllExceptMeanValueLine( xRegCnt );
895*b1cdbd2cSJim Jagielski         if( eNewRegressionType != RegressionCurveHelper::REGRESSION_TYPE_NONE )
896*b1cdbd2cSJim Jagielski             RegressionCurveHelper::addRegressionCurve( eNewRegressionType, xRegCnt, 0, 0 );
897*b1cdbd2cSJim Jagielski     }
898*b1cdbd2cSJim Jagielski }
899*b1cdbd2cSJim Jagielski 
900*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
901*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
902*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
903*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_REGRESSION_PROPERTIES
904*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_ERROR_PROPERTIES
905*b1cdbd2cSJim Jagielski //PROP_CHART_STATISTIC_MEAN_VALUE_PROPERTIES
906*b1cdbd2cSJim Jagielski class WrappedStatisticPropertySetProperty : public WrappedStatisticProperty< Reference< beans::XPropertySet > >
907*b1cdbd2cSJim Jagielski {
908*b1cdbd2cSJim Jagielski public:
909*b1cdbd2cSJim Jagielski     virtual Reference< beans::XPropertySet > getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const;
910*b1cdbd2cSJim Jagielski     // properties are read-only, so this method should never be called
911*b1cdbd2cSJim Jagielski     virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, Reference< beans::XPropertySet > xNewValue ) const;
912*b1cdbd2cSJim Jagielski 
913*b1cdbd2cSJim Jagielski     enum PropertySetType
914*b1cdbd2cSJim Jagielski     {
915*b1cdbd2cSJim Jagielski         PROPERTY_SET_TYPE_REGRESSION,
916*b1cdbd2cSJim Jagielski         PROPERTY_SET_TYPE_ERROR_BAR,
917*b1cdbd2cSJim Jagielski         PROPERTY_SET_TYPE_MEAN_VALUE
918*b1cdbd2cSJim Jagielski     };
919*b1cdbd2cSJim Jagielski 
920*b1cdbd2cSJim Jagielski     explicit WrappedStatisticPropertySetProperty(
921*b1cdbd2cSJim Jagielski         PropertySetType ePropertySetType, ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact,
922*b1cdbd2cSJim Jagielski         tSeriesOrDiagramPropertyType ePropertyType );
923*b1cdbd2cSJim Jagielski     virtual ~WrappedStatisticPropertySetProperty();
924*b1cdbd2cSJim Jagielski 
925*b1cdbd2cSJim Jagielski private:
926*b1cdbd2cSJim Jagielski     PropertySetType m_eType;
927*b1cdbd2cSJim Jagielski };
928*b1cdbd2cSJim Jagielski 
WrappedStatisticPropertySetProperty(PropertySetType ePropertySetType,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)929*b1cdbd2cSJim Jagielski WrappedStatisticPropertySetProperty::WrappedStatisticPropertySetProperty(
930*b1cdbd2cSJim Jagielski     PropertySetType ePropertySetType
931*b1cdbd2cSJim Jagielski     , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact
932*b1cdbd2cSJim Jagielski     , tSeriesOrDiagramPropertyType ePropertyType )
933*b1cdbd2cSJim Jagielski         : WrappedStatisticProperty< Reference< beans::XPropertySet > >(
934*b1cdbd2cSJim Jagielski             (ePropertySetType == PROPERTY_SET_TYPE_REGRESSION)
935*b1cdbd2cSJim Jagielski             ? C2U("DataRegressionProperties")
936*b1cdbd2cSJim Jagielski             : (ePropertySetType == PROPERTY_SET_TYPE_ERROR_BAR)
937*b1cdbd2cSJim Jagielski             ? C2U("DataErrorProperties")
938*b1cdbd2cSJim Jagielski             : C2U("DataMeanValueProperties")
939*b1cdbd2cSJim Jagielski             , uno::Any(), spChart2ModelContact, ePropertyType  )
940*b1cdbd2cSJim Jagielski         , m_eType( ePropertySetType )
941*b1cdbd2cSJim Jagielski {
942*b1cdbd2cSJim Jagielski }
~WrappedStatisticPropertySetProperty()943*b1cdbd2cSJim Jagielski WrappedStatisticPropertySetProperty::~WrappedStatisticPropertySetProperty()
944*b1cdbd2cSJim Jagielski {
945*b1cdbd2cSJim Jagielski }
946*b1cdbd2cSJim Jagielski 
getValueFromSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet) const947*b1cdbd2cSJim Jagielski Reference< beans::XPropertySet > WrappedStatisticPropertySetProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
948*b1cdbd2cSJim Jagielski {
949*b1cdbd2cSJim Jagielski     Reference< beans::XPropertySet > xResult;
950*b1cdbd2cSJim Jagielski     uno::Reference< chart2::XRegressionCurveContainer > xRegCnt( xSeriesPropertySet, uno::UNO_QUERY );
951*b1cdbd2cSJim Jagielski 
952*b1cdbd2cSJim Jagielski     switch( m_eType )
953*b1cdbd2cSJim Jagielski     {
954*b1cdbd2cSJim Jagielski         case PROPERTY_SET_TYPE_REGRESSION:
955*b1cdbd2cSJim Jagielski             if( xRegCnt.is() )
956*b1cdbd2cSJim Jagielski                 xResult.set( RegressionCurveHelper::getFirstCurveNotMeanValueLine( xRegCnt ), uno::UNO_QUERY );
957*b1cdbd2cSJim Jagielski             break;
958*b1cdbd2cSJim Jagielski         case PROPERTY_SET_TYPE_ERROR_BAR:
959*b1cdbd2cSJim Jagielski             if( xSeriesPropertySet.is())
960*b1cdbd2cSJim Jagielski                 xSeriesPropertySet->getPropertyValue( C2U( "ErrorBarY" )) >>= xResult;
961*b1cdbd2cSJim Jagielski             break;
962*b1cdbd2cSJim Jagielski         case PROPERTY_SET_TYPE_MEAN_VALUE:
963*b1cdbd2cSJim Jagielski             if( xRegCnt.is() )
964*b1cdbd2cSJim Jagielski                 xResult.set( RegressionCurveHelper::getMeanValueLine( xRegCnt ), uno::UNO_QUERY );
965*b1cdbd2cSJim Jagielski             break;
966*b1cdbd2cSJim Jagielski     }
967*b1cdbd2cSJim Jagielski 
968*b1cdbd2cSJim Jagielski     return xResult;
969*b1cdbd2cSJim Jagielski }
970*b1cdbd2cSJim Jagielski 
setValueToSeries(const Reference<beans::XPropertySet> &,Reference<beans::XPropertySet>) const971*b1cdbd2cSJim Jagielski void WrappedStatisticPropertySetProperty::setValueToSeries(
972*b1cdbd2cSJim Jagielski     const Reference< beans::XPropertySet >& /* xSeriesPropertySet */
973*b1cdbd2cSJim Jagielski     , Reference< beans::XPropertySet > /* xNewValue */ ) const
974*b1cdbd2cSJim Jagielski {
975*b1cdbd2cSJim Jagielski }
976*b1cdbd2cSJim Jagielski 
977*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
978*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
979*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
980*b1cdbd2cSJim Jagielski 
981*b1cdbd2cSJim Jagielski namespace
982*b1cdbd2cSJim Jagielski {
983*b1cdbd2cSJim Jagielski enum
984*b1cdbd2cSJim Jagielski {
985*b1cdbd2cSJim Jagielski     //statistic properties
986*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_CONST_ERROR_LOW = FAST_PROPERTY_ID_START_CHART_STATISTIC_PROP,
987*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_CONST_ERROR_HIGH,
988*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_MEAN_VALUE,
989*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_CATEGORY,
990*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_BAR_STYLE,
991*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_PERCENT_ERROR,
992*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_MARGIN,
993*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_INDICATOR,
994*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_RANGE_POSITIVE,
995*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_RANGE_NEGATIVE,
996*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_REGRESSION_CURVES,
997*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_REGRESSION_PROPERTIES,
998*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_ERROR_PROPERTIES,
999*b1cdbd2cSJim Jagielski     PROP_CHART_STATISTIC_MEAN_VALUE_PROPERTIES
1000*b1cdbd2cSJim Jagielski };
1001*b1cdbd2cSJim Jagielski 
1002*b1cdbd2cSJim Jagielski /** @parameter bDataSeriesProperty if true, this property is for a single data
1003*b1cdbd2cSJim Jagielski                series, if false, it is for the whole diagram, i.e. for all
1004*b1cdbd2cSJim Jagielski                series
1005*b1cdbd2cSJim Jagielski  */
lcl_addWrappedProperties(std::vector<WrappedProperty * > & rList,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact,tSeriesOrDiagramPropertyType ePropertyType)1006*b1cdbd2cSJim Jagielski void lcl_addWrappedProperties( std::vector< WrappedProperty* >& rList
1007*b1cdbd2cSJim Jagielski             , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact
1008*b1cdbd2cSJim Jagielski             , tSeriesOrDiagramPropertyType ePropertyType )
1009*b1cdbd2cSJim Jagielski {
1010*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedConstantErrorLowProperty( spChart2ModelContact, ePropertyType ) );
1011*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedConstantErrorHighProperty( spChart2ModelContact, ePropertyType ) );
1012*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedMeanValueProperty( spChart2ModelContact, ePropertyType ) );
1013*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedErrorCategoryProperty( spChart2ModelContact, ePropertyType ) );
1014*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedErrorBarStyleProperty( spChart2ModelContact, ePropertyType ) );
1015*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedPercentageErrorProperty( spChart2ModelContact, ePropertyType ) );
1016*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedErrorMarginProperty( spChart2ModelContact, ePropertyType ) );
1017*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedErrorIndicatorProperty( spChart2ModelContact, ePropertyType ) );
1018*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedErrorBarRangePositiveProperty( spChart2ModelContact, ePropertyType ) );
1019*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedErrorBarRangeNegativeProperty( spChart2ModelContact, ePropertyType ) );
1020*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedRegressionCurvesProperty( spChart2ModelContact, ePropertyType ) );
1021*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedStatisticPropertySetProperty(
1022*b1cdbd2cSJim Jagielski                          WrappedStatisticPropertySetProperty::PROPERTY_SET_TYPE_REGRESSION, spChart2ModelContact, ePropertyType ) );
1023*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedStatisticPropertySetProperty(
1024*b1cdbd2cSJim Jagielski                          WrappedStatisticPropertySetProperty::PROPERTY_SET_TYPE_ERROR_BAR,  spChart2ModelContact, ePropertyType ) );
1025*b1cdbd2cSJim Jagielski     rList.push_back( new WrappedStatisticPropertySetProperty(
1026*b1cdbd2cSJim Jagielski                          WrappedStatisticPropertySetProperty::PROPERTY_SET_TYPE_MEAN_VALUE, spChart2ModelContact, ePropertyType ) );
1027*b1cdbd2cSJim Jagielski }
1028*b1cdbd2cSJim Jagielski 
1029*b1cdbd2cSJim Jagielski }//anonymous namespace
1030*b1cdbd2cSJim Jagielski 
addProperties(::std::vector<Property> & rOutProperties)1031*b1cdbd2cSJim Jagielski void WrappedStatisticProperties::addProperties( ::std::vector< Property > & rOutProperties )
1032*b1cdbd2cSJim Jagielski {
1033*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1034*b1cdbd2cSJim Jagielski         Property( C2U( "ConstantErrorLow" ),
1035*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_CONST_ERROR_LOW,
1036*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< double * >(0)),
1037*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1038*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1039*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1040*b1cdbd2cSJim Jagielski         Property( C2U( "ConstantErrorHigh" ),
1041*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_CONST_ERROR_HIGH,
1042*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< double * >(0)),
1043*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1044*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1045*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1046*b1cdbd2cSJim Jagielski         Property( C2U( "MeanValue" ),
1047*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_MEAN_VALUE,
1048*b1cdbd2cSJim Jagielski                   ::getBooleanCppuType(),
1049*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1050*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1051*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1052*b1cdbd2cSJim Jagielski         Property( C2U( "ErrorCategory" ),
1053*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_CATEGORY,
1054*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< ::com::sun::star::chart::ChartErrorCategory * >(0)),
1055*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1056*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1057*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1058*b1cdbd2cSJim Jagielski         Property( C2U( "ErrorBarStyle" ),
1059*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_BAR_STYLE,
1060*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< sal_Int32 * >(0)),
1061*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1062*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1063*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1064*b1cdbd2cSJim Jagielski         Property( C2U( "PercentageError" ),
1065*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_PERCENT_ERROR,
1066*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< double * >(0)),
1067*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1068*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1069*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1070*b1cdbd2cSJim Jagielski         Property( C2U( "ErrorMargin" ),
1071*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_MARGIN,
1072*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< double * >(0)),
1073*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1074*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1075*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1076*b1cdbd2cSJim Jagielski         Property( C2U( "ErrorIndicator" ),
1077*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_INDICATOR,
1078*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< ::com::sun::star::chart::ChartErrorIndicatorType * >(0)),
1079*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1080*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1081*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1082*b1cdbd2cSJim Jagielski         Property( C2U( "ErrorBarRangePositive" ),
1083*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_RANGE_POSITIVE,
1084*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< OUString * >(0)),
1085*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1086*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1087*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1088*b1cdbd2cSJim Jagielski         Property( C2U( "ErrorBarRangeNegative" ),
1089*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_RANGE_NEGATIVE,
1090*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< OUString * >(0)),
1091*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1092*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1093*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1094*b1cdbd2cSJim Jagielski         Property( C2U( "RegressionCurves" ),
1095*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_REGRESSION_CURVES,
1096*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartRegressionCurveType * >(0)),
1097*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1098*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEDEFAULT ));
1099*b1cdbd2cSJim Jagielski 
1100*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1101*b1cdbd2cSJim Jagielski         Property( C2U( "DataRegressionProperties" ),
1102*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_REGRESSION_PROPERTIES,
1103*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< const Reference< beans::XPropertySet > * >(0)),
1104*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1105*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::READONLY
1106*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEVOID ));
1107*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1108*b1cdbd2cSJim Jagielski         Property( C2U( "DataErrorProperties" ),
1109*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_ERROR_PROPERTIES,
1110*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< const Reference< beans::XPropertySet > * >(0)),
1111*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1112*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::READONLY
1113*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEVOID ));
1114*b1cdbd2cSJim Jagielski     rOutProperties.push_back(
1115*b1cdbd2cSJim Jagielski         Property( C2U( "DataMeanValueProperties" ),
1116*b1cdbd2cSJim Jagielski                   PROP_CHART_STATISTIC_MEAN_VALUE_PROPERTIES,
1117*b1cdbd2cSJim Jagielski                   ::getCppuType( reinterpret_cast< const Reference< beans::XPropertySet > * >(0)),
1118*b1cdbd2cSJim Jagielski                   beans::PropertyAttribute::BOUND
1119*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::READONLY
1120*b1cdbd2cSJim Jagielski                   | beans::PropertyAttribute::MAYBEVOID ));
1121*b1cdbd2cSJim Jagielski }
1122*b1cdbd2cSJim Jagielski 
1123*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1124*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1125*b1cdbd2cSJim Jagielski 
addWrappedPropertiesForSeries(std::vector<WrappedProperty * > & rList,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)1126*b1cdbd2cSJim Jagielski void WrappedStatisticProperties::addWrappedPropertiesForSeries( std::vector< WrappedProperty* >& rList
1127*b1cdbd2cSJim Jagielski                                     , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
1128*b1cdbd2cSJim Jagielski {
1129*b1cdbd2cSJim Jagielski     lcl_addWrappedProperties( rList, spChart2ModelContact, DATA_SERIES );
1130*b1cdbd2cSJim Jagielski }
1131*b1cdbd2cSJim Jagielski 
1132*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1133*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1134*b1cdbd2cSJim Jagielski 
addWrappedPropertiesForDiagram(std::vector<WrappedProperty * > & rList,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)1135*b1cdbd2cSJim Jagielski void WrappedStatisticProperties::addWrappedPropertiesForDiagram( std::vector< WrappedProperty* >& rList
1136*b1cdbd2cSJim Jagielski                                     , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
1137*b1cdbd2cSJim Jagielski {
1138*b1cdbd2cSJim Jagielski     lcl_addWrappedProperties( rList, spChart2ModelContact, DIAGRAM  );
1139*b1cdbd2cSJim Jagielski }
1140*b1cdbd2cSJim Jagielski 
1141*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1142*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1143*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
1144*b1cdbd2cSJim Jagielski 
1145*b1cdbd2cSJim Jagielski } //namespace wrapper
1146*b1cdbd2cSJim Jagielski } //namespace chart
1147*b1cdbd2cSJim Jagielski //.............................................................................
1148