summaryrefslogtreecommitdiffstats
path: root/chart2/source/controller/main/ControllerCommandDispatch.cxx
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2008-02-18 14:58:43 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2008-02-18 14:58:43 +0000
commit1e8f33d3920ffb82043cbb75bb8a9ae333b98707 (patch)
treea016ad143ab99fd6d6400eefaca17bfcb12376ad /chart2/source/controller/main/ControllerCommandDispatch.cxx
parentINTEGRATION: CWS chart19 (1.26.8); FILE MERGED (diff)
downloadcore-1e8f33d3920ffb82043cbb75bb8a9ae333b98707.tar.gz
core-1e8f33d3920ffb82043cbb75bb8a9ae333b98707.zip
INTEGRATION: CWS chart19 (1.3.44); FILE MERGED
2008/01/18 15:08:53 iha 1.3.44.7: RESYNC: (1.4-1.5); FILE MERGED 2008/01/15 12:37:33 bm 1.3.44.6: #i44768# only allow adding trendlines and mean values lines for chart types that support them 2008/01/14 13:46:10 bm 1.3.44.5: #i44768# insert/delete mean value lines via menu commands 2008/01/11 15:58:43 bm 1.3.44.4: #i44768# make it easier to add and modify trendlines 2007/12/20 16:15:27 bm 1.3.44.3: #i84801# split up statistic dialog into error bar dialog and trendline dialog 2007/12/18 13:45:39 bm 1.3.44.2: RESYNC: (1.3-1.4); FILE MERGED 2007/11/20 17:07:18 iha 1.3.44.1: #1163# title for secondary axes
Diffstat (limited to 'chart2/source/controller/main/ControllerCommandDispatch.cxx')
-rw-r--r--chart2/source/controller/main/ControllerCommandDispatch.cxx53
1 files changed, 39 insertions, 14 deletions
diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx b/chart2/source/controller/main/ControllerCommandDispatch.cxx
index 2599b0ca1e75..060ca8f54171 100644
--- a/chart2/source/controller/main/ControllerCommandDispatch.cxx
+++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: ControllerCommandDispatch.cxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: ihi $ $Date: 2008-01-14 13:58:25 $
+ * last change: $Author: rt $ $Date: 2008-02-18 15:58:43 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -48,6 +48,7 @@
#include "DiagramHelper.hxx"
#include "ChartController.hxx"
#include "RegressionCurveHelper.hxx"
+#include "DataSeriesHelper.hxx"
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <com/sun/star/frame/XStorable.hpp>
@@ -137,6 +138,7 @@ struct ControllerState
// trendlines
bool bMayAddTrendline;
bool bMayAddTrendlineEquation;
+ bool bMayAddMeanValue;
};
@@ -149,7 +151,8 @@ ControllerState::ControllerState() :
bMayMoveSeriesForward( false ),
bMayMoveSeriesBackward( false ),
bMayAddTrendline( false ),
- bMayAddTrendlineEquation( false )
+ bMayAddTrendlineEquation( false ),
+ bMayAddMeanValue( false )
{}
void ControllerState::update(
@@ -173,9 +176,10 @@ void ControllerState::update(
ObjectType aObjectType(ObjectIdentifier::getObjectType( aSelObjCID ));
bIsTextObject = OBJECTTYPE_TITLE == aObjectType;
+ uno::Reference< chart2::XDiagram > xDiagram( ChartModelHelper::findDiagram( xModel ));
bIsFormateableObjectSelected = bHasSelectedObject;
if( OBJECTTYPE_DIAGRAM==aObjectType || OBJECTTYPE_DIAGRAM_WALL==aObjectType || OBJECTTYPE_DIAGRAM_FLOOR==aObjectType )
- bIsFormateableObjectSelected = DiagramHelper::isSupportingFloorAndWall( ChartModelHelper::findDiagram( xModel ) );
+ bIsFormateableObjectSelected = DiagramHelper::isSupportingFloorAndWall( xDiagram );
uno::Reference< chart2::XDataSeries > xGivenDataSeries(
ObjectIdentifier::getDataSeriesForCID(
@@ -195,18 +199,27 @@ void ControllerState::update(
bMayAddTrendline = false;
bMayAddTrendlineEquation = false;
+ bMayAddMeanValue = false;
if( bHasSelectedObject )
{
- if( aObjectType == OBJECTTYPE_DATA_SERIES )
+ if( xGivenDataSeries.is())
{
- // @todo: only if trendlines are supported for the current chart
- // type
- uno::Reference< chart2::XRegressionCurveContainer > xRegCurveCnt(
- ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ), uno::UNO_QUERY );
- if( xRegCurveCnt.is())
- bMayAddTrendline = ! RegressionCurveHelper::getFirstCurveNotMeanValueLine( xRegCurveCnt ).is();
+ sal_Int32 nDimensionCount = DiagramHelper::getDimension( xDiagram );
+ if( ChartTypeHelper::isSupportingRegressionProperties(
+ DataSeriesHelper::getChartTypeOfSeries( xGivenDataSeries, xDiagram ),
+ nDimensionCount ))
+ {
+ uno::Reference< chart2::XRegressionCurveContainer > xRegCurveCnt(
+ xGivenDataSeries, uno::UNO_QUERY );
+ if( xRegCurveCnt.is())
+ {
+ bMayAddTrendline = ! RegressionCurveHelper::getFirstCurveNotMeanValueLine( xRegCurveCnt ).is();
+ bMayAddMeanValue = ! RegressionCurveHelper::hasMeanValueLine( xRegCurveCnt );
+ }
+ }
}
- else if( aObjectType == OBJECTTYPE_DATA_CURVE )
+
+ if( aObjectType == OBJECTTYPE_DATA_CURVE )
{
uno::Reference< chart2::XRegressionCurve > xRegCurve(
ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ), uno::UNO_QUERY );
@@ -259,6 +272,8 @@ struct ModelState
bool bHasXAxisTitle;
bool bHasYAxisTitle;
bool bHasZAxisTitle;
+ bool bHasSecondaryXAxisTitle;
+ bool bHasSecondaryYAxisTitle;
bool bHasXAxis;
bool bHasYAxis;
@@ -291,6 +306,8 @@ ModelState::ModelState() :
bHasXAxisTitle( false ),
bHasYAxisTitle( false ),
bHasZAxisTitle( false ),
+ bHasSecondaryXAxisTitle( false ),
+ bHasSecondaryYAxisTitle( false ),
bHasXAxis( false ),
bHasYAxis( false ),
bHasZAxis( false ),
@@ -335,6 +352,8 @@ void ModelState::update( const Reference< frame::XModel > & xModel )
bHasXAxisTitle = TitleHelper::getTitle( TitleHelper::X_AXIS_TITLE, xModel ).is();
bHasYAxisTitle = TitleHelper::getTitle( TitleHelper::Y_AXIS_TITLE, xModel ).is();
bHasZAxisTitle = TitleHelper::getTitle( TitleHelper::Z_AXIS_TITLE, xModel ).is();
+ bHasSecondaryXAxisTitle = TitleHelper::getTitle( TitleHelper::SECONDARY_X_AXIS_TITLE, xModel ).is();
+ bHasSecondaryYAxisTitle = TitleHelper::getTitle( TitleHelper::SECONDARY_Y_AXIS_TITLE, xModel ).is();
bHasXAxis = bSupportsAxes && AxisHelper::getAxis( 0, true, xDiagram ).is();
bHasYAxis = bSupportsAxes && AxisHelper::getAxis( 1, true, xDiagram ).is();
@@ -371,7 +390,7 @@ bool ModelState::HasAnyGrid() const
bool ModelState::HasAnyTitle() const
{
- return bHasMainTitle || bHasSubTitle || bHasXAxisTitle || bHasYAxisTitle || bHasZAxisTitle;
+ return bHasMainTitle || bHasSubTitle || bHasXAxisTitle || bHasYAxisTitle || bHasZAxisTitle || bHasSecondaryXAxisTitle || bHasSecondaryYAxisTitle;
}
} // namespace impl
@@ -466,7 +485,10 @@ void ControllerCommandDispatch::updateCommandAvailability()
m_aCommandAvailability[ C2U(".uno:InsertDescription")] = bIsWritable;
m_aCommandAvailability[ C2U(".uno:InsertAxis")] = bIsWritable && m_apModelState->bSupportsAxes;
m_aCommandAvailability[ C2U(".uno:InsertGrids")] = bIsWritable && m_apModelState->bSupportsAxes;
- m_aCommandAvailability[ C2U(".uno:InsertStatistics")] = bIsWritable && m_apModelState->bSupportsStatistics;
+// m_aCommandAvailability[ C2U(".uno:InsertStatistics")] = bIsWritable && m_apModelState->bSupportsStatistics;
+ m_aCommandAvailability[ C2U(".uno:InsertTrendlines")] = bIsWritable && m_apModelState->bSupportsStatistics;
+ m_aCommandAvailability[ C2U(".uno:InsertMeanValues")] = bIsWritable && m_apModelState->bSupportsStatistics;
+ m_aCommandAvailability[ C2U(".uno:InsertYErrorbars")] = bIsWritable && m_apModelState->bSupportsStatistics;
m_aCommandAvailability[ C2U(".uno:InsertSymbol")] = bIsWritable && m_apControllerState->bIsTextObject;
// format objects
@@ -491,6 +513,8 @@ void ControllerCommandDispatch::updateCommandAvailability()
m_aCommandAvailability[ C2U(".uno:XTitle")] = bIsWritable && bModelStateIsValid && m_apModelState->bHasXAxisTitle;
m_aCommandAvailability[ C2U(".uno:YTitle")] = bIsWritable && bModelStateIsValid && m_apModelState->bHasYAxisTitle;
m_aCommandAvailability[ C2U(".uno:ZTitle")] = bIsWritable && bModelStateIsValid && m_apModelState->bHasZAxisTitle;
+ m_aCommandAvailability[ C2U(".uno:SecondaryXTitle")] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSecondaryXAxisTitle;
+ m_aCommandAvailability[ C2U(".uno:SecondaryYTitle")] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSecondaryYAxisTitle;
m_aCommandAvailability[ C2U(".uno:AllTitles")] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyTitle();
// text
@@ -518,6 +542,7 @@ void ControllerCommandDispatch::updateCommandAvailability()
m_aCommandAvailability[ C2U(".uno:Forward")] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayMoveSeriesForward;
m_aCommandAvailability[ C2U(".uno:Backward")] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayMoveSeriesBackward;
+ m_aCommandAvailability[ C2U(".uno:InsertMeanValue")] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddMeanValue;
m_aCommandAvailability[ C2U(".uno:InsertTrendline")] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddTrendline;
m_aCommandAvailability[ C2U(".uno:InsertTrendlineEquation")] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddTrendlineEquation;
}