chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
| 8
chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
| 7
chart2/source/controller/dialogs/ObjectNameProvider.cxx
| 3
chart2/source/controller/dialogs/dlg_InsertErrorBars.cxx
| 4
chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
| 3
chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
| 9
chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
| 7
chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
| 3
chart2/source/controller/main/ChartController_Insert.cxx
| 3
chart2/source/controller/main/ChartController_Properties.cxx
| 11
chart2/source/controller/main/ChartController_Tools.cxx
| 3
chart2/source/controller/main/ChartController_Window.cxx
| 8
chart2/source/controller/main/ControllerCommandDispatch.cxx
| 1
chart2/source/controller/main/ObjectHierarchy.cxx
| 16
chart2/source/controller/sidebar/ChartAxisPanel.cxx
| 21
chart2/source/inc/Axis.hxx
| 9
chart2/source/inc/AxisHelper.hxx
| 51 +
chart2/source/inc/BaseCoordinateSystem.hxx
| 6
chart2/source/inc/ChartType.hxx
| 4
chart2/source/inc/Diagram.hxx
| 2
chart2/source/inc/DiagramHelper.hxx
| 5
chart2/source/inc/ObjectIdentifier.hxx
| 6
chart2/source/model/main/Axis.cxx
| 2
chart2/source/model/main/BaseCoordinateSystem.cxx
| 48 +
chart2/source/model/main/Diagram.cxx
| 22
chart2/source/model/template/BubbleChartType.cxx
| 3
chart2/source/model/template/ChartType.cxx
| 9
chart2/source/model/template/ChartTypeTemplate.cxx
| 35 -
chart2/source/model/template/NetChartType.cxx
| 5
chart2/source/model/template/PieChartType.cxx
| 3
chart2/source/model/template/PieChartTypeTemplate.cxx
| 5
chart2/source/model/template/ScatterChartType.cxx
| 3
chart2/source/tools/AxisHelper.cxx
| 277 ++++++----
chart2/source/tools/DataSeriesHelper.cxx
| 9
chart2/source/tools/DiagramHelper.cxx
| 33 -
chart2/source/tools/ExplicitCategoriesProvider.cxx
| 9
chart2/source/tools/ObjectIdentifier.cxx
| 37 +
chart2/source/tools/ReferenceSizeProvider.cxx
| 29 -
chart2/source/tools/TitleHelper.cxx
| 18
chart2/source/view/axes/VCartesianCoordinateSystem.cxx
| 5
chart2/source/view/axes/VCoordinateSystem.cxx
| 5
chart2/source/view/axes/VPolarCoordinateSystem.cxx
| 5
chart2/source/view/inc/VCoordinateSystem.hxx
| 4
chart2/source/view/main/ChartView.cxx
| 15
solenv/clang-format/excludelist
| 2
45 files changed, 511 insertions(+), 262 deletions(-)
New commits:
commit 333ccb081b4ab62adce50ca4c93162b9baf984d0
Author: Noel Grandin <[email protected]>
AuthorDate: Sat Feb 5 14:58:07 2022 +0200
Commit: Noel Grandin <[email protected]>
CommitDate: Sat Feb 5 20:39:03 2022 +0100
use more concrete types in chart2, Axis
Change-Id: If80b6487ad2b8ac75f98f798b839aff2b8a5c23e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129522
Tested-by: Jenkins
Reviewed-by: Noel Grandin <[email protected]>
diff --git a/chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
b/chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
index db3e413ba919..21f952069205 100644
--- a/chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
@@ -18,6 +18,7 @@
*/
#include "AxisWrapper.hxx"
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <TitleHelper.hxx>
#include "Chart2ModelContact.hxx"
@@ -574,7 +575,7 @@ awt::Size AxisWrapper::getCurrentSizeForReference()
Reference< chart2::XAxis > AxisWrapper::getAxis()
{
- Reference< chart2::XAxis > xAxis;
+ rtl::Reference< Axis > xAxis;
try
{
sal_Int32 nDimensionIndex = 0;
@@ -586,9 +587,8 @@ Reference< chart2::XAxis > AxisWrapper::getAxis()
if( !xAxis.is() )
{
xAxis = AxisHelper::createAxis( nDimensionIndex, bMainAxis,
xDiagram, m_spChart2ModelContact->m_xContext );
- Reference< beans::XPropertySet > xProp( xAxis, uno::UNO_QUERY );
- if( xProp.is() )
- xProp->setPropertyValue("Show", uno::Any( false ) );
+ if( xAxis.is() )
+ xAxis->setPropertyValue("Show", uno::Any( false ) );
}
}
catch( const uno::Exception & )
diff --git
a/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
b/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
index 4895e1c40b9d..2f7181cfbb0e 100644
---
a/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+++
b/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
@@ -25,6 +25,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/chart2/XAxis.hpp>
#include <com/sun/star/chart2/XDiagram.hpp>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <WrappedProperty.hxx>
#include "Chart2ModelContact.hxx"
@@ -372,11 +373,11 @@ void WrappedAxisLabelExistenceProperty::setPropertyValue(
const Any& rOuterValue
return;
rtl::Reference< ::chart::Diagram > xDiagram(
m_spChart2ModelContact->getDiagram() );
- Reference< beans::XPropertySet > xProp( AxisHelper::getAxis(
m_nDimensionIndex, m_bMain, xDiagram ), uno::UNO_QUERY );
+ rtl::Reference< Axis > xProp = AxisHelper::getAxis( m_nDimensionIndex,
m_bMain, xDiagram );
if( !xProp.is() && bNewValue )
{
//create axis if needed
- xProp.set( AxisHelper::createAxis( m_nDimensionIndex, m_bMain,
xDiagram, m_spChart2ModelContact->m_xContext ), uno::UNO_QUERY );
+ xProp = AxisHelper::createAxis( m_nDimensionIndex, m_bMain, xDiagram,
m_spChart2ModelContact->m_xContext );
if( xProp.is() )
xProp->setPropertyValue( "Show", uno::Any( false ) );
}
@@ -388,7 +389,7 @@ Any WrappedAxisLabelExistenceProperty::getPropertyValue(
const Reference< beans:
{
Any aRet;
rtl::Reference< ::chart::Diagram > xDiagram(
m_spChart2ModelContact->getDiagram() );
- Reference< beans::XPropertySet > xProp( AxisHelper::getAxis(
m_nDimensionIndex, m_bMain, xDiagram ), uno::UNO_QUERY );
+ rtl::Reference< Axis > xProp = AxisHelper::getAxis( m_nDimensionIndex,
m_bMain, xDiagram );
if( xProp.is() )
aRet = xProp->getPropertyValue( "DisplayLabels" );
else
diff --git a/chart2/source/controller/dialogs/ObjectNameProvider.cxx
b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
index cdee6567f544..d9c36482256b 100644
--- a/chart2/source/controller/dialogs/ObjectNameProvider.cxx
+++ b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
@@ -24,6 +24,7 @@
#include <ObjectNameProvider.hxx>
#include <ResId.hxx>
#include <strings.hrc>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <ChartModel.hxx>
#include <ChartModelHelper.hxx>
@@ -425,7 +426,7 @@ OUString ObjectNameProvider::getGridName( const OUString&
rObjectCID
sal_Int32 nCooSysIndex = -1;
sal_Int32 nDimensionIndex = -1;
sal_Int32 nAxisIndex = -1;
- Reference< XAxis > xAxis( ObjectIdentifier::getAxisForCID( rObjectCID ,
xChartModel ) );
+ rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID( rObjectCID
, xChartModel );
AxisHelper::getIndicesForAxis( xAxis, ChartModelHelper::findDiagram(
xChartModel )
, nCooSysIndex , nDimensionIndex, nAxisIndex );
diff --git a/chart2/source/controller/dialogs/dlg_InsertErrorBars.cxx
b/chart2/source/controller/dialogs/dlg_InsertErrorBars.cxx
index 0008d6e7d00f..fcb0eefd3ba9 100644
--- a/chart2/source/controller/dialogs/dlg_InsertErrorBars.cxx
+++ b/chart2/source/controller/dialogs/dlg_InsertErrorBars.cxx
@@ -26,6 +26,7 @@
#include <ObjectIdentifier.hxx>
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <ObjectNameProvider.hxx>
#include <DataSeries.hxx>
@@ -76,10 +77,9 @@ double
InsertErrorBarsDialog::getAxisMinorStepWidthForErrorBarDecimals(
ExplicitValueProvider* pExplicitValueProvider(
comphelper::getFromUnoTunnel<ExplicitValueProvider>(xChartView) );
if( pExplicitValueProvider )
{
- Reference< XAxis > xAxis;
rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram(
xChartModel ) );
rtl::Reference< DataSeries > xSeries =
ObjectIdentifier::getDataSeriesForCID( rSelectedObjectCID, xChartModel );
- xAxis = DiagramHelper::getAttachedAxis( xSeries, xDiagram );
+ rtl::Reference< Axis > xAxis = DiagramHelper::getAttachedAxis(
xSeries, xDiagram );
if(!xAxis.is())
xAxis = AxisHelper::getAxis( 1/*nDimensionIndex*/,
true/*bMainAxis*/, xDiagram );
if(xAxis.is())
diff --git a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
index f16eb8f42807..583c71128514 100644
--- a/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
+++ b/chart2/source/controller/dialogs/dlg_ObjectProperties.cxx
@@ -41,6 +41,7 @@
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
#include <NumberFormatterWrapper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <ExplicitCategoriesProvider.hxx>
#include <ChartModel.hxx>
@@ -157,7 +158,7 @@ void ObjectPropertiesDialogParameter::init( const
rtl::Reference<::chart::ChartM
if( m_bHasScaleProperties )
{
- uno::Reference< XAxis > xAxis( ObjectIdentifier::getAxisForCID(
m_aObjectCID, xChartModel ) );
+ rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID(
m_aObjectCID, xChartModel );
if( xAxis.is() )
{
//no scale page for series axis
diff --git a/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
b/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
index 69cc0ba83f95..40dd0616e5cb 100644
--- a/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
@@ -27,6 +27,7 @@
#include "SchWhichPairs.hxx"
#include <ChartModelHelper.hxx>
#include <ChartModel.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <CommonConverters.hxx>
#include <ChartType.hxx>
@@ -358,7 +359,7 @@ void AxisItemConverter::FillSpecialItem( sal_uInt16
nWhichId, SfxItemSet & rOutI
rtl::Reference< BaseCoordinateSystem > xCooSys(
AxisHelper::getCoordinateSystemOfAxis(
m_xAxis, ChartModelHelper::findDiagram( m_xChartDoc ) ) );
- Reference< chart2::XAxis > xCrossingMainAxis(
AxisHelper::getCrossingMainAxis( m_xAxis, xCooSys ) );
+ rtl::Reference< Axis > xCrossingMainAxis =
AxisHelper::getCrossingMainAxis( m_xAxis, xCooSys );
sal_Int32 nFormatKey =
ExplicitValueProvider::getExplicitNumberFormatKeyForAxis(
xCrossingMainAxis, xCooSys, m_xChartDoc);
@@ -723,7 +724,7 @@ bool AxisItemConverter::ApplySpecialItem( sal_uInt16
nWhichId, const SfxItemSet
sal_Int32 nAxisIndex=0;
if( AxisHelper::getIndicesForAxis( m_xAxis, xCooSys,
nDimensionIndex, nAxisIndex ) && nAxisIndex==0 )
{
- Reference< beans::XPropertySet >
xCrossingMainAxis( AxisHelper::getCrossingMainAxis( m_xAxis, xCooSys ),
uno::UNO_QUERY );
+ rtl::Reference< Axis > xCrossingMainAxis =
AxisHelper::getCrossingMainAxis( m_xAxis, xCooSys );
if( xCrossingMainAxis.is() )
{
double fValue = 0.0;
@@ -758,7 +759,7 @@ bool AxisItemConverter::ApplySpecialItem( sal_uInt16
nWhichId, const SfxItemSet
//move the parallel axes to the other side if necessary
if( eAxisPos==css::chart::ChartAxisPosition_START ||
eAxisPos==css::chart::ChartAxisPosition_END )
{
- Reference< beans::XPropertySet > xParallelAxis(
AxisHelper::getParallelAxis( m_xAxis, ChartModelHelper::findDiagram(
m_xChartDoc ) ), uno::UNO_QUERY );
+ rtl::Reference< Axis > xParallelAxis =
AxisHelper::getParallelAxis( m_xAxis, ChartModelHelper::findDiagram(
m_xChartDoc ) );
if( xParallelAxis.is() )
{
css::chart::ChartAxisPosition eOtherPos;
@@ -841,7 +842,7 @@ bool AxisItemConverter::ApplySpecialItem( sal_uInt16
nWhichId, const SfxItemSet
//move the parallel axes to the other side if necessary
if( ePos==css::chart::ChartAxisLabelPosition_OUTSIDE_START ||
ePos==css::chart::ChartAxisLabelPosition_OUTSIDE_END )
{
- Reference< beans::XPropertySet > xParallelAxis(
AxisHelper::getParallelAxis( m_xAxis, ChartModelHelper::findDiagram(
m_xChartDoc ) ), uno::UNO_QUERY );
+ rtl::Reference< Axis > xParallelAxis =
AxisHelper::getParallelAxis( m_xAxis, ChartModelHelper::findDiagram(
m_xChartDoc ) );
if( xParallelAxis.is() )
{
css::chart::ChartAxisLabelPosition eOtherPos;
diff --git
a/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
b/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
index b44d13f9fa97..a26cce3ee4e5 100644
--- a/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
+++ b/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
@@ -30,6 +30,7 @@
#include <DataSeries.hxx>
#include <TitleHelper.hxx>
#include <TitleItemConverter.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <chartview/ExplicitValueProvider.hxx>
#include <com/sun/star/chart2/XChartDocument.hpp>
@@ -53,10 +54,10 @@ AllAxisItemConverter::AllAxisItemConverter(
: MultipleItemConverter( rItemPool )
{
rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram(
xChartModel ) );
- const Sequence< Reference< XAxis > > aElementList(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
- for( Reference< XAxis > const & axis : aElementList )
+ const std::vector< rtl::Reference< Axis > > aElementList =
AxisHelper::getAllAxesOfDiagram( xDiagram );
+ for( rtl::Reference< Axis > const & axis : aElementList )
{
- uno::Reference< beans::XPropertySet > xObjectProperties(axis,
uno::UNO_QUERY);
+ uno::Reference< beans::XPropertySet > xObjectProperties(axis);
m_aConverters.emplace_back( new ::chart::wrapper::AxisItemConverter(
xObjectProperties, rItemPool, rDrawModel,
xChartModel, nullptr, nullptr,
diff --git
a/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
b/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
index 1615c72d5549..aff808e82a15 100644
--- a/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
@@ -22,6 +22,7 @@
#include <ChartModelHelper.hxx>
#include <ChartType.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
@@ -80,7 +81,7 @@ SeriesOptionsItemConverter::SeriesOptionsItemConverter(
m_xCooSys = DataSeriesHelper::getCoordinateSystemOfSeries(
xDataSeries, xDiagram );
if( m_xCooSys.is() )
{
- uno::Reference< chart2::XAxis > xAxis( AxisHelper::getAxis( 1, 0,
m_xCooSys ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( 1, 0,
m_xCooSys );
chart2::ScaleData aScale( xAxis->getScaleData() );
m_bClockwise = (aScale.Orientation ==
chart2::AxisOrientation_REVERSE);
}
diff --git a/chart2/source/controller/main/ChartController_Insert.cxx
b/chart2/source/controller/main/ChartController_Insert.cxx
index 00defbc33582..ae33e372b29c 100644
--- a/chart2/source/controller/main/ChartController_Insert.cxx
+++ b/chart2/source/controller/main/ChartController_Insert.cxx
@@ -29,6 +29,7 @@
#include <ChartModel.hxx>
#include <ChartModelHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <TitleHelper.hxx>
#include <DataSeries.hxx>
@@ -707,7 +708,7 @@ void ChartController::executeDispatch_InsertAxisTitle()
ActionDescriptionProvider::ActionType::Insert, SchResId(
STR_OBJECT_TITLE )),
m_xUndoManager );
- Reference< XAxis > xAxis = ObjectIdentifier::getAxisForCID(
m_aSelection.getSelectedCID(), getChartModel() );
+ rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID(
m_aSelection.getSelectedCID(), getChartModel() );
sal_Int32 nDimensionIndex = -1;
sal_Int32 nCooSysIndex = -1;
sal_Int32 nAxisIndex = -1;
diff --git a/chart2/source/controller/main/ChartController_Properties.cxx
b/chart2/source/controller/main/ChartController_Properties.cxx
index b094833f317a..58bac63b0484 100644
--- a/chart2/source/controller/main/ChartController_Properties.cxx
+++ b/chart2/source/controller/main/ChartController_Properties.cxx
@@ -38,6 +38,7 @@
#include <RegressionEquationItemConverter.hxx>
#include <ErrorBarItemConverter.hxx>
#include <ChartModelHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <TitleHelper.hxx>
#include <ChartType.hxx>
@@ -378,7 +379,7 @@ OUString lcl_getAxisCIDForCommand( std::string_view
rDispatchCommand, const rtl:
}
rtl::Reference< Diagram > xDiagram = ChartModelHelper::findDiagram(
xChartModel );
- uno::Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex,
bMainAxis, xDiagram ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( nDimensionIndex,
bMainAxis, xDiagram );
return ObjectIdentifier::createClassifiedIdentifierForObject( xAxis,
xChartModel );
}
@@ -419,7 +420,7 @@ OUString lcl_getGridCIDForCommand( std::string_view
rDispatchCommand, const rtl:
nDimensionIndex=2; bMainGrid=false;
}
- uno::Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex,
true/*bMainAxis*/, xDiagram ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( nDimensionIndex,
true/*bMainAxis*/, xDiagram );
sal_Int32 nSubGridIndex= bMainGrid ? -1 : 0;
OUString aCID( ObjectIdentifier::createClassifiedIdentifierForGrid( xAxis,
xChartModel, nSubGridIndex ) );
@@ -592,7 +593,7 @@ OUString lcl_getObjectCIDForCommand( std::string_view
rDispatchCommand, const rt
return rSelectedCID;
else
{
- Reference< XAxis > xAxis = ObjectIdentifier::getAxisForCID(
rSelectedCID, xChartDocument );
+ rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID(
rSelectedCID, xChartDocument );
return ObjectIdentifier::createClassifiedIdentifierForObject(
xAxis , xChartDocument );
}
}
@@ -603,7 +604,7 @@ OUString lcl_getObjectCIDForCommand( std::string_view
rDispatchCommand, const rt
return rSelectedCID;
else
{
- Reference< XAxis > xAxis = ObjectIdentifier::getAxisForCID(
rSelectedCID, xChartDocument );
+ rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID(
rSelectedCID, xChartDocument );
return ObjectIdentifier::createClassifiedIdentifierForGrid( xAxis,
xChartDocument );
}
@@ -615,7 +616,7 @@ OUString lcl_getObjectCIDForCommand( std::string_view
rDispatchCommand, const rt
return rSelectedCID;
else
{
- Reference< XAxis > xAxis = ObjectIdentifier::getAxisForCID(
rSelectedCID, xChartDocument );
+ rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID(
rSelectedCID, xChartDocument );
return ObjectIdentifier::createClassifiedIdentifierForGrid( xAxis,
xChartDocument, 0 /*sub grid index*/ );
}
}
diff --git a/chart2/source/controller/main/ChartController_Tools.cxx
b/chart2/source/controller/main/ChartController_Tools.cxx
index dd04d61f0360..9c8e2f02cbec 100644
--- a/chart2/source/controller/main/ChartController_Tools.cxx
+++ b/chart2/source/controller/main/ChartController_Tools.cxx
@@ -37,6 +37,7 @@
#include <DrawViewWrapper.hxx>
#include <Legend.hxx>
#include <LegendHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <RegressionCurveModel.hxx>
#include <RegressionCurveHelper.hxx>
@@ -114,7 +115,7 @@ bool lcl_deleteDataSeries(
xUndoManager );
rtl::Reference< Diagram > xDiagram =
ChartModelHelper::findDiagram( xModel );
- uno::Reference< chart2::XAxis > xAxis(
DiagramHelper::getAttachedAxis( xSeries, xDiagram ) );
+ rtl::Reference< Axis > xAxis = DiagramHelper::getAttachedAxis(
xSeries, xDiagram );
DataSeriesHelper::deleteSeries( xSeries, xChartType );
diff --git a/chart2/source/controller/main/ChartController_Window.cxx
b/chart2/source/controller/main/ChartController_Window.cxx
index 2e9e599e47e7..5eb195b90643 100644
--- a/chart2/source/controller/main/ChartController_Window.cxx
+++ b/chart2/source/controller/main/ChartController_Window.cxx
@@ -47,6 +47,7 @@
#include <StatisticsHelper.hxx>
#include <DataSeries.hxx>
#include <DataSeriesHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <LegendHelper.hxx>
#include <servicenames_charttypes.hxx>
@@ -1195,7 +1196,7 @@ void ChartController::execute_Command( const
CommandEvent& rCEvt )
else if( eObjectType == OBJECTTYPE_AXIS || eObjectType ==
OBJECTTYPE_GRID || eObjectType == OBJECTTYPE_SUBGRID )
{
- Reference< XAxis > xAxis =
ObjectIdentifier::getAxisForCID( m_aSelection.getSelectedCID(), getChartModel()
);
+ rtl::Reference< Axis > xAxis =
ObjectIdentifier::getAxisForCID( m_aSelection.getSelectedCID(), getChartModel()
);
if( xAxis.is() && xDiagram.is() )
{
sal_Int32 nDimensionIndex = -1;
@@ -1206,10 +1207,7 @@ void ChartController::execute_Command( const
CommandEvent& rCEvt )
bool bIsAxisVisible = AxisHelper::isAxisVisible( xAxis
);
bool bIsMajorGridVisible = AxisHelper::isGridShown(
nDimensionIndex, nCooSysIndex, true /*bMainGrid*/, xDiagram );
bool bIsMinorGridVisible = AxisHelper::isGridShown(
nDimensionIndex, nCooSysIndex, false /*bMainGrid*/, xDiagram );
- bool bHasTitle = false;
- uno::Reference< XTitled > xTitled( xAxis,
uno::UNO_QUERY );
- if( xTitled.is())
- bHasTitle = !TitleHelper::getCompleteString(
xTitled->getTitleObject() ).isEmpty();
+ bool bHasTitle = !TitleHelper::getCompleteString(
xAxis->getTitleObject() ).isEmpty();
if( eObjectType != OBJECTTYPE_AXIS && bIsAxisVisible )
lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatAxis" );
diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx
b/chart2/source/controller/main/ControllerCommandDispatch.cxx
index a7d0ff5fc4f2..4e326eb313c7 100644
--- a/chart2/source/controller/main/ControllerCommandDispatch.cxx
+++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx
@@ -22,6 +22,7 @@
#include <ChartModel.hxx>
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <TitleHelper.hxx>
#include <LegendHelper.hxx>
diff --git a/chart2/source/controller/main/ObjectHierarchy.cxx
b/chart2/source/controller/main/ObjectHierarchy.cxx
index 58f17fb7f279..0472cf23e9a6 100644
--- a/chart2/source/controller/main/ObjectHierarchy.cxx
+++ b/chart2/source/controller/main/ObjectHierarchy.cxx
@@ -23,6 +23,7 @@
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
#include <RegressionCurveHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <chartview/ExplicitValueProvider.hxx>
#include <ChartType.hxx>
@@ -94,12 +95,11 @@ void lcl_getChildOIDs(
}
}
-void lcl_addAxisTitle( const Reference< XAxis >& xAxis,
::chart::ObjectHierarchy::tChildContainer& rContainer, const
rtl::Reference<::chart::ChartModel>& xChartModel )
+void lcl_addAxisTitle( const rtl::Reference< ::chart::Axis >& xAxis,
::chart::ObjectHierarchy::tChildContainer& rContainer, const
rtl::Reference<::chart::ChartModel>& xChartModel )
{
- Reference< XTitled > xAxisTitled( xAxis, uno::UNO_QUERY );
- if( xAxisTitled.is())
+ if( xAxis.is())
{
- Reference< XTitle > xAxisTitle( xAxisTitled->getTitleObject());
+ Reference< XTitle > xAxisTitle( xAxis->getTitleObject());
if( xAxisTitle.is())
rContainer.emplace_back(
::chart::ObjectIdentifier::createClassifiedIdentifierForObject( xAxisTitle,
xChartModel ) );
}
@@ -153,8 +153,8 @@ void ObjectHierarchy::createTree( const
rtl::Reference<::chart::ChartModel>& xCh
if( !m_bOrderingForElementSelector )
{
// Axis Titles. Note: These are interpreted of being top level
- const Sequence< Reference< XAxis > > aAxes(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
- for( Reference< XAxis > const & axis : aAxes )
+ const std::vector< rtl::Reference< Axis > > aAxes =
AxisHelper::getAllAxesOfDiagram( xDiagram );
+ for( rtl::Reference< Axis > const & axis : aAxes )
lcl_addAxisTitle( axis, aTopLevelContainer, xChartDocument );
// Diagram
@@ -223,7 +223,7 @@ void ObjectHierarchy::createAxesTree(
if( !bSupportsAxesGrids )
return;
- Sequence< Reference< XAxis > > aAxes( AxisHelper::getAllAxesOfDiagram(
xDiagram, /* bOnlyVisible = */ true ) );
+ std::vector< rtl::Reference< Axis > > aAxes =
AxisHelper::getAllAxesOfDiagram( xDiagram, /* bOnlyVisible = */ true );
if( !m_bOrderingForElementSelector )
{
for (const auto & rAxis : std::as_const(aAxes))
@@ -233,7 +233,7 @@ void ObjectHierarchy::createAxesTree(
// get all axes, also invisible ones
aAxes = AxisHelper::getAllAxesOfDiagram( xDiagram );
// Grids
- for( Reference< XAxis > const & xAxis : std::as_const(aAxes) )
+ for( rtl::Reference< Axis > const & xAxis : aAxes )
{
if(!xAxis.is())
continue;
diff --git a/chart2/source/controller/sidebar/ChartAxisPanel.cxx
b/chart2/source/controller/sidebar/ChartAxisPanel.cxx
index 2b6bc5535b27..b222691b74cf 100644
--- a/chart2/source/controller/sidebar/ChartAxisPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartAxisPanel.cxx
@@ -29,6 +29,7 @@
#include "ChartAxisPanel.hxx"
#include <ChartController.hxx>
#include <ChartModel.hxx>
+#include <Axis.hxx>
using namespace css;
using namespace css::uno;
@@ -40,8 +41,7 @@ namespace {
bool isLabelShown(const rtl::Reference<::chart::ChartModel>& xModel,
const OUString& rCID)
{
- css::uno::Reference< css::beans::XPropertySet > xAxis(
- ObjectIdentifier::getAxisForCID(rCID, xModel), uno::UNO_QUERY );
+ rtl::Reference< ::chart::Axis > xAxis =
ObjectIdentifier::getAxisForCID(rCID, xModel);
if (!xAxis.is())
return false;
@@ -58,8 +58,7 @@ bool isLabelShown(const rtl::Reference<::chart::ChartModel>&
xModel,
void setLabelShown(const rtl::Reference<::chart::ChartModel>& xModel,
const OUString& rCID, bool bVisible)
{
- css::uno::Reference< css::beans::XPropertySet > xAxis(
- ObjectIdentifier::getAxisForCID(rCID, xModel), uno::UNO_QUERY );
+ rtl::Reference< ::chart::Axis > xAxis =
ObjectIdentifier::getAxisForCID(rCID, xModel);
if (!xAxis.is())
return;
@@ -83,8 +82,7 @@ AxisLabelPosMap const aLabelPosMap[] = {
sal_Int32 getLabelPosition(const rtl::Reference<::chart::ChartModel>& xModel,
const OUString& rCID)
{
- css::uno::Reference< css::beans::XPropertySet > xAxis(
- ObjectIdentifier::getAxisForCID(rCID, xModel), uno::UNO_QUERY );
+ rtl::Reference< ::chart::Axis > xAxis =
ObjectIdentifier::getAxisForCID(rCID, xModel);
if (!xAxis.is())
return 0;
@@ -107,8 +105,7 @@ sal_Int32 getLabelPosition(const
rtl::Reference<::chart::ChartModel>& xModel,
void setLabelPosition(const rtl::Reference<::chart::ChartModel>& xModel,
const OUString& rCID, sal_Int32 nPos)
{
- css::uno::Reference< css::beans::XPropertySet > xAxis(
- ObjectIdentifier::getAxisForCID(rCID, xModel), uno::UNO_QUERY );
+ rtl::Reference< ::chart::Axis > xAxis =
ObjectIdentifier::getAxisForCID(rCID, xModel);
if (!xAxis.is())
return;
@@ -178,8 +175,8 @@ OUString getCID(const
css::uno::Reference<css::frame::XModel>& xModel)
void setAxisRotation(const rtl::Reference<::chart::ChartModel>& xModel,
const OUString& rCID, double nVal)
{
- css::uno::Reference< css::beans::XPropertySet > xAxis(
- ObjectIdentifier::getAxisForCID(rCID, xModel), uno::UNO_QUERY );
+ rtl::Reference< ::chart::Axis > xAxis =
+ ObjectIdentifier::getAxisForCID(rCID, xModel);
if (!xAxis.is())
return;
@@ -190,8 +187,8 @@ void setAxisRotation(const
rtl::Reference<::chart::ChartModel>& xModel,
double getAxisRotation(const rtl::Reference<::chart::ChartModel>& xModel,
const OUString& rCID)
{
- css::uno::Reference< css::beans::XPropertySet > xAxis(
- ObjectIdentifier::getAxisForCID(rCID, xModel), uno::UNO_QUERY );
+ rtl::Reference< ::chart::Axis > xAxis =
+ ObjectIdentifier::getAxisForCID(rCID, xModel);
if (!xAxis.is())
return 0;
diff --git a/chart2/source/model/main/Axis.hxx b/chart2/source/inc/Axis.hxx
similarity index 96%
rename from chart2/source/model/main/Axis.hxx
rename to chart2/source/inc/Axis.hxx
index b85930a23456..7b5ce75fa6fa 100644
--- a/chart2/source/model/main/Axis.hxx
+++ b/chart2/source/inc/Axis.hxx
@@ -18,7 +18,7 @@
*/
#pragma once
-#include <OPropertySet.hxx>
+#include "OPropertySet.hxx"
#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/implbase.hxx>
#include <comphelper/uno3.hxx>
@@ -27,7 +27,8 @@
#include <com/sun/star/chart2/XAxis.hpp>
#include <com/sun/star/chart2/XTitled.hpp>
#include <com/sun/star/util/XCloneable.hpp>
-#include <ModifyListenerHelper.hxx>
+#include "ModifyListenerHelper.hxx"
+#include "charttoolsdllapi.hxx"
namespace chart
{
@@ -44,7 +45,7 @@ typedef ::cppu::WeakImplHelper<
Axis_Base;
}
-class Axis final :
+class OOO_DLLPUBLIC_CHARTTOOLS Axis final :
public cppu::BaseMutex,
public impl::Axis_Base,
public ::property::OPropertySet
@@ -75,6 +76,7 @@ private:
// ____ OPropertySet ____
virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper() override;
+public:
// ____ XPropertySet ____
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL
getPropertySetInfo() override;
@@ -101,6 +103,7 @@ private:
virtual void SAL_CALL removeModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
+private:
// ____ XModifyListener ____
virtual void SAL_CALL modified(
const css::lang::EventObject& aEvent ) override;
diff --git a/chart2/source/inc/AxisHelper.hxx b/chart2/source/inc/AxisHelper.hxx
index 4e2480a65eee..2cb10b832254 100644
--- a/chart2/source/inc/AxisHelper.hxx
+++ b/chart2/source/inc/AxisHelper.hxx
@@ -38,6 +38,7 @@ namespace com::sun::star::uno { class XComponentContext; }
namespace chart
{
+class Axis;
class BaseCoordinateSystem;
class ChartType;
class Diagram;
@@ -56,21 +57,26 @@ public:
static void checkDateAxis( css::chart2::ScaleData& rScale,
ExplicitCategoriesProvider* pExplicitCategoriesProvider, bool
bChartTypeAllowsDateAxis );
static css::chart2::ScaleData getDateCheckedScale( const
css::uno::Reference< css::chart2::XAxis >& xAxis, ChartModel& rModel );
+ static css::chart2::ScaleData getDateCheckedScale( const rtl::Reference<
::chart::Axis >& xAxis, ChartModel& rModel );
static sal_Int32 getExplicitNumberFormatKeyForAxis(
const css::uno::Reference< css::chart2::XAxis >& xAxis
, const rtl::Reference< ::chart::BaseCoordinateSystem >&
xCorrespondingCoordinateSystem
, const rtl::Reference< ::chart::ChartModel>& xChartDoc
, bool bSearchForParallelAxisIfNothingIsFound );
+ static sal_Int32 getExplicitNumberFormatKeyForAxis(
+ const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::BaseCoordinateSystem >&
xCorrespondingCoordinateSystem
+ , const rtl::Reference< ::chart::ChartModel>& xChartDoc
+ , bool bSearchForParallelAxisIfNothingIsFound );
- static css::uno::Reference<
- css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
createAxis( sal_Int32 nDimensionIndex, bool bMainAxis
, const rtl::Reference< ::chart::Diagram >& xDiagram
, const css::uno::Reference< css::uno::XComponentContext >&
xContext
, ReferenceSizeProvider * pRefSizeProvider = nullptr );
- static css::uno::Reference< css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
createAxis(
sal_Int32 nDimensionIndex
, sal_Int32 nAxisIndex // 0==main or 1==secondary axis
@@ -97,13 +103,17 @@ public:
, const rtl::Reference< ::chart::Diagram >& xDiagram );
static void makeAxisVisible( const css::uno::Reference< css::chart2::XAxis
>& xAxis );
+ static void makeAxisVisible( const rtl::Reference< ::chart::Axis >& xAxis
);
static void makeGridVisible( const css::uno::Reference<
css::beans::XPropertySet >& xGridProperties );
static void makeAxisInvisible( const css::uno::Reference<
css::chart2::XAxis >& xAxis );
+ static void makeAxisInvisible( const rtl::Reference< ::chart::Axis >&
xAxis );
static void makeGridInvisible( const css::uno::Reference<
css::beans::XPropertySet >& xGridProperties );
static void hideAxisIfNoDataIsAttached( const css::uno::Reference<
css::chart2::XAxis >& xAxis
, const rtl::Reference<
::chart::Diagram >& xDiagram);
+ static void hideAxisIfNoDataIsAttached( const rtl::Reference<
::chart::Axis >& xAxis
+ , const rtl::Reference<
::chart::Diagram >& xDiagram);
SAL_DLLPRIVATE static bool areAxisLabelsVisible( const
css::uno::Reference< css::beans::XPropertySet >& xAxisProperties );
static bool isAxisVisible( const css::uno::Reference< css::chart2::XAxis
>& xAxis );
@@ -118,21 +128,31 @@ public:
getCoordinateSystemOfAxis(
const css::uno::Reference< css::chart2::XAxis >& xAxis
, const rtl::Reference< ::chart::Diagram >& xDiagram );
+ static rtl::Reference< ::chart::BaseCoordinateSystem >
+ getCoordinateSystemOfAxis(
+ const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::Diagram >& xDiagram );
- static css::uno::Reference< css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
getAxis( sal_Int32 nDimensionIndex, bool bMainAxis
, const rtl::Reference< ::chart::Diagram >& xDiagram );
- static css::uno::Reference< css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
getAxis( sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex
, const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys );
- static css::uno::Reference< css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
getCrossingMainAxis( const css::uno::Reference< css::chart2::XAxis >&
xAxis
, const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys );
+ static rtl::Reference< ::chart::Axis >
+ getCrossingMainAxis( const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys );
- static css::uno::Reference< css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
getParallelAxis( const css::uno::Reference< css::chart2::XAxis >& xAxis
, const rtl::Reference< ::chart::Diagram >& xDiagram );
+ static rtl::Reference< ::chart::Axis >
+ getParallelAxis( const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::Diagram >& xDiagram );
static css::uno::Reference< css::beans::XPropertySet >
getGridProperties( const rtl::Reference< ::chart::BaseCoordinateSystem
>& xCooSys
@@ -144,28 +164,39 @@ public:
static sal_Int32 getDimensionIndexOfAxis(
const css::uno::Reference< css::chart2::XAxis >& xAxis
, const rtl::Reference< ::chart::Diagram >& xDiagram );
+ static sal_Int32 getDimensionIndexOfAxis(
+ const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::Diagram >& xDiagram );
static bool getIndicesForAxis(
const css::uno::Reference< css::chart2::XAxis >& xAxis
, const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys
, sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex );
+ static bool getIndicesForAxis(
+ const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys
+ , sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex );
static bool getIndicesForAxis(
const css::uno::Reference< css::chart2::XAxis >& xAxis
, const rtl::Reference< ::chart::Diagram >& xDiagram
, sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex,
sal_Int32& rOutAxisIndex );
+ static bool getIndicesForAxis(
+ const rtl::Reference< ::chart::Axis >& xAxis
+ , const rtl::Reference< ::chart::Diagram >& xDiagram
+ , sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex,
sal_Int32& rOutAxisIndex );
/** @param bOnlyVisible if </TRUE>, only axes with property "Show" set to
</sal_True> are returned
*/
- static css::uno::Sequence< css::uno::Reference< css::chart2::XAxis > >
+ static std::vector< rtl::Reference< ::chart::Axis > >
getAllAxesOfDiagram( const rtl::Reference< ::chart::Diagram >&
xDiagram
, bool bOnlyVisible = false );
/** @param bOnlyVisible if </TRUE>, only axes with property "Show" set to
</sal_True> are returned
*/
- SAL_DLLPRIVATE static std::vector< css::uno::Reference< css::chart2::XAxis
> >
+ SAL_DLLPRIVATE static std::vector< rtl::Reference< ::chart::Axis > >
getAllAxesOfCoordinateSystem( const rtl::Reference<
::chart::BaseCoordinateSystem >& xCooSys
, bool bOnlyVisible = false );
@@ -190,6 +221,8 @@ public:
static bool shouldAxisBeDisplayed( const css::uno::Reference<
css::chart2::XAxis >& xAxis
, const rtl::Reference<
::chart::BaseCoordinateSystem >& xCooSys );
+ static bool shouldAxisBeDisplayed( const rtl::Reference< ::chart::Axis >&
xAxis
+ , const rtl::Reference<
::chart::BaseCoordinateSystem >& xCooSys );
static bool isSecondaryYAxisNeeded( const rtl::Reference<
::chart::BaseCoordinateSystem >& xCooSys );
diff --git a/chart2/source/inc/BaseCoordinateSystem.hxx
b/chart2/source/inc/BaseCoordinateSystem.hxx
index 2241c8490b83..afb02c07f1f4 100644
--- a/chart2/source/inc/BaseCoordinateSystem.hxx
+++ b/chart2/source/inc/BaseCoordinateSystem.hxx
@@ -33,6 +33,7 @@
namespace chart
{
+class Axis;
class ChartType;
namespace impl
@@ -96,6 +97,9 @@ public:
virtual void SAL_CALL removeModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
+ void setAxisByDimension( sal_Int32 nDimension, const rtl::Reference<
::chart::Axis >& xAxis, sal_Int32 nIndex );
+ rtl::Reference< ::chart::Axis > getAxisByDimension2(sal_Int32 nDimension,
sal_Int32 nIndex ) const;
+
void setChartTypes( const std::vector< rtl::Reference< ::chart::ChartType
> >& aChartTypes );
const std::vector< rtl::Reference<::chart::ChartType > > &
getChartTypes2() const { return m_aChartTypes; }
@@ -120,7 +124,7 @@ protected:
private:
sal_Int32 m_nDimensionCount;
- typedef std::vector< std::vector< css::uno::Reference< css::chart2::XAxis
> > > tAxisVecVecType;
+ typedef std::vector< std::vector< rtl::Reference< ::chart::Axis > > >
tAxisVecVecType;
tAxisVecVecType m_aAllAxis; //outer sequence is the dimension; inner
sequence is the axis index that indicates main or secondary axis
std::vector< rtl::Reference<::chart::ChartType > > m_aChartTypes;
};
diff --git a/chart2/source/inc/ChartType.hxx b/chart2/source/inc/ChartType.hxx
index 4c95fac5a704..a84d79893d5a 100644
--- a/chart2/source/inc/ChartType.hxx
+++ b/chart2/source/inc/ChartType.hxx
@@ -35,6 +35,7 @@
namespace chart
{
+class BaseCoordinateSystem;
class DataSeries;
class ModifyEventForwarder;
@@ -102,6 +103,9 @@ public:
const std::vector< rtl::Reference< ::chart::DataSeries > >&
aDataSeries );
const std::vector< rtl::Reference< ::chart::DataSeries > > &
getDataSeries2() const { return m_aDataSeries; }
+ static rtl::Reference< ::chart::BaseCoordinateSystem >
+ createCoordinateSystem2( ::sal_Int32 DimensionCount );
+
protected:
// ____ XModifyListener ____
diff --git a/chart2/source/inc/Diagram.hxx b/chart2/source/inc/Diagram.hxx
index 16beacd59894..07712e93dc65 100644
--- a/chart2/source/inc/Diagram.hxx
+++ b/chart2/source/inc/Diagram.hxx
@@ -144,6 +144,8 @@ public:
tCoordinateSystemContainerType;
const tCoordinateSystemContainerType & getBaseCoordinateSystems() { return
m_aCoordSystems; }
+ void setCoordinateSystems(
+ const std::vector< rtl::Reference< ::chart::BaseCoordinateSystem > >&
aCoordinateSystems );
const rtl::Reference< ::chart::Legend > & getLegend2() const { return
m_xLegend; }
void setLegend(const rtl::Reference< ::chart::Legend > &);
diff --git a/chart2/source/inc/DiagramHelper.hxx
b/chart2/source/inc/DiagramHelper.hxx
index 3a83644696e4..d5f81f30d552 100644
--- a/chart2/source/inc/DiagramHelper.hxx
+++ b/chart2/source/inc/DiagramHelper.hxx
@@ -42,6 +42,7 @@ namespace com::sun::star::util { class
XNumberFormatsSupplier; }
namespace chart
{
+class Axis;
class BaseCoordinateSystem;
class ChartType;
class ChartTypeManager;
@@ -159,11 +160,11 @@ public:
const css::uno::Reference< css::uno::XComponentContext > & xContext,
bool bAdaptAxes=true );
- static css::uno::Reference< css::chart2::XAxis > getAttachedAxis(
+ static rtl::Reference< ::chart::Axis > getAttachedAxis(
const css::uno::Reference< css::chart2::XDataSeries >& xSeries,
const rtl::Reference< ::chart::Diagram >& xDiagram );
- static css::uno::Reference< css::chart2::XAxis > getAttachedAxis(
+ static rtl::Reference< ::chart::Axis > getAttachedAxis(
const rtl::Reference< ::chart::DataSeries >& xSeries,
const rtl::Reference< ::chart::Diagram >& xDiagram );
diff --git a/chart2/source/inc/ObjectIdentifier.hxx
b/chart2/source/inc/ObjectIdentifier.hxx
index 5e52fbfa1ac5..f4ce48011419 100644
--- a/chart2/source/inc/ObjectIdentifier.hxx
+++ b/chart2/source/inc/ObjectIdentifier.hxx
@@ -42,6 +42,7 @@ namespace com::sun::star::uno { class XInterface; }
namespace chart
{
+class Axis;
class BaseCoordinateSystem;
class DataSeries;
class Diagram;
@@ -112,6 +113,9 @@ public:
static OUString createClassifiedIdentifierForObject(
const rtl::Reference< ::chart::Legend >& xObject
, const rtl::Reference<::chart::ChartModel>& xChartModel );
+ static OUString createClassifiedIdentifierForObject(
+ const rtl::Reference< ::chart::Axis >& xObject
+ , const rtl::Reference<::chart::ChartModel>& xChartModel );
static OUString createClassifiedIdentifierForParticle(
const OUString& rParticle );
@@ -198,7 +202,7 @@ public:
, const rtl::Reference< ::chart::ChartModel >& xChartDocument
);
//return the axis object that belongs to rObjectCID if any
- static css::uno::Reference< css::chart2::XAxis >
+ static rtl::Reference< ::chart::Axis >
getAxisForCID(
const OUString& rObjectCID
, const rtl::Reference<::chart::ChartModel>& xChartModel );
diff --git a/chart2/source/model/main/Axis.cxx
b/chart2/source/model/main/Axis.cxx
index 9bae79cf8adc..9507f3719088 100644
--- a/chart2/source/model/main/Axis.cxx
+++ b/chart2/source/model/main/Axis.cxx
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include "Axis.hxx"
+#include <Axis.hxx>
#include "GridProperties.hxx"
#include <CharacterProperties.hxx>
#include <LinePropertiesHelper.hxx>
diff --git a/chart2/source/model/main/BaseCoordinateSystem.cxx
b/chart2/source/model/main/BaseCoordinateSystem.cxx
index bc02bf753561..52ef7ffde0d7 100644
--- a/chart2/source/model/main/BaseCoordinateSystem.cxx
+++ b/chart2/source/model/main/BaseCoordinateSystem.cxx
@@ -22,7 +22,7 @@
#include <UserDefinedProperties.hxx>
#include <CloneHelper.hxx>
#include <ModifyListenerHelper.hxx>
-#include "Axis.hxx"
+#include <Axis.hxx>
#include <ChartType.hxx>
#include <com/sun/star/chart2/AxisType.hpp>
#include <com/sun/star/container/NoSuchElementException.hpp>
@@ -125,7 +125,7 @@ BaseCoordinateSystem::BaseCoordinateSystem(
for( sal_Int32 nN=0; nN<m_nDimensionCount; nN++ )
{
m_aAllAxis[nN].resize( 1 );
- Reference< chart2::XAxis > xAxis( new Axis );
+ rtl::Reference< Axis > xAxis( new Axis );
m_aAllAxis[nN][0] = xAxis;
ModifyListenerHelper::addListenerToAllElements( m_aAllAxis[nN],
m_xModifyEventForwarder );
@@ -159,7 +159,7 @@ BaseCoordinateSystem::BaseCoordinateSystem(
m_aAllAxis.resize(rSource.m_aAllAxis.size());
tAxisVecVecType::size_type nN=0;
for( nN=0; nN<m_aAllAxis.size(); nN++ )
- CloneHelper::CloneRefVector<chart2::XAxis>( rSource.m_aAllAxis[nN],
m_aAllAxis[nN] );
+ CloneHelper::CloneRefVector( rSource.m_aAllAxis[nN], m_aAllAxis[nN] );
for (const auto & rxChartType : rSource.m_aChartTypes)
m_aChartTypes.push_back(rxChartType->cloneChartType());
@@ -207,7 +207,33 @@ void SAL_CALL BaseCoordinateSystem::setAxisByDimension(
m_aAllAxis[ nDimensionIndex ][nIndex] = nullptr;
}
- Reference< chart2::XAxis > xOldAxis( m_aAllAxis[ nDimensionIndex ][nIndex]
);
+ rtl::Reference< Axis > xOldAxis( m_aAllAxis[ nDimensionIndex ][nIndex] );
+ if( xOldAxis.is())
+ ModifyListenerHelper::removeListener( xOldAxis,
m_xModifyEventForwarder );
+ m_aAllAxis[ nDimensionIndex ][nIndex] = dynamic_cast<Axis*>(xAxis.get());
+ if( xAxis.is())
+ ModifyListenerHelper::addListener( xAxis, m_xModifyEventForwarder );
+ fireModifyEvent();
+}
+
+void BaseCoordinateSystem::setAxisByDimension(
+ sal_Int32 nDimensionIndex,
+ const rtl::Reference< Axis >& xAxis,
+ sal_Int32 nIndex )
+{
+ if( nDimensionIndex < 0 || nDimensionIndex >= getDimension() )
+ throw lang::IndexOutOfBoundsException();
+
+ if( nIndex < 0 )
+ throw lang::IndexOutOfBoundsException();
+
+ if( m_aAllAxis[ nDimensionIndex ].size() < o3tl::make_unsigned( nIndex+1 ))
+ {
+ m_aAllAxis[ nDimensionIndex ].resize( nIndex+1 );
+ m_aAllAxis[ nDimensionIndex ][nIndex] = nullptr;
+ }
+
+ rtl::Reference< Axis > xOldAxis( m_aAllAxis[ nDimensionIndex ][nIndex] );
if( xOldAxis.is())
ModifyListenerHelper::removeListener( xOldAxis,
m_xModifyEventForwarder );
m_aAllAxis[ nDimensionIndex ][nIndex] = xAxis;
@@ -230,6 +256,20 @@ Reference< chart2::XAxis > SAL_CALL
BaseCoordinateSystem::getAxisByDimension(
return m_aAllAxis[ nDimensionIndex ][nAxisIndex];
}
+rtl::Reference< Axis > BaseCoordinateSystem::getAxisByDimension2(
+ sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex ) const
+{
+ if( nDimensionIndex < 0 || nDimensionIndex >= m_nDimensionCount )
+ throw lang::IndexOutOfBoundsException();
+
+ OSL_ASSERT( m_aAllAxis.size() == static_cast< size_t >(
m_nDimensionCount));
+
+ if( nAxisIndex < 0 || nAxisIndex > static_cast<sal_Int32>(m_aAllAxis[
nDimensionIndex ].size()) )
+ throw lang::IndexOutOfBoundsException();
+
+ return m_aAllAxis[ nDimensionIndex ][nAxisIndex];
+}
+
sal_Int32 SAL_CALL BaseCoordinateSystem::getMaximumAxisIndexByDimension(
sal_Int32 nDimensionIndex )
{
if( nDimensionIndex < 0 || nDimensionIndex >= getDimension() )
diff --git a/chart2/source/model/main/Diagram.cxx
b/chart2/source/model/main/Diagram.cxx
index 60bcbd5124f7..f160987addc3 100644
--- a/chart2/source/model/main/Diagram.cxx
+++ b/chart2/source/model/main/Diagram.cxx
@@ -524,6 +524,28 @@ void SAL_CALL Diagram::setCoordinateSystems(
fireModifyEvent();
}
+void Diagram::setCoordinateSystems(
+ const std::vector< rtl::Reference< BaseCoordinateSystem > >&
aCoordinateSystems )
+{
+ tCoordinateSystemContainerType aNew;
+ tCoordinateSystemContainerType aOld;
+ if( !aCoordinateSystems.empty() )
+ {
+ OSL_ENSURE( aCoordinateSystems.size()<=1, "more than one
coordinatesystem is not supported yet by the fileformat" );
+ aNew.push_back( aCoordinateSystems[0] );
+ }
+ {
+ MutexGuard aGuard( m_aMutex );
+ std::swap( aOld, m_aCoordSystems );
+ m_aCoordSystems = aNew;
+ }
+ for (auto & xSystem : aOld)
+ xSystem->removeModifyListener(m_xModifyEventForwarder);
+ for (auto & xSystem : aNew)
+ xSystem->addModifyListener(m_xModifyEventForwarder);
+ fireModifyEvent();
+}
+
// ____ XCloneable ____
Reference< util::XCloneable > SAL_CALL Diagram::createClone()
{
diff --git a/chart2/source/model/template/BubbleChartType.cxx
b/chart2/source/model/template/BubbleChartType.cxx
index c2d7d367ea65..8a23388ab336 100644
--- a/chart2/source/model/template/BubbleChartType.cxx
+++ b/chart2/source/model/template/BubbleChartType.cxx
@@ -21,6 +21,7 @@
#include <PropertyHelper.hxx>
#include <servicenames_charttypes.hxx>
#include <CartesianCoordinateSystem.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <AxisIndexDefines.hxx>
#include <com/sun/star/chart2/AxisType.hpp>
@@ -123,7 +124,7 @@ Reference< chart2::XCoordinateSystem > SAL_CALL
for( sal_Int32 i=0; i<DimensionCount; ++i )
{
- Reference< chart2::XAxis > xAxis( xResult->getAxisByDimension( i,
MAIN_AXIS_INDEX ) );
+ rtl::Reference< Axis > xAxis = xResult->getAxisByDimension2( i,
MAIN_AXIS_INDEX );
if( !xAxis.is() )
{
OSL_FAIL("a created coordinate system should have an axis for each
dimension");
diff --git a/chart2/source/model/template/ChartType.cxx
b/chart2/source/model/template/ChartType.cxx
index 588b3fa653e9..eff91f9cc9bb 100644
--- a/chart2/source/model/template/ChartType.cxx
+++ b/chart2/source/model/template/ChartType.cxx
@@ -19,6 +19,7 @@
#include <ChartType.hxx>
#include <CartesianCoordinateSystem.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <CloneHelper.hxx>
#include <AxisIndexDefines.hxx>
@@ -67,13 +68,19 @@ ChartType::~ChartType()
// ____ XChartType ____
Reference< chart2::XCoordinateSystem > SAL_CALL
ChartType::createCoordinateSystem( ::sal_Int32 DimensionCount )
+{
+ return createCoordinateSystem2(DimensionCount);
+}
+
+rtl::Reference< BaseCoordinateSystem >
+ ChartType::createCoordinateSystem2( ::sal_Int32 DimensionCount )
{
rtl::Reference< CartesianCoordinateSystem > xResult =
new CartesianCoordinateSystem( DimensionCount );
for( sal_Int32 i=0; i<DimensionCount; ++i )
{
- Reference< chart2::XAxis > xAxis( xResult->getAxisByDimension( i,
MAIN_AXIS_INDEX ) );
+ rtl::Reference< Axis > xAxis = xResult->getAxisByDimension2( i,
MAIN_AXIS_INDEX );
if( !xAxis.is() )
{
OSL_FAIL("a created coordinate system should have an axis for each
dimension");
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx
b/chart2/source/model/template/ChartTypeTemplate.cxx
index 902c54ed6a89..df4cb7d17c92 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -25,6 +25,7 @@
#include <DataSeries.hxx>
#include <DataSource.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <Diagram.hxx>
#include <DiagramHelper.hxx>
@@ -420,18 +421,14 @@ void ChartTypeTemplate::resetStyles( const
rtl::Reference< ::chart::Diagram >& x
bool bPercent = (getStackMode(0) == StackMode::YStackedPercent);
if( bPercent )
{
- const Sequence< Reference< chart2::XAxis > > aAxisSeq(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
- for( Reference< chart2::XAxis > const & axis : aAxisSeq )
+ const std::vector< rtl::Reference< Axis > > aAxisSeq(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
+ for( rtl::Reference< Axis > const & axis : aAxisSeq )
{
if( AxisHelper::getDimensionIndexOfAxis( axis, xDiagram )== 1 )
{
- Reference< beans::XPropertySet > xAxisProp( axis,
uno::UNO_QUERY );
- if( xAxisProp.is())
- {
- // set number format to source format
-
xAxisProp->setPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT, uno::Any(true));
- xAxisProp->setPropertyValue(CHART_UNONAME_NUMFMT,
uno::Any());
- }
+ // set number format to source format
+ axis->setPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT,
uno::Any(true));
+ axis->setPropertyValue(CHART_UNONAME_NUMFMT, uno::Any());
}
}
}
@@ -499,7 +496,7 @@ void ChartTypeTemplate::createCoordinateSystems(
rtl::Reference< ChartType > xChartType(
getChartTypeForNewSeries(aFormerlyUsedChartTypes));
if( ! xChartType.is())
return;
- Reference< XCoordinateSystem > xCooSys(
xChartType->createCoordinateSystem( getDimension()));
+ rtl::Reference< BaseCoordinateSystem > xCooSys =
ChartType::createCoordinateSystem2( getDimension());
if( ! xCooSys.is())
{
// chart type wants no coordinate systems
@@ -514,13 +511,13 @@ void ChartTypeTemplate::createCoordinateSystems(
AxisHelper::makeGridVisible( xAxis->getGridProperties() );
}
- Sequence< Reference< XCoordinateSystem > > aCoordinateSystems(
- xDiagram->getCoordinateSystems());
+ std::vector< rtl::Reference< BaseCoordinateSystem > > aCoordinateSystems(
+ xDiagram->getBaseCoordinateSystems());
- if( aCoordinateSystems.hasElements())
+ if( !aCoordinateSystems.empty() )
{
bool bOk = true;
- for( sal_Int32 i=0; bOk && i<aCoordinateSystems.getLength(); ++i )
+ for( sal_Int32 i=0; bOk &&
i<static_cast<sal_Int32>(aCoordinateSystems.size()); ++i )
bOk = bOk && ( xCooSys->getCoordinateSystemType() ==
aCoordinateSystems[i]->getCoordinateSystemType() &&
(xCooSys->getDimension() ==
aCoordinateSystems[i]->getDimension()) );
// coordinate systems are ok
@@ -530,9 +527,9 @@ void ChartTypeTemplate::createCoordinateSystems(
}
//copy as much info from former coordinate system as possible:
- if( aCoordinateSystems.hasElements() )
+ if( !aCoordinateSystems.empty() )
{
- Reference< XCoordinateSystem > xOldCooSys( aCoordinateSystems[0] );
+ rtl::Reference< BaseCoordinateSystem > xOldCooSys(
aCoordinateSystems[0] );
sal_Int32 nMaxDimensionCount = std::min( xCooSys->getDimension(),
xOldCooSys->getDimension() );
for(sal_Int32 nDimensionIndex=0; nDimensionIndex<nMaxDimensionCount;
nDimensionIndex++)
@@ -540,7 +537,7 @@ void ChartTypeTemplate::createCoordinateSystems(
const sal_Int32 nMaximumAxisIndex =
xOldCooSys->getMaximumAxisIndexByDimension(nDimensionIndex);
for(sal_Int32 nAxisIndex=0; nAxisIndex<=nMaximumAxisIndex;
++nAxisIndex)
{
- uno::Reference< XAxis > xAxis( xOldCooSys->getAxisByDimension(
nDimensionIndex, nAxisIndex ) );
+ rtl::Reference< Axis > xAxis =
xOldCooSys->getAxisByDimension2( nDimensionIndex, nAxisIndex );
if( xAxis.is())
{
xCooSys->setAxisByDimension( nDimensionIndex, xAxis,
nAxisIndex );
@@ -573,7 +570,7 @@ void ChartTypeTemplate::adaptScales(
const sal_Int32 nMaxIndex =
xCooSys->getMaximumAxisIndexByDimension(nDimensionX);
for(sal_Int32 nI=0; nI<=nMaxIndex; ++nI)
{
- Reference< XAxis > xAxis(
xCooSys->getAxisByDimension(nDimensionX,nI) );
+ rtl::Reference< Axis > xAxis =
xCooSys->getAxisByDimension2(nDimensionX,nI);
if( xAxis.is())
{
ScaleData aData( xAxis->getScaleData() );
@@ -606,7 +603,7 @@ void ChartTypeTemplate::adaptScales(
const sal_Int32 nMaxIndex =
xCooSys->getMaximumAxisIndexByDimension(1);
for(sal_Int32 nI=0; nI<=nMaxIndex; ++nI)
{
- Reference< chart2::XAxis > xAxis(
xCooSys->getAxisByDimension( 1,nI ));
+ rtl::Reference< Axis > xAxis =
xCooSys->getAxisByDimension2( 1,nI );
if( xAxis.is())
{
bool bPercent = (getStackMode(0) ==
StackMode::YStackedPercent);
diff --git a/chart2/source/model/template/NetChartType.cxx
b/chart2/source/model/template/NetChartType.cxx
index 971befddfca9..8441215818d8 100644
--- a/chart2/source/model/template/NetChartType.cxx
+++ b/chart2/source/model/template/NetChartType.cxx
@@ -22,6 +22,7 @@
#include <servicenames_charttypes.hxx>
#include <AxisIndexDefines.hxx>
#include <AxisHelper.hxx>
+#include <Axis.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <com/sun/star/chart2/AxisType.hpp>
@@ -58,7 +59,7 @@ Reference< XCoordinateSystem > SAL_CALL
rtl::Reference< PolarCoordinateSystem > xResult =
new PolarCoordinateSystem( DimensionCount );
- Reference< XAxis > xAxis( xResult->getAxisByDimension( 0, MAIN_AXIS_INDEX
) );
+ rtl::Reference< Axis > xAxis = xResult->getAxisByDimension2( 0,
MAIN_AXIS_INDEX );
if( xAxis.is() )
{
ScaleData aScaleData = xAxis->getScaleData();
@@ -68,7 +69,7 @@ Reference< XCoordinateSystem > SAL_CALL
xAxis->setScaleData( aScaleData );
}
- xAxis = xResult->getAxisByDimension( 1, MAIN_AXIS_INDEX );
+ xAxis = xResult->getAxisByDimension2( 1, MAIN_AXIS_INDEX );
if( xAxis.is() )
{
ScaleData aScaleData = xAxis->getScaleData();
diff --git a/chart2/source/model/template/PieChartType.cxx
b/chart2/source/model/template/PieChartType.cxx
index 1208283fcc1e..4727a47acc26 100644
--- a/chart2/source/model/template/PieChartType.cxx
+++ b/chart2/source/model/template/PieChartType.cxx
@@ -20,6 +20,7 @@
#include "PieChartType.hxx"
#include <PropertyHelper.hxx>
#include <PolarCoordinateSystem.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <servicenames_charttypes.hxx>
#include <AxisIndexDefines.hxx>
@@ -158,7 +159,7 @@ Reference< chart2::XCoordinateSystem > SAL_CALL
for( sal_Int32 i=0; i<DimensionCount; ++i )
{
- Reference< chart2::XAxis > xAxis( xResult->getAxisByDimension( i,
MAIN_AXIS_INDEX ) );
+ rtl::Reference< Axis > xAxis = xResult->getAxisByDimension2( i,
MAIN_AXIS_INDEX );
if( !xAxis.is() )
{
OSL_FAIL("a created coordinate system should have an axis for each
dimension");
diff --git a/chart2/source/model/template/PieChartTypeTemplate.cxx
b/chart2/source/model/template/PieChartTypeTemplate.cxx
index 9b7ef05323fc..46a3e57e2a88 100644
--- a/chart2/source/model/template/PieChartTypeTemplate.cxx
+++ b/chart2/source/model/template/PieChartTypeTemplate.cxx
@@ -27,6 +27,7 @@
#include <servicenames_charttypes.hxx>
#include <DataSeries.hxx>
#include <DataSeriesHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <ThreeDHelper.hxx>
#include <PropertyHelper.hxx>
@@ -238,8 +239,8 @@ void PieChartTypeTemplate::adaptScales(
{
try
{
- Reference< chart2::XAxis > xAxis( AxisHelper::getAxis( 1
/*nDimensionIndex*/,0 /*nAxisIndex*/
- , coords ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( 1
/*nDimensionIndex*/,0 /*nAxisIndex*/
+ , coords );
if( xAxis.is() )
{
chart2::ScaleData aScaleData( xAxis->getScaleData() );
diff --git a/chart2/source/model/template/ScatterChartType.cxx
b/chart2/source/model/template/ScatterChartType.cxx
index 63d46fed23b9..1835abc10a1d 100644
--- a/chart2/source/model/template/ScatterChartType.cxx
+++ b/chart2/source/model/template/ScatterChartType.cxx
@@ -21,6 +21,7 @@
#include <PropertyHelper.hxx>
#include <servicenames_charttypes.hxx>
#include <CartesianCoordinateSystem.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <AxisIndexDefines.hxx>
#include <unonames.hxx>
@@ -168,7 +169,7 @@ Reference< chart2::XCoordinateSystem > SAL_CALL
for( sal_Int32 i=0; i<DimensionCount; ++i )
{
- Reference< chart2::XAxis > xAxis( xResult->getAxisByDimension( i,
MAIN_AXIS_INDEX ) );
+ rtl::Reference< Axis > xAxis = xResult->getAxisByDimension2( i,
MAIN_AXIS_INDEX );
if( !xAxis.is() )
{
OSL_FAIL("a created coordinate system should have an axis for each
dimension");
diff --git a/chart2/source/tools/AxisHelper.cxx
b/chart2/source/tools/AxisHelper.cxx
index 8f9b93cf8873..52225c48b413 100644
--- a/chart2/source/tools/AxisHelper.cxx
+++ b/chart2/source/tools/AxisHelper.cxx
@@ -22,6 +22,7 @@
#include <Diagram.hxx>
#include <ChartTypeHelper.hxx>
#include <ChartType.hxx>
+#include <Axis.hxx>
#include <AxisIndexDefines.hxx>
#include <LabeledDataSequence.hxx>
#include <LinePropertiesHelper.hxx>
@@ -101,6 +102,13 @@ bool AxisHelper::isLogarithmic( const Reference< XScaling
>& xScaling )
}
chart2::ScaleData AxisHelper::getDateCheckedScale( const Reference<
chart2::XAxis >& xAxis, ChartModel& rModel )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ return getDateCheckedScale(pAxis, rModel);
+}
+
+chart2::ScaleData AxisHelper::getDateCheckedScale( const rtl::Reference< Axis
>& xAxis, ChartModel& rModel )
{
ScaleData aScale = xAxis->getScaleData();
rtl::Reference< BaseCoordinateSystem > xCooSys(
ChartModelHelper::getFirstCoordinateSystem( &rModel ) );
@@ -140,19 +148,29 @@ sal_Int32 AxisHelper::getExplicitNumberFormatKeyForAxis(
, const rtl::Reference< BaseCoordinateSystem > &
xCorrespondingCoordinateSystem
, const rtl::Reference<ChartModel>& xChartDoc
, bool bSearchForParallelAxisIfNothingIsFound )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ return getExplicitNumberFormatKeyForAxis(pAxis,
xCorrespondingCoordinateSystem, xChartDoc,
bSearchForParallelAxisIfNothingIsFound);
+}
+
+sal_Int32 AxisHelper::getExplicitNumberFormatKeyForAxis(
+ const rtl::Reference< Axis >& xAxis
+ , const rtl::Reference< BaseCoordinateSystem > &
xCorrespondingCoordinateSystem
+ , const rtl::Reference<ChartModel>& xChartDoc
+ , bool bSearchForParallelAxisIfNothingIsFound )
{
sal_Int32 nNumberFormatKey(0);
sal_Int32 nAxisIndex = 0;
sal_Int32 nDimensionIndex = 1;
AxisHelper::getIndicesForAxis( xAxis, xCorrespondingCoordinateSystem,
nDimensionIndex, nAxisIndex );
- Reference< beans::XPropertySet > xProp( xAxis, uno::UNO_QUERY );
- if (!xProp.is())
+ if (!xAxis.is())
return 0;
bool bLinkToSource = true;
- xProp->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>=
bLinkToSource;
- xProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormatKey;
+ xAxis->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>=
bLinkToSource;
+ xAxis->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormatKey;
if (bLinkToSource)
{
@@ -309,7 +327,7 @@ sal_Int32 AxisHelper::getExplicitNumberFormatKeyForAxis(
if( !bNumberFormatKeyFoundViaAttachedData && nDimensionIndex
== 1 )
{
sal_Int32 nParallelAxisIndex = (nAxisIndex==1) ?0 :1;
- Reference< XAxis > xParallelAxis( AxisHelper::getAxis( 1,
nParallelAxisIndex, xCorrespondingCoordinateSystem ) );
+ rtl::Reference< Axis > xParallelAxis =
AxisHelper::getAxis( 1, nParallelAxisIndex, xCorrespondingCoordinateSystem );
nNumberFormatKey =
AxisHelper::getExplicitNumberFormatKeyForAxis(xParallelAxis,
xCorrespondingCoordinateSystem, xChartDoc, false);
}
}
@@ -319,7 +337,7 @@ sal_Int32 AxisHelper::getExplicitNumberFormatKeyForAxis(
return nNumberFormatKey;
}
-Reference< XAxis > AxisHelper::createAxis(
+rtl::Reference< Axis > AxisHelper::createAxis(
sal_Int32 nDimensionIndex
, sal_Int32 nAxisIndex // 0==main or 1==secondary axis
, const rtl::Reference< BaseCoordinateSystem >& xCooSys
@@ -331,64 +349,52 @@ Reference< XAxis > AxisHelper::createAxis(
if( nDimensionIndex >= xCooSys->getDimension() )
return nullptr;
- Reference< XAxis > xAxis(
xContext->getServiceManager()->createInstanceWithContext(
- "com.sun.star.chart2.Axis", xContext ), uno::UNO_QUERY );
+ rtl::Reference< Axis > xAxis = new Axis();
- OSL_ASSERT( xAxis.is());
- if( xAxis.is())
+ xCooSys->setAxisByDimension( nDimensionIndex, xAxis, nAxisIndex );
+
+ if( nAxisIndex>0 )//when inserting secondary axes copy some things from
the main axis
{
- xCooSys->setAxisByDimension( nDimensionIndex, xAxis, nAxisIndex );
+ css::chart::ChartAxisPosition eNewAxisPos(
css::chart::ChartAxisPosition_END );
- if( nAxisIndex>0 )//when inserting secondary axes copy some things
from the main axis
+ rtl::Reference< Axis > xMainAxis = xCooSys->getAxisByDimension2(
nDimensionIndex, 0 );
+ if( xMainAxis.is() )
{
- css::chart::ChartAxisPosition eNewAxisPos(
css::chart::ChartAxisPosition_END );
-
- Reference< XAxis > xMainAxis( xCooSys->getAxisByDimension(
nDimensionIndex, 0 ) );
- if( xMainAxis.is() )
- {
- ScaleData aScale = xAxis->getScaleData();
- ScaleData aMainScale = xMainAxis->getScaleData();
-
- aScale.AxisType = aMainScale.AxisType;
- aScale.AutoDateAxis = aMainScale.AutoDateAxis;
- aScale.Categories = aMainScale.Categories;
- aScale.Orientation = aMainScale.Orientation;
- aScale.ShiftedCategoryPosition =
aMainScale.ShiftedCategoryPosition;
-
- xAxis->setScaleData( aScale );
-
- //ensure that the second axis is not placed on the main axis
- Reference< beans::XPropertySet > xMainProp( xMainAxis,
uno::UNO_QUERY );
- if( xMainProp.is() )
- {
- css::chart::ChartAxisPosition eMainAxisPos(
css::chart::ChartAxisPosition_ZERO );
- xMainProp->getPropertyValue("CrossoverPosition") >>=
eMainAxisPos;
- if( eMainAxisPos == css::chart::ChartAxisPosition_END )
- eNewAxisPos = css::chart::ChartAxisPosition_START;
- }
- }
-
- Reference< beans::XPropertySet > xProp( xAxis, uno::UNO_QUERY );
- if( xProp.is() )
- xProp->setPropertyValue("CrossoverPosition",
uno::Any(eNewAxisPos) );
+ ScaleData aScale = xAxis->getScaleData();
+ ScaleData aMainScale = xMainAxis->getScaleData();
+
+ aScale.AxisType = aMainScale.AxisType;
+ aScale.AutoDateAxis = aMainScale.AutoDateAxis;
+ aScale.Categories = aMainScale.Categories;
+ aScale.Orientation = aMainScale.Orientation;
+ aScale.ShiftedCategoryPosition =
aMainScale.ShiftedCategoryPosition;
+
+ xAxis->setScaleData( aScale );
+
+ //ensure that the second axis is not placed on the main axis
+ css::chart::ChartAxisPosition eMainAxisPos(
css::chart::ChartAxisPosition_ZERO );
+ xMainAxis->getPropertyValue("CrossoverPosition") >>= eMainAxisPos;
+ if( eMainAxisPos == css::chart::ChartAxisPosition_END )
+ eNewAxisPos = css::chart::ChartAxisPosition_START;
}
- Reference< beans::XPropertySet > xProp( xAxis, uno::UNO_QUERY );
- if( xProp.is() ) try
- {
- // set correct initial AutoScale
- if( pRefSizeProvider )
- pRefSizeProvider->setValuesAtPropertySet( xProp );
- }
- catch( const uno::Exception& )
- {
- TOOLS_WARN_EXCEPTION("chart2", "" );
- }
+ xAxis->setPropertyValue("CrossoverPosition", uno::Any(eNewAxisPos) );
+ }
+
+ try
+ {
+ // set correct initial AutoScale
+ if( pRefSizeProvider )
+ pRefSizeProvider->setValuesAtPropertySet( xAxis );
+ }
+ catch( const uno::Exception& )
+ {
+ TOOLS_WARN_EXCEPTION("chart2", "" );
}
return xAxis;
}
-Reference< XAxis > AxisHelper::createAxis( sal_Int32 nDimensionIndex, bool
bMainAxis
+rtl::Reference< Axis > AxisHelper::createAxis( sal_Int32 nDimensionIndex, bool
bMainAxis
, const rtl::Reference< Diagram >& xDiagram
, const Reference< uno::XComponentContext >& xContext
, ReferenceSizeProvider * pRefSizeProvider )
@@ -414,12 +420,12 @@ void AxisHelper::showAxis( sal_Int32 nDimensionIndex,
bool bMainAxis
return;
bool bNewAxisCreated = false;
- Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex, bMainAxis,
xDiagram ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( nDimensionIndex,
bMainAxis, xDiagram );
if( !xAxis.is() && xContext.is() )
{
// create axis
bNewAxisCreated = true;
- xAxis.set( AxisHelper::createAxis( nDimensionIndex, bMainAxis,
xDiagram, xContext, pRefSizeProvider ) );
+ xAxis = AxisHelper::createAxis( nDimensionIndex, bMainAxis, xDiagram,
xContext, pRefSizeProvider );
}
OSL_ASSERT( xAxis.is());
@@ -437,7 +443,7 @@ void AxisHelper::showGrid( sal_Int32 nDimensionIndex,
sal_Int32 nCooSysIndex, bo
if(!xCooSys.is())
return;
- Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex,
MAIN_AXIS_INDEX, xCooSys ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( nDimensionIndex,
MAIN_AXIS_INDEX, xCooSys );
if(!xAxis.is())
{
//hhhh todo create axis without axis visibility
@@ -466,6 +472,16 @@ void AxisHelper::makeAxisVisible( const Reference< XAxis
>& xAxis )
}
}
+void AxisHelper::makeAxisVisible( const rtl::Reference< Axis >& xAxis )
+{
+ if( xAxis.is() )
+ {
+ xAxis->setPropertyValue( "Show", uno::Any( true ) );
+ LinePropertiesHelper::SetLineVisible( xAxis );
+ xAxis->setPropertyValue( "DisplayLabels", uno::Any( true ) );
+ }
+}
+
void AxisHelper::makeGridVisible( const Reference< beans::XPropertySet >&
xGridProperties )
{
if( xGridProperties.is() )
@@ -490,14 +506,29 @@ void AxisHelper::makeAxisInvisible( const Reference<
XAxis >& xAxis )
}
}
+void AxisHelper::makeAxisInvisible( const rtl::Reference< Axis >& xAxis )
+{
+ if( xAxis.is() )
+ {
+ xAxis->setPropertyValue( "Show", uno::Any( false ) );
+ }
+}
+
void AxisHelper::hideAxisIfNoDataIsAttached( const Reference< XAxis >& xAxis,
const rtl::Reference< Diagram >& xDiagram )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ hideAxisIfNoDataIsAttached(pAxis, xDiagram);
+}
+
+void AxisHelper::hideAxisIfNoDataIsAttached( const rtl::Reference< Axis >&
xAxis, const rtl::Reference< Diagram >& xDiagram )
{
//axis is hidden if no data is attached anymore but data is available
bool bOtherSeriesAttachedToThisAxis = false;
std::vector< rtl::Reference< DataSeries > > aSeriesVector =
DiagramHelper::getDataSeriesFromDiagram( xDiagram );
for (auto const& series : aSeriesVector)
{
- uno::Reference< chart2::XAxis > xCurrentAxis =
DiagramHelper::getAttachedAxis(series, xDiagram );
+ rtl::Reference< Axis > xCurrentAxis =
DiagramHelper::getAttachedAxis(series, xDiagram );
if( xCurrentAxis==xAxis )
{
bOtherSeriesAttachedToThisAxis = true;
@@ -518,7 +549,7 @@ void AxisHelper::hideGrid( sal_Int32 nDimensionIndex,
sal_Int32 nCooSysIndex, bo
if(!xCooSys.is())
return;
- Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex,
MAIN_AXIS_INDEX, xCooSys ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( nDimensionIndex,
MAIN_AXIS_INDEX, xCooSys );
if(!xAxis.is())
return;
@@ -549,7 +580,7 @@ bool AxisHelper::isGridShown( sal_Int32 nDimensionIndex,
sal_Int32 nCooSysIndex,
if(!xCooSys.is())
return bRet;
- Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex,
MAIN_AXIS_INDEX, xCooSys ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( nDimensionIndex,
MAIN_AXIS_INDEX, xCooSys );
if(!xAxis.is())
return bRet;
@@ -576,14 +607,14 @@ rtl::Reference< ::chart::BaseCoordinateSystem >
AxisHelper::getCoordinateSystemB
return nullptr;
}
-Reference< XAxis > AxisHelper::getAxis( sal_Int32 nDimensionIndex, bool
bMainAxis
+rtl::Reference< Axis > AxisHelper::getAxis( sal_Int32 nDimensionIndex, bool
bMainAxis
, const rtl::Reference< Diagram >& xDiagram )
{
- Reference< XAxis > xRet;
+ rtl::Reference< Axis > xRet;
try
{
rtl::Reference< BaseCoordinateSystem > xCooSys =
AxisHelper::getCoordinateSystemByIndex( xDiagram, 0 );
- xRet.set( AxisHelper::getAxis( nDimensionIndex, bMainAxis ? 0 : 1,
xCooSys ) );
+ xRet = AxisHelper::getAxis( nDimensionIndex, bMainAxis ? 0 : 1,
xCooSys );
}
catch( const uno::Exception & )
{
@@ -591,10 +622,10 @@ Reference< XAxis > AxisHelper::getAxis( sal_Int32
nDimensionIndex, bool bMainAxi
return xRet;
}
-Reference< XAxis > AxisHelper::getAxis( sal_Int32 nDimensionIndex, sal_Int32
nAxisIndex
+rtl::Reference< Axis > AxisHelper::getAxis( sal_Int32 nDimensionIndex,
sal_Int32 nAxisIndex
, const rtl::Reference< BaseCoordinateSystem >& xCooSys )
{
- Reference< XAxis > xRet;
+ rtl::Reference< Axis > xRet;
if(!xCooSys.is())
return xRet;
@@ -606,11 +637,19 @@ Reference< XAxis > AxisHelper::getAxis( sal_Int32
nDimensionIndex, sal_Int32 nAx
assert(nAxisIndex >= 0);
assert(nDimensionIndex >= 0);
- xRet.set( xCooSys->getAxisByDimension( nDimensionIndex, nAxisIndex ) );
+ xRet = xCooSys->getAxisByDimension2( nDimensionIndex, nAxisIndex );
return xRet;
}
-Reference< XAxis > AxisHelper::getCrossingMainAxis( const Reference< XAxis >&
xAxis
+rtl::Reference< Axis > AxisHelper::getCrossingMainAxis( const Reference<
chart2::XAxis >& xAxis
+ , const rtl::Reference< BaseCoordinateSystem >& xCooSys )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ return getCrossingMainAxis(pAxis, xCooSys);
+}
+
+rtl::Reference< Axis > AxisHelper::getCrossingMainAxis( const rtl::Reference<
Axis >& xAxis
, const rtl::Reference< BaseCoordinateSystem >& xCooSys )
{
sal_Int32 nDimensionIndex = 0;
@@ -630,7 +669,7 @@ Reference< XAxis > AxisHelper::getCrossingMainAxis( const
Reference< XAxis >& xA
return AxisHelper::getAxis( nDimensionIndex, 0, xCooSys );
}
-Reference< XAxis > AxisHelper::getParallelAxis( const Reference< XAxis >& xAxis
+rtl::Reference< Axis > AxisHelper::getParallelAxis( const Reference< XAxis >&
xAxis
, const rtl::Reference< Diagram >& xDiagram )
{
try
@@ -700,7 +739,7 @@ Reference< beans::XPropertySet >
AxisHelper::getGridProperties(
{
Reference< beans::XPropertySet > xRet;
- Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex,
nAxisIndex, xCooSys ) );
+ rtl::Reference< Axis > xAxis( AxisHelper::getAxis( nDimensionIndex,
nAxisIndex, xCooSys ) );
if( xAxis.is() )
{
if( nSubGridIndex<0 )
@@ -727,8 +766,29 @@ sal_Int32 AxisHelper::getDimensionIndexOfAxis(
return nDimensionIndex;
}
+sal_Int32 AxisHelper::getDimensionIndexOfAxis(
+ const rtl::Reference< Axis >& xAxis
+ , const rtl::Reference< Diagram >& xDiagram )
+{
+ sal_Int32 nDimensionIndex = -1;
+ sal_Int32 nCooSysIndex = -1;
+ sal_Int32 nAxisIndex = -1;
+ AxisHelper::getIndicesForAxis( xAxis, xDiagram, nCooSysIndex ,
nDimensionIndex, nAxisIndex );
+ return nDimensionIndex;
+}
+
bool AxisHelper::getIndicesForAxis(
- const Reference< XAxis >& xAxis
+ const Reference< chart2::XAxis >& xAxis
+ , const rtl::Reference< BaseCoordinateSystem >& xCooSys
+ , sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ return getIndicesForAxis(pAxis, xCooSys, rOutDimensionIndex,
rOutAxisIndex);
+}
+
+bool AxisHelper::getIndicesForAxis(
+ const rtl::Reference< Axis >& xAxis
, const rtl::Reference< BaseCoordinateSystem >& xCooSys
, sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex )
{
@@ -740,14 +800,14 @@ bool AxisHelper::getIndicesForAxis(
if( !xCooSys || !xAxis )
return false;
- Reference< XAxis > xCurrentAxis;
+ rtl::Reference< Axis > xCurrentAxis;
sal_Int32 nDimensionCount( xCooSys->getDimension() );
for( sal_Int32 nDimensionIndex = 0; nDimensionIndex < nDimensionCount;
nDimensionIndex++ )
{
sal_Int32 nMaxAxisIndex =
xCooSys->getMaximumAxisIndexByDimension(nDimensionIndex);
for( sal_Int32 nAxisIndex = 0; nAxisIndex <= nMaxAxisIndex;
nAxisIndex++ )
{
- xCurrentAxis =
xCooSys->getAxisByDimension(nDimensionIndex,nAxisIndex);
+ xCurrentAxis =
xCooSys->getAxisByDimension2(nDimensionIndex,nAxisIndex);
if( xCurrentAxis == xAxis )
{
rOutDimensionIndex = nDimensionIndex;
@@ -759,7 +819,15 @@ bool AxisHelper::getIndicesForAxis(
return false;
}
-bool AxisHelper::getIndicesForAxis( const Reference< XAxis >& xAxis, const
rtl::Reference< Diagram >& xDiagram
+bool AxisHelper::getIndicesForAxis( const Reference< chart2::XAxis >& xAxis,
const rtl::Reference< Diagram >& xDiagram
+ , sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex,
sal_Int32& rOutAxisIndex )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ return getIndicesForAxis(pAxis, xDiagram, rOutCooSysIndex,
rOutDimensionIndex, rOutAxisIndex);
+}
+
+bool AxisHelper::getIndicesForAxis( const rtl::Reference< Axis >& xAxis, const
rtl::Reference< Diagram >& xDiagram
, sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex,
sal_Int32& rOutAxisIndex )
{
//returns true if indices are found
@@ -781,11 +849,11 @@ bool AxisHelper::getIndicesForAxis( const Reference<
XAxis >& xAxis, const rtl::
return false;
}
-std::vector< Reference< XAxis > > AxisHelper::getAllAxesOfCoordinateSystem(
+std::vector< rtl::Reference< Axis > > AxisHelper::getAllAxesOfCoordinateSystem(
const rtl::Reference< BaseCoordinateSystem >& xCooSys
, bool bOnlyVisible /* = false */ )
{
- std::vector< Reference< XAxis > > aAxisVector;
+ std::vector< rtl::Reference< Axis > > aAxisVector;
if(xCooSys.is())
{
@@ -800,15 +868,13 @@ std::vector< Reference< XAxis > >
AxisHelper::getAllAxesOfCoordinateSystem(
{
try
{
- Reference< XAxis > xAxis( xCooSys->getAxisByDimension(
nDimensionIndex, nAxisIndex ) );
+ rtl::Reference< Axis > xAxis =
xCooSys->getAxisByDimension2( nDimensionIndex, nAxisIndex );
if( xAxis.is() )
{
bool bAddAxis = true;
if( bOnlyVisible )
{
- Reference< beans::XPropertySet > xAxisProp(
xAxis, uno::UNO_QUERY );
- if( !xAxisProp.is() ||
- !(xAxisProp->getPropertyValue( "Show") >>=
bAddAxis) )
+ if( !(xAxis->getPropertyValue( "Show") >>=
bAddAxis) )
bAddAxis = false;
}
if( bAddAxis )
@@ -827,30 +893,28 @@ std::vector< Reference< XAxis > >
AxisHelper::getAllAxesOfCoordinateSystem(
return aAxisVector;
}
-Sequence< Reference< XAxis > > AxisHelper::getAllAxesOfDiagram(
+std::vector< rtl::Reference< Axis > > AxisHelper::getAllAxesOfDiagram(
const rtl::Reference< Diagram >& xDiagram
, bool bOnlyVisible )
{
- std::vector< Reference< XAxis > > aAxisVector;
+ std::vector< rtl::Reference< Axis > > aAxisVector;
for( rtl::Reference< BaseCoordinateSystem > const & coords :
xDiagram->getBaseCoordinateSystems() )
{
- std::vector< Reference< XAxis > > aAxesPerCooSys(
AxisHelper::getAllAxesOfCoordinateSystem( coords, bOnlyVisible ) );
+ std::vector< rtl::Reference< Axis > > aAxesPerCooSys =
AxisHelper::getAllAxesOfCoordinateSystem( coords, bOnlyVisible );
aAxisVector.insert( aAxisVector.end(), aAxesPerCooSys.begin(),
aAxesPerCooSys.end() );
}
- return comphelper::containerToSequence( aAxisVector );
+ return aAxisVector;
}
Sequence< Reference< beans::XPropertySet > > AxisHelper::getAllGrids( const
rtl::Reference< Diagram >& xDiagram )
{
- const Sequence< Reference< XAxis > > aAllAxes(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
+ const std::vector< rtl::Reference< Axis > > aAllAxes =
AxisHelper::getAllAxesOfDiagram( xDiagram );
std::vector< Reference< beans::XPropertySet > > aGridVector;
- for( Reference< XAxis > const & xAxis : aAllAxes )
+ for( rtl::Reference< Axis > const & xAxis : aAllAxes )
{
- if(!xAxis.is())
- continue;
Reference< beans::XPropertySet > xGridProperties(
xAxis->getGridProperties() );
if( xGridProperties.is() )
aGridVector.push_back( xGridProperties );
@@ -934,6 +998,31 @@ bool AxisHelper::shouldAxisBeDisplayed( const Reference<
XAxis >& xAxis
return bRet;
}
+bool AxisHelper::shouldAxisBeDisplayed( const rtl::Reference< Axis >& xAxis
+ , const rtl::Reference<
BaseCoordinateSystem >& xCooSys )
+{
+ bool bRet = false;
+
+ if( xAxis.is() && xCooSys.is() )
+ {
+ sal_Int32 nDimensionIndex=-1;
+ sal_Int32 nAxisIndex=-1;
+ if( AxisHelper::getIndicesForAxis( xAxis, xCooSys, nDimensionIndex,
nAxisIndex ) )
+ {
+ sal_Int32 nDimensionCount = xCooSys->getDimension();
+ rtl::Reference< ChartType > xChartType(
AxisHelper::getChartTypeByIndex( xCooSys, 0 ) );
+
+ bool bMainAxis = (nAxisIndex==MAIN_AXIS_INDEX);
+ if( bMainAxis )
+ bRet =
ChartTypeHelper::isSupportingMainAxis(xChartType,nDimensionCount,nDimensionIndex);
+ else
+ bRet =
ChartTypeHelper::isSupportingSecondaryAxis(xChartType,nDimensionCount);
+ }
+ }
+
+ return bRet;
+}
+
void AxisHelper::getAxisOrGridExistence( Sequence< sal_Bool >& rExistenceList
, const rtl::Reference< Diagram>& xDiagram, bool bAxis )
{
@@ -1004,6 +1093,15 @@ bool AxisHelper::changeVisibilityOfGrids( const
rtl::Reference< Diagram >& xDiag
rtl::Reference< BaseCoordinateSystem > AxisHelper::getCoordinateSystemOfAxis(
const Reference< XAxis >& xAxis
, const rtl::Reference< Diagram >& xDiagram )
+{
+ rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
+ assert(pAxis || !xAxis);
+ return getCoordinateSystemOfAxis(pAxis, xDiagram);
+}
+
+rtl::Reference< BaseCoordinateSystem > AxisHelper::getCoordinateSystemOfAxis(
+ const rtl::Reference< Axis >& xAxis
+ , const rtl::Reference< Diagram >& xDiagram )
{
if (!xDiagram)
return nullptr;
@@ -1011,10 +1109,9 @@ rtl::Reference< BaseCoordinateSystem >
AxisHelper::getCoordinateSystemOfAxis(
rtl::Reference< BaseCoordinateSystem > xRet;
for( rtl::Reference< BaseCoordinateSystem > const & xCooSys :
xDiagram->getBaseCoordinateSystems() )
{
- std::vector< Reference< XAxis > > aAllAxis(
AxisHelper::getAllAxesOfCoordinateSystem( xCooSys ) );
+ std::vector< rtl::Reference< Axis > > aAllAxis =
AxisHelper::getAllAxesOfCoordinateSystem( xCooSys );
- std::vector< Reference< XAxis > >::iterator aFound =
- std::find( aAllAxis.begin(), aAllAxis.end(), xAxis );
+ auto aFound = std::find( aAllAxis.begin(), aAllAxis.end(), xAxis );
if( aFound != aAllAxis.end())
{
xRet = xCooSys;
diff --git a/chart2/source/tools/DataSeriesHelper.cxx
b/chart2/source/tools/DataSeriesHelper.cxx
index 964f2f05a436..830a94d0a240 100644
--- a/chart2/source/tools/DataSeriesHelper.cxx
+++ b/chart2/source/tools/DataSeriesHelper.cxx
@@ -25,6 +25,7 @@
#include <Diagram.hxx>
#include <BaseCoordinateSystem.hxx>
#include <LabeledDataSequence.hxx>
+#include <Axis.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/chart2/DataPointLabel.hpp>
@@ -503,8 +504,8 @@ void setStackModeAtSeries(
for (auto const& axisIndex : aAxisIndexSet)
{
- Reference< chart2::XAxis > xAxis(
- xCorrespondingCoordinateSystem->getAxisByDimension(1, axisIndex));
+ rtl::Reference< Axis > xAxis =
+ xCorrespondingCoordinateSystem->getAxisByDimension2(1, axisIndex);
if( xAxis.is())
{
bool bPercent = (eStackMode == StackMode::YStackedPercent);
@@ -551,8 +552,8 @@ sal_Int32 getNumberFormatKeyFromAxis(
nAxisIndex = getAttachedAxisIndex( xSeries );
try
{
- Reference< beans::XPropertySet > xAxisProp(
- xCorrespondingCoordinateSystem->getAxisByDimension(
nDimensionIndex, nAxisIndex ), uno::UNO_QUERY );
+ rtl::Reference< Axis > xAxisProp =
+ xCorrespondingCoordinateSystem->getAxisByDimension2(
nDimensionIndex, nAxisIndex );
if( xAxisProp.is())
xAxisProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nResult;
}
diff --git a/chart2/source/tools/DiagramHelper.cxx
b/chart2/source/tools/DiagramHelper.cxx
index a20c8bbd7510..c45bb92e663e 100644
--- a/chart2/source/tools/DiagramHelper.cxx
+++ b/chart2/source/tools/DiagramHelper.cxx
@@ -21,6 +21,7 @@
#include <Diagram.hxx>
#include <DataSeries.hxx>
#include <DataSeriesHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <ChartType.hxx>
#include <ChartTypeHelper.hxx>
@@ -145,7 +146,7 @@ void DiagramHelper::setVertical(
const sal_Int32 nMaximumScaleIndex =
xCooSys->getMaximumAxisIndexByDimension(nDimIndex);
for (sal_Int32 nI = 0; nI <= nMaximumScaleIndex; ++nI)
{
- Reference<chart2::XAxis> xAxis =
xCooSys->getAxisByDimension(nDimIndex,nI);
+ rtl::Reference<Axis> xAxis =
xCooSys->getAxisByDimension2(nDimIndex,nI);
if (!xAxis.is())
continue;
@@ -153,11 +154,7 @@ void DiagramHelper::setVertical(
if (!bChanged)
continue;
- Reference< XTitled > xTitled( xAxis, uno::UNO_QUERY );
- if (!xTitled.is())
- continue;
-
- Reference< beans::XPropertySet > xTitleProps(
xTitled->getTitleObject(), uno::UNO_QUERY );
+ Reference< beans::XPropertySet > xTitleProps(
xAxis->getTitleObject(), uno::UNO_QUERY );
if (!xTitleProps.is())
continue;
@@ -247,7 +244,7 @@ void DiagramHelper::setStackMode(
const sal_Int32 nMaximumScaleIndex =
xCooSys->getMaximumAxisIndexByDimension(1);
for(sal_Int32 nI=0; nI<=nMaximumScaleIndex; ++nI)
{
- Reference< chart2::XAxis > xAxis( xCooSys->getAxisByDimension(
1,nI ));
+ rtl::Reference< Axis > xAxis = xCooSys->getAxisByDimension2(
1,nI );
if( xAxis.is())
{
chart2::ScaleData aScaleData = xAxis->getScaleData();
@@ -379,8 +376,8 @@ StackMode DiagramHelper::getStackModeFromChartType(
if( nSeriesCount )
nAxisIndex =
DataSeriesHelper::getAttachedAxisIndex(aSeries[0]);
- Reference< chart2::XAxis > xAxis(
-
xCorrespondingCoordinateSystem->getAxisByDimension( 1,nAxisIndex ));
+ rtl::Reference< Axis > xAxis =
+
xCorrespondingCoordinateSystem->getAxisByDimension2( 1,nAxisIndex );
if( xAxis.is())
{
chart2::ScaleData aScaleData =
xAxis->getScaleData();
@@ -547,7 +544,7 @@ bool DiagramHelper::attachSeriesToAxis( bool
bAttachToMainAxis
if( bChanged && xDiagram.is() )
{
- uno::Reference< XAxis > xAxis( AxisHelper::getAxis( 1,
bAttachToMainAxis, xDiagram ) );
+ rtl::Reference< Axis > xAxis = AxisHelper::getAxis( 1,
bAttachToMainAxis, xDiagram );
if(!xAxis.is()) //create an axis if necessary
xAxis = AxisHelper::createAxis( 1, bAttachToMainAxis, xDiagram,
xContext );
if( bAdaptAxes )
@@ -560,14 +557,14 @@ bool DiagramHelper::attachSeriesToAxis( bool
bAttachToMainAxis
return bChanged;
}
-uno::Reference< XAxis > DiagramHelper::getAttachedAxis(
+rtl::Reference< Axis > DiagramHelper::getAttachedAxis(
const uno::Reference< XDataSeries >& xSeries,
const rtl::Reference< Diagram >& xDiagram )
{
return AxisHelper::getAxis( 1, DiagramHelper::isSeriesAttachedToMainAxis(
xSeries ), xDiagram );
}
-uno::Reference< XAxis > DiagramHelper::getAttachedAxis(
+rtl::Reference< Axis > DiagramHelper::getAttachedAxis(
const rtl::Reference< DataSeries >& xSeries,
const rtl::Reference< Diagram >& xDiagram )
{
@@ -697,7 +694,7 @@ std::vector< Reference< XAxis > >
lcl_getAxisHoldingCategoriesFromDiagram(
const sal_Int32 nMaximumScaleIndex =
xCooSys->getMaximumAxisIndexByDimension(nN);
for(sal_Int32 nI=0; nI<=nMaximumScaleIndex; ++nI)
{
- Reference< XAxis > xAxis = xCooSys->getAxisByDimension(
nN,nI );
+ rtl::Reference< Axis > xAxis =
xCooSys->getAxisByDimension2( nN,nI );
OSL_ASSERT( xAxis.is());
if( xAxis.is())
{
@@ -738,7 +735,7 @@ bool DiagramHelper::isCategoryDiagram(
const sal_Int32 nMaximumScaleIndex =
xCooSys->getMaximumAxisIndexByDimension(nN);
for(sal_Int32 nI=0; nI<=nMaximumScaleIndex; ++nI)
{
- Reference< XAxis > xAxis = xCooSys->getAxisByDimension(
nN,nI );
+ rtl::Reference< Axis > xAxis =
xCooSys->getAxisByDimension2( nN,nI );
OSL_ASSERT( xAxis.is());
if( xAxis.is())
{
@@ -1009,10 +1006,10 @@ void DiagramHelper::switchToDateCategories( const
rtl::Reference<::chart::ChartM
{
ControllerLockGuardUNO aCtrlLockGuard( xChartDoc );
- Reference< chart2::XCoordinateSystem > xCooSys(
ChartModelHelper::getFirstCoordinateSystem( xChartDoc ) );
+ rtl::Reference< BaseCoordinateSystem > xCooSys =
ChartModelHelper::getFirstCoordinateSystem( xChartDoc );
if( xCooSys.is() )
{
- Reference< XAxis > xAxis( xCooSys->getAxisByDimension(0,0) );
+ rtl::Reference< Axis > xAxis = xCooSys->getAxisByDimension2(0,0);
lcl_switchToDateCategories( xChartDoc, xAxis );
}
}
@@ -1024,10 +1021,10 @@ void DiagramHelper::switchToTextCategories( const
rtl::Reference<::chart::ChartM
{
ControllerLockGuardUNO aCtrlLockGuard( xChartDoc );
- Reference< chart2::XCoordinateSystem > xCooSys(
ChartModelHelper::getFirstCoordinateSystem( xChartDoc ) );
+ rtl::Reference< BaseCoordinateSystem > xCooSys =
ChartModelHelper::getFirstCoordinateSystem( xChartDoc );
if( xCooSys.is() )
{
- Reference< XAxis > xAxis( xCooSys->getAxisByDimension(0,0) );
+ rtl::Reference< Axis > xAxis = xCooSys->getAxisByDimension2(0,0);
lcl_switchToTextCategories( xChartDoc, xAxis );
}
}
diff --git a/chart2/source/tools/ExplicitCategoriesProvider.cxx
b/chart2/source/tools/ExplicitCategoriesProvider.cxx
index b388ed0576a5..9def633272b3 100644
--- a/chart2/source/tools/ExplicitCategoriesProvider.cxx
+++ b/chart2/source/tools/ExplicitCategoriesProvider.cxx
@@ -21,6 +21,7 @@
#include <DiagramHelper.hxx>
#include <ChartType.hxx>
#include <ChartTypeHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <DataSourceHelper.hxx>
#include <ChartModel.hxx>
@@ -61,7 +62,7 @@ ExplicitCategoriesProvider::ExplicitCategoriesProvider( const
rtl::Reference< Ba
if( xCooSysModel.is() )
{
// TODO: handle different category names on the primary and
secondary category axis.
- uno::Reference< XAxis > xAxis(
xCooSysModel->getAxisByDimension(0,0) );
+ rtl::Reference< Axis > xAxis =
xCooSysModel->getAxisByDimension2(0,0);
if( xAxis.is() )
{
ScaleData aScale( xAxis->getScaleData() );
@@ -180,7 +181,7 @@ void ExplicitCategoriesProvider::convertCategoryAnysToText(
uno::Sequence< OUStr
rtl::Reference< BaseCoordinateSystem > xCooSysModel(
ChartModelHelper::getFirstCoordinateSystem( &rModel ) );
if( xCooSysModel.is() )
{
- Reference< chart2::XAxis > xAxis(
xCooSysModel->getAxisByDimension(0,0) );
+ rtl::Reference< Axis > xAxis = xCooSysModel->getAxisByDimension2(0,0);
nAxisNumberFormat = AxisHelper::getExplicitNumberFormatKeyForAxis(
xAxis, xCooSysModel, &rModel, false );
}
@@ -408,13 +409,13 @@ static bool lcl_fillDateCategories( const uno::Reference<
data::XDataSequence >&
bool bOwnData = false;
bool bOwnDataAnddAxisHasAnyFormat = false;
bool bOwnDataAnddAxisHasDateFormat = false;
- Reference< XCoordinateSystem > xCooSysModel(
ChartModelHelper::getFirstCoordinateSystem( &rModel ) );
+ rtl::Reference< BaseCoordinateSystem > xCooSysModel(
ChartModelHelper::getFirstCoordinateSystem( &rModel ) );
if( xCooSysModel.is() )
{
if( rModel.hasInternalDataProvider() )
{
bOwnData = true;
- Reference< beans::XPropertySet > xAxisProps(
xCooSysModel->getAxisByDimension(0,0), uno::UNO_QUERY );
+ rtl::Reference< Axis > xAxisProps =
xCooSysModel->getAxisByDimension2(0,0);
sal_Int32 nAxisNumberFormat = 0;
if (xAxisProps.is() &&
(xAxisProps->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nAxisNumberFormat))
{
diff --git a/chart2/source/tools/ObjectIdentifier.cxx
b/chart2/source/tools/ObjectIdentifier.cxx
index 6ac81020f4b6..a34c3a33d13e 100644
--- a/chart2/source/tools/ObjectIdentifier.cxx
+++ b/chart2/source/tools/ObjectIdentifier.cxx
@@ -26,6 +26,7 @@
#include <ChartModel.hxx>
#include <ChartModelHelper.hxx>
#include <ChartType.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <servicenames_charttypes.hxx>
#include <DiagramHelper.hxx>
@@ -395,6 +396,34 @@ OUString
ObjectIdentifier::createClassifiedIdentifierForObject(
return OUString();
}
+OUString ObjectIdentifier::createClassifiedIdentifierForObject(
+ const rtl::Reference<::chart::Axis>& xAxis
+ , const rtl::Reference<::chart::ChartModel>& xChartModel )
+{
+ try
+ {
+ //axis
+ if( xAxis.is() )
+ {
+ rtl::Reference< BaseCoordinateSystem > xCooSys(
AxisHelper::getCoordinateSystemOfAxis( xAxis, ChartModelHelper::findDiagram(
xChartModel ) ) );
+ OUString aCooSysParticle( createParticleForCoordinateSystem(
xCooSys, xChartModel ) );
+ sal_Int32 nDimensionIndex=-1;
+ sal_Int32 nAxisIndex=-1;
+ AxisHelper::getIndicesForAxis( xAxis, xCooSys, nDimensionIndex,
nAxisIndex );
+ OUString aAxisParticle( createParticleForAxis( nDimensionIndex,
nAxisIndex ) );
+ return createClassifiedIdentifierForParticles( aCooSysParticle,
aAxisParticle );
+ }
+ }
+ catch(const uno::Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("chart2");
+ }
+
+ OSL_FAIL("give object could not be identified in
createClassifiedIdentifierForObject");
+
+ return OUString();
+}
+
OUString ObjectIdentifier::createClassifiedIdentifierForParticle(
const OUString& rParticle )
{
@@ -1108,10 +1137,10 @@ Reference< beans::XPropertySet >
ObjectIdentifier::getObjectPropertySet(
sal_Int32 nAxisIndex = -1;
lcl_parseAxisIndices( nDimensionIndex, nAxisIndex,
rObjectCID );
- Reference< chart2::XAxis > xAxis(
- AxisHelper::getAxis( nDimensionIndex, nAxisIndex,
xCooSys ) );
+ rtl::Reference< Axis > xAxis =
+ AxisHelper::getAxis( nDimensionIndex, nAxisIndex,
xCooSys );
if( xAxis.is() )
- xObjectProperties.set( xAxis, uno::UNO_QUERY );
+ xObjectProperties = xAxis;
}
break;
case OBJECTTYPE_AXIS_UNITLABEL:
@@ -1226,7 +1255,7 @@ Reference< beans::XPropertySet >
ObjectIdentifier::getObjectPropertySet(
return xObjectProperties;
}
-Reference< XAxis > ObjectIdentifier::getAxisForCID(
+rtl::Reference< Axis > ObjectIdentifier::getAxisForCID(
const OUString& rObjectCID
, const rtl::Reference<::chart::ChartModel>& xChartModel )
{
diff --git a/chart2/source/tools/ReferenceSizeProvider.cxx
b/chart2/source/tools/ReferenceSizeProvider.cxx
index a8b35f008b5b..0b99582dde70 100644
--- a/chart2/source/tools/ReferenceSizeProvider.cxx
+++ b/chart2/source/tools/ReferenceSizeProvider.cxx
@@ -24,6 +24,7 @@
#include <DataSeries.hxx>
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/chart2/XTitled.hpp>
@@ -245,19 +246,13 @@ ReferenceSizeProvider::AutoResizeState
ReferenceSizeProvider::getAutoResizeState
return eResult;
// Axes (incl. Axis Titles)
- const Sequence< Reference< XAxis > > aAxes(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
- for( Reference< XAxis > const & axis : aAxes )
+ const std::vector< rtl::Reference< Axis > > aAxes =
AxisHelper::getAllAxesOfDiagram( xDiagram );
+ for( rtl::Reference< Axis > const & axis : aAxes )
{
- Reference< beans::XPropertySet > xProp( axis, uno::UNO_QUERY );
- if( xProp.is())
- getAutoResizeFromPropSet( xProp, eResult );
- Reference< XTitled > xTitled( axis, uno::UNO_QUERY );
- if( xTitled.is())
- {
- impl_getAutoResizeFromTitled( xTitled, eResult );
- if( eResult == AUTO_RESIZE_AMBIGUOUS )
- return eResult;
- }
+ getAutoResizeFromPropSet( axis, eResult );
+ impl_getAutoResizeFromTitled( axis, eResult );
+ if( eResult == AUTO_RESIZE_AMBIGUOUS )
+ return eResult;
}
// DataSeries/Points
@@ -323,13 +318,11 @@ void ReferenceSizeProvider::setAutoResizeState(
ReferenceSizeProvider::AutoResiz
setValuesAtPropertySet( xLegendProp );
// Axes (incl. Axis Titles)
- const Sequence< Reference< XAxis > > aAxes(
AxisHelper::getAllAxesOfDiagram( xDiagram ) );
- for( Reference< XAxis > const & axis : aAxes )
+ const std::vector< rtl::Reference< Axis > > aAxes =
AxisHelper::getAllAxesOfDiagram( xDiagram );
+ for( rtl::Reference< Axis > const & axis : aAxes )
{
- Reference< beans::XPropertySet > xProp( axis, uno::UNO_QUERY );
- if( xProp.is())
- setValuesAtPropertySet( xProp );
- impl_setValuesAtTitled( Reference< XTitled >( axis, uno::UNO_QUERY ));
+ setValuesAtPropertySet( axis );
+ impl_setValuesAtTitled( axis );
}
// DataSeries/Points
diff --git a/chart2/source/tools/TitleHelper.cxx
b/chart2/source/tools/TitleHelper.cxx
index 06ffe005d67f..58d4d6980aa6 100644
--- a/chart2/source/tools/TitleHelper.cxx
+++ b/chart2/source/tools/TitleHelper.cxx
@@ -20,6 +20,7 @@
#include <TitleHelper.hxx>
#include <ChartModel.hxx>
#include <ChartModelHelper.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <DiagramHelper.hxx>
#include <Diagram.hxx>
@@ -65,23 +66,23 @@ uno::Reference< XTitled > lcl_getTitleParentFromDiagram(
break;
case TitleHelper::X_AXIS_TITLE:
if( xDiagram.is())
- xResult.set( AxisHelper::getAxis( 0, true, xDiagram ),
uno::UNO_QUERY );
+ xResult = AxisHelper::getAxis( 0, true, xDiagram );
break;
case TitleHelper::Y_AXIS_TITLE:
... etc. - the rest is truncated