[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