use more concrete types in chart2, Diagram

Change-Id: Ieaee7c8381c19e3bfd3560d2f674bebf49afac56
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129156
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/chart2/source/controller/dialogs/DialogModel.cxx b/chart2/source/controller/dialogs/DialogModel.cxx
index ddf422d..08b171f 100644
--- a/chart2/source/controller/dialogs/DialogModel.cxx
+++ b/chart2/source/controller/dialogs/DialogModel.cxx
@@ -779,7 +779,7 @@ void DialogModel::applyInterpretedData(
        return;

    m_aTimerTriggeredControllerLock.startTimer();
    Reference< XDiagram > xDiagram( m_xChartDocument->getFirstDiagram());
    rtl::Reference< Diagram > xDiagram( m_xChartDocument->getFirstChartDiagram());
    if( !xDiagram.is())
        return;

@@ -850,10 +850,7 @@ sal_Int32 DialogModel::countSeries() const

ChartModel& DialogModel::getModel() const
{
    uno::Reference< frame::XModel > xModel = getChartModel();
    ChartModel* pModel = dynamic_cast<ChartModel*>(xModel.get());
    assert(pModel);
    return *pModel;
    return *m_xChartDocument;
}

} //  namespace chart
diff --git a/chart2/source/controller/main/ChartController_Tools.cxx b/chart2/source/controller/main/ChartController_Tools.cxx
index bf8caa1..cf42d00 100644
--- a/chart2/source/controller/main/ChartController_Tools.cxx
+++ b/chart2/source/controller/main/ChartController_Tools.cxx
@@ -610,20 +610,16 @@ bool ChartController::executeDispatch_Delete()
            }
            case OBJECTTYPE_LEGEND:
            {
                uno::Reference< chart2::XDiagram > xDiagram( xChartDoc->getFirstDiagram());
                rtl::Reference< Diagram > xDiagram( xChartDoc->getFirstChartDiagram());
                if( xDiagram.is())
                {
                    uno::Reference< beans::XPropertySet > xLegendProp( xDiagram->getLegend(), uno::UNO_QUERY );
                    if( xLegendProp.is())
                    {
                        UndoGuard aUndoGuard(
                            ActionDescriptionProvider::createDescription(
                                ActionDescriptionProvider::ActionType::Delete, SchResId( STR_OBJECT_LEGEND )),
                            m_xUndoManager );
                        xLegendProp->setPropertyValue( "Show", uno::Any( false ));
                        bReturn = true;
                        aUndoGuard.commit();
                    }
                    UndoGuard aUndoGuard(
                        ActionDescriptionProvider::createDescription(
                            ActionDescriptionProvider::ActionType::Delete, SchResId( STR_OBJECT_LEGEND )),
                        m_xUndoManager );
                    xDiagram->setPropertyValue( "Show", uno::Any( false ));
                    bReturn = true;
                    aUndoGuard.commit();
                }
                break;
            }
diff --git a/chart2/source/controller/main/ChartDropTargetHelper.cxx b/chart2/source/controller/main/ChartDropTargetHelper.cxx
index ceb5995..dd53e2c 100644
--- a/chart2/source/controller/main/ChartDropTargetHelper.cxx
+++ b/chart2/source/controller/main/ChartDropTargetHelper.cxx
@@ -20,6 +20,7 @@
#include "ChartDropTargetHelper.hxx"
#include <DataSourceHelper.hxx>
#include <ChartModel.hxx>
#include <Diagram.hxx>

#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/chart2/data/XDataProvider.hpp>
@@ -119,7 +120,7 @@ sal_Int8 ChartDropTargetHelper::ExecuteDrop( const ExecuteDropEvent& rEvt )
                            // @todo: get the title somehow and compare it to
                            // aDocName if successful (the document is the
                            // parent)
                            Reference< chart2::XDiagram > xDiagram( m_xChartDocument->getFirstDiagram() );
                            rtl::Reference< Diagram > xDiagram = m_xChartDocument->getFirstChartDiagram();
                            Reference< chart2::data::XDataProvider > xDataProvider( m_xChartDocument->getDataProvider());
                            if( xDataProvider.is() && xDiagram.is() &&
                                DataSourceHelper::allArgumentsForRectRangeDetected( m_xChartDocument ))
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx
index d017bac..9f22619 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -836,7 +836,7 @@ void SAL_CALL ChartModel::setArguments( const Sequence< beans::PropertyValue >& 
            Reference< chart2::data::XDataSource > xDataSource( m_xDataProvider->createDataSource( aArguments ) );
            if( xDataSource.is() )
            {
                Reference< chart2::XDiagram > xDia( getFirstDiagram() );
                rtl::Reference< Diagram > xDia = getFirstChartDiagram();
                if( !xDia.is() )
                {
                    rtl::Reference< ::chart::ChartTypeTemplate > xTemplate( impl_createDefaultChartTypeTemplate() );
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx
index 72e6fe6..79aab23 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -56,7 +56,7 @@ namespace
void lcl_applyDefaultStyle(
    const Reference< XDataSeries > & xSeries,
    sal_Int32 nIndex,
    const Reference< XDiagram > & xDiagram )
    const rtl::Reference< ::chart::Diagram > & xDiagram )
{
    // @deprecated: correct default color should be found by view without
    // setting color as hard attribute
@@ -107,18 +107,17 @@ void lcl_resetLabelPlacementIfDefault( const Reference< beans::XPropertySet >& x
    }
}

void lcl_ensureCorrectMissingValueTreatment( const Reference< chart2::XDiagram >& xDiagram, const rtl::Reference< ::chart::ChartType >& xChartType )
void lcl_ensureCorrectMissingValueTreatment( const rtl::Reference< ::chart::Diagram >& xDiagram, const rtl::Reference< ::chart::ChartType >& xChartType )
{
    Reference< beans::XPropertySet > xDiaProp( xDiagram, uno::UNO_QUERY );
    if( xDiaProp.is() )
    if( xDiagram.is() )
    {
        uno::Sequence < sal_Int32 > aAvailableMissingValueTreatment(
            ::chart::ChartTypeHelper::getSupportedMissingValueTreatments( xChartType ) );

        if( aAvailableMissingValueTreatment.hasElements() )
            xDiaProp->setPropertyValue( "MissingValueTreatment", uno::Any( aAvailableMissingValueTreatment[0] ) );
            xDiagram->setPropertyValue( "MissingValueTreatment", uno::Any( aAvailableMissingValueTreatment[0] ) );
        else
            xDiaProp->setPropertyValue( "MissingValueTreatment", uno::Any() );
            xDiagram->setPropertyValue( "MissingValueTreatment", uno::Any() );
    }
}