[Libreoffice-commits] core.git: 2 commits - chart2/source
Tomaž Vajngerl
quikee at gmail.com
Mon Dec 9 14:05:40 PST 2013
chart2/source/controller/dialogs/ObjectNameProvider.cxx | 28 +++++
chart2/source/controller/dialogs/Strings_Statistic.src | 14 +-
chart2/source/inc/RegressionCurveHelper.hxx | 19 +++
chart2/source/tools/RegressionCurveHelper.cxx | 78 +++++++++++++---
4 files changed, 118 insertions(+), 21 deletions(-)
New commits:
commit b0e66c05aff05843e6ca76aebc851671cb1d05ef
Author: Tomaž Vajngerl <quikee at gmail.com>
Date: Mon Dec 9 23:01:48 2013 +0100
More clearly name the trendline in chart's element selection box.
Change-Id: I5f787eb064524a3b2399d591866a5b8cbdee6294
diff --git a/chart2/source/controller/dialogs/ObjectNameProvider.cxx b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
index 648a6c7..73d8416 100644
--- a/chart2/source/controller/dialogs/ObjectNameProvider.cxx
+++ b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
@@ -747,8 +747,8 @@ OUString ObjectNameProvider::getNameForCID(
case OBJECTTYPE_DATA_ERRORS_X:
case OBJECTTYPE_DATA_ERRORS_Y:
case OBJECTTYPE_DATA_ERRORS_Z:
- case OBJECTTYPE_DATA_CURVE:
case OBJECTTYPE_DATA_AVERAGE_LINE:
+ case OBJECTTYPE_DATA_CURVE:
case OBJECTTYPE_DATA_CURVE_EQUATION:
{
OUString aRet = lcl_getFullSeriesName( rObjectCID, xModel );
@@ -766,8 +766,30 @@ OUString ObjectNameProvider::getNameForCID(
aRet += getName( OBJECTTYPE_DATA_LABEL );
}
}
+ else if (eType == OBJECTTYPE_DATA_CURVE || eType == OBJECTTYPE_DATA_CURVE_EQUATION)
+ {
+ Reference< chart2::XDataSeries > xSeries( ObjectIdentifier::getDataSeriesForCID( rObjectCID , xModel ));
+ Reference< chart2::XRegressionCurveContainer > xCurveCnt( xSeries, uno::UNO_QUERY );
+
+ aRet += " ";
+ aRet += getName(eType);
+
+ if( xCurveCnt.is())
+ {
+ sal_Int32 nCurveIndex = ObjectIdentifier::getIndexFromParticleOrCID( rObjectCID );
+ Reference< chart2::XRegressionCurve > xCurve( RegressionCurveHelper::getRegressionCurveAtIndex(xCurveCnt, nCurveIndex) );
+ if( xCurve.is())
+ {
+ aRet += " (";
+ aRet += RegressionCurveHelper::getRegressionCurveName(xCurve);
+ aRet += ")";
+ }
+ }
+ }
else
+ {
aRet += getName( eType );
+ }
return aRet;
}
default:
diff --git a/chart2/source/controller/dialogs/Strings_Statistic.src b/chart2/source/controller/dialogs/Strings_Statistic.src
index 7469f66..0be3a37 100644
--- a/chart2/source/controller/dialogs/Strings_Statistic.src
+++ b/chart2/source/controller/dialogs/Strings_Statistic.src
@@ -43,32 +43,32 @@ String STR_CONTROLTEXT_ERROR_BARS_FROM_DATA
String STR_REGRESSION_LINEAR
{
- Text [ en-US ] = "Linear (%SERIESNAME)" ;
+ Text [ en-US ] = "Linear" ;
};
String STR_REGRESSION_LOG
{
- Text [ en-US ] = "Logarithmic (%SERIESNAME)" ;
+ Text [ en-US ] = "Logarithmic" ;
};
String STR_REGRESSION_EXP
{
- Text [ en-US ] = "Exponential (%SERIESNAME)" ;
+ Text [ en-US ] = "Exponential" ;
};
String STR_REGRESSION_POWER
{
- Text [ en-US ] = "Power (%SERIESNAME)" ;
+ Text [ en-US ] = "Power" ;
};
String STR_REGRESSION_POLYNOMIAL
{
- Text [ en-US ] = "Polynomial (%SERIESNAME)" ;
+ Text [ en-US ] = "Polynomial" ;
};
String STR_REGRESSION_MOVING_AVERAGE
{
- Text [ en-US ] = "Moving average (%SERIESNAME)" ;
+ Text [ en-US ] = "Moving average" ;
};
String STR_REGRESSION_MEAN
{
- Text [ en-US ] = "Mean (%SERIESNAME)" ;
+ Text [ en-US ] = "Mean" ;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/inc/RegressionCurveHelper.hxx b/chart2/source/inc/RegressionCurveHelper.hxx
index f9637e2..58da00c 100644
--- a/chart2/source/inc/RegressionCurveHelper.hxx
+++ b/chart2/source/inc/RegressionCurveHelper.hxx
@@ -201,6 +201,18 @@ public:
static OUString getUINameForRegressionCurve( const ::com::sun::star::uno::Reference<
::com::sun::star::chart2::XRegressionCurve >& xCurve );
+ static OUString getRegressionCurveName(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::chart2::XRegressionCurve >& xCurve );
+
+ static OUString getRegressionCurveGenericName(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::chart2::XRegressionCurve >& xCurve );
+
+ static OUString getRegressionCurveSpecificName(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::chart2::XRegressionCurve >& xCurve );
+
static ::std::vector< ::com::sun::star::uno::Reference<
::com::sun::star::chart2::XRegressionCurve > > getAllRegressionCurvesNotMeanValueLine(
const ::com::sun::star::uno::Reference<
diff --git a/chart2/source/tools/RegressionCurveHelper.cxx b/chart2/source/tools/RegressionCurveHelper.cxx
index e7a5d5c..d7c9dc4 100644
--- a/chart2/source/tools/RegressionCurveHelper.cxx
+++ b/chart2/source/tools/RegressionCurveHelper.cxx
@@ -78,6 +78,7 @@ OUString lcl_getServiceNameForType( ::chart::RegressionCurveHelper::tRegressionT
}
return aServiceName;
}
+
} // anonymous namespace
namespace chart
@@ -609,24 +610,30 @@ RegressionCurveHelper::tRegressionType RegressionCurveHelper::getFirstRegressTyp
OUString RegressionCurveHelper::getUINameForRegressionCurve( const Reference< XRegressionCurve >& xRegressionCurve )
{
+ OUString aResult = getRegressionCurveSpecificName(xRegressionCurve);
+ if (aResult.isEmpty())
+ {
+ aResult = getRegressionCurveGenericName(xRegressionCurve);
+ if (!aResult.isEmpty())
+ {
+ aResult += " (%SERIESNAME)";
+ }
+ }
+ return aResult;
+}
+
+OUString RegressionCurveHelper::getRegressionCurveGenericName(const Reference< XRegressionCurve >& xRegressionCurve)
+{
OUString aResult;
+ if(!xRegressionCurve.is())
+ return aResult;
+
Reference< lang::XServiceName > xServiceName( xRegressionCurve, uno::UNO_QUERY );
if(!xServiceName.is())
return aResult;
- Reference<XPropertySet> xProperties( xRegressionCurve, uno::UNO_QUERY );
- if( xProperties.is() )
- {
- OUString aValue = OUString();
- if(xProperties->getPropertyValue("CurveName") >>= aValue)
- {
- if (!aValue.isEmpty())
- return aValue;
- }
- }
+ OUString aServiceName(xServiceName->getServiceName());
- // Did not get the curve name
- OUString aServiceName( xServiceName->getServiceName());
if( aServiceName == "com.sun.star.chart2.MeanValueRegressionCurve" )
{
aResult = SCH_RESSTR(STR_REGRESSION_MEAN);
@@ -655,7 +662,30 @@ OUString RegressionCurveHelper::getUINameForRegressionCurve( const Reference< XR
{
aResult = SCH_RESSTR(STR_REGRESSION_MOVING_AVERAGE);
}
+ return aResult;
+}
+
+OUString RegressionCurveHelper::getRegressionCurveSpecificName(const Reference< XRegressionCurve >& xRegressionCurve)
+{
+ OUString aResult;
+
+ if(!xRegressionCurve.is())
+ return aResult;
+ Reference<XPropertySet> xProperties( xRegressionCurve, uno::UNO_QUERY );
+ if(!xProperties.is())
+ return aResult;
+
+ xProperties->getPropertyValue("CurveName") >>= aResult;
+
+ return aResult;
+}
+
+OUString RegressionCurveHelper::getRegressionCurveName( const Reference< XRegressionCurve >& xRegressionCurve )
+{
+ OUString aResult = getRegressionCurveSpecificName(xRegressionCurve);
+ if (aResult.isEmpty())
+ return getRegressionCurveGenericName(xRegressionCurve);
return aResult;
}
commit ee545ea38e89da0ab12684a1121a38f4a0c7d867
Author: Tomaž Vajngerl <quikee at gmail.com>
Date: Mon Dec 9 21:18:12 2013 +0100
Display correct equation with multiple trendlines in chart.
When there were multiple trendlines for one data series and one
was selected, always the equation and R^2 of the first trendline
was displayed in status bar.
Change-Id: I320261e129c51bbdd1228173ca2f1d8447fdcb89
diff --git a/chart2/source/controller/dialogs/ObjectNameProvider.cxx b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
index 81146d3..648a6c7 100644
--- a/chart2/source/controller/dialogs/ObjectNameProvider.cxx
+++ b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
@@ -552,9 +552,11 @@ OUString ObjectNameProvider::getHelpText( const OUString& rObjectCID, const Refe
aRet = SCH_RESSTR( STR_OBJECT_CURVE_WITH_PARAMETERS );
Reference< chart2::XDataSeries > xSeries( ObjectIdentifier::getDataSeriesForCID( rObjectCID , xChartModel ));
Reference< chart2::XRegressionCurveContainer > xCurveCnt( xSeries, uno::UNO_QUERY );
+
if( xCurveCnt.is())
{
- Reference< chart2::XRegressionCurve > xCurve( RegressionCurveHelper::getFirstCurveNotMeanValueLine( xCurveCnt ));
+ sal_Int32 nCurveIndex = ObjectIdentifier::getIndexFromParticleOrCID( rObjectCID );
+ Reference< chart2::XRegressionCurve > xCurve( RegressionCurveHelper::getRegressionCurveAtIndex(xCurveCnt, nCurveIndex) );
if( xCurve.is())
{
try
diff --git a/chart2/source/inc/RegressionCurveHelper.hxx b/chart2/source/inc/RegressionCurveHelper.hxx
index dd6c8b7..f9637e2 100644
--- a/chart2/source/inc/RegressionCurveHelper.hxx
+++ b/chart2/source/inc/RegressionCurveHelper.hxx
@@ -104,6 +104,13 @@ public:
const com::sun::star::uno::Reference<
com::sun::star::chart2::XRegressionCurveContainer >& xCurveContainer );
+ /** Returns the regression curve found at the index provided.
+ */
+ static com::sun::star::uno::Reference<com::sun::star::chart2::XRegressionCurve >
+ getRegressionCurveAtIndex(
+ const com::sun::star::uno::Reference<com::sun::star::chart2::XRegressionCurveContainer >& xCurveContainer,
+ sal_Int32 aIndex);
+
/** Returns the type of the first regression curve found that is not of type
mean-value line
*/
diff --git a/chart2/source/tools/RegressionCurveHelper.cxx b/chart2/source/tools/RegressionCurveHelper.cxx
index a19affd..e7a5d5c 100644
--- a/chart2/source/tools/RegressionCurveHelper.cxx
+++ b/chart2/source/tools/RegressionCurveHelper.cxx
@@ -509,6 +509,30 @@ uno::Reference< chart2::XRegressionCurve > RegressionCurveHelper::getFirstCurveN
return NULL;
}
+uno::Reference< chart2::XRegressionCurve > RegressionCurveHelper::getRegressionCurveAtIndex(
+ const Reference< XRegressionCurveContainer >& xCurveContainer,
+ sal_Int32 aIndex )
+{
+ if( !xCurveContainer.is())
+ return NULL;
+
+ try
+ {
+ uno::Sequence< uno::Reference< chart2::XRegressionCurve > > aCurves(xCurveContainer->getRegressionCurves());
+ if(0 <= aIndex && aIndex < aCurves.getLength())
+ {
+ if(!isMeanValueLine(aCurves[aIndex]))
+ return aCurves[aIndex];
+ }
+ }
+ catch( const Exception & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
+
+ return NULL;
+}
+
RegressionCurveHelper::tRegressionType RegressionCurveHelper::getRegressionType(
const Reference< XRegressionCurve > & xCurve )
{
More information about the Libreoffice-commits
mailing list