Kaydet (Commit) 94273107 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Scope level reduction & explain what the max axis index really is.

The concept of axis index and dimension index is quite confusing in the
chart2 code....

Change-Id: I035af0a225396bd5394089d6f584f78dcaf0ad31
üst 139f0f44
......@@ -276,7 +276,15 @@ private:
SeriesPlottersType m_aSeriesPlotterList;
std::vector< VCoordinateSystem* >& m_rVCooSysList;
::std::map< uno::Reference< XAxis >, AxisUsage > m_aAxisUsageList;
/**
* Max axis index of all dimensions. Currently this can be either 0 or 1
* since we only support primary and secondary axes per dimension. The
* value of 0 means all dimensions have only primary axis, while 1 means
* at least one dimension has a secondary axis.
*/
sal_Int32 m_nMaxAxisIndex;
bool m_bChartTypeUsesShiftedCategoryPositionPerDefault;
sal_Int32 m_nDefaultDateNumberFormat;
};
......@@ -778,85 +786,85 @@ void SeriesPlotterContainer::AdaptScaleOfYAxisWithoutAttachedSeries( ChartModel&
continue;
uno::Reference< XDiagram > xDiagram( rModel.getFirstDiagram() );
if( xDiagram.is() )
if (!xDiagram.is())
continue;
bool bSeriesAttachedToThisAxis = false;
sal_Int32 nAttachedAxisIndex = -1;
{
bool bSeriesAttachedToThisAxis = false;
sal_Int32 nAttachedAxisIndex = -1;
::std::vector< Reference< XDataSeries > > aSeriesVector( DiagramHelper::getDataSeriesFromDiagram( xDiagram ) );
::std::vector< Reference< XDataSeries > >::const_iterator aIter = aSeriesVector.begin();
for( ; aIter != aSeriesVector.end(); ++aIter )
{
::std::vector< Reference< XDataSeries > > aSeriesVector( DiagramHelper::getDataSeriesFromDiagram( xDiagram ) );
::std::vector< Reference< XDataSeries > >::const_iterator aIter = aSeriesVector.begin();
for( ; aIter != aSeriesVector.end(); ++aIter )
sal_Int32 nCurrentIndex = DataSeriesHelper::getAttachedAxisIndex( *aIter );
if( nAxisIndex == nCurrentIndex )
{
sal_Int32 nCurrentIndex = DataSeriesHelper::getAttachedAxisIndex( *aIter );
if( nAxisIndex == nCurrentIndex )
{
bSeriesAttachedToThisAxis = true;
break;
}
else if( nAttachedAxisIndex<0 || nAttachedAxisIndex>nCurrentIndex )
nAttachedAxisIndex=nCurrentIndex;
bSeriesAttachedToThisAxis = true;
break;
}
else if( nAttachedAxisIndex<0 || nAttachedAxisIndex>nCurrentIndex )
nAttachedAxisIndex=nCurrentIndex;
}
}
if( !bSeriesAttachedToThisAxis && nAttachedAxisIndex >= 0 )
{
for( size_t nC = 0; nC < aVCooSysList_Y.size(); ++nC )
{
aVCooSysList_Y[nC]->prepareAutomaticAxisScaling( rAxisUsage.aAutoScaling, 1, nAttachedAxisIndex );
if (bSeriesAttachedToThisAxis || nAttachedAxisIndex < 0)
continue;
ExplicitScaleData aExplicitScaleSource = aVCooSysList_Y[nC]->getExplicitScale( 1,nAttachedAxisIndex );
ExplicitIncrementData aExplicitIncrementSource = aVCooSysList_Y[nC]->getExplicitIncrement( 1,nAttachedAxisIndex );
for( size_t nC = 0; nC < aVCooSysList_Y.size(); ++nC )
{
aVCooSysList_Y[nC]->prepareAutomaticAxisScaling( rAxisUsage.aAutoScaling, 1, nAttachedAxisIndex );
ExplicitScaleData aExplicitScaleDest = aVCooSysList_Y[nC]->getExplicitScale( 1,nAxisIndex );;
ExplicitIncrementData aExplicitIncrementDest = aVCooSysList_Y[nC]->getExplicitIncrement( 1,nAxisIndex );;
ExplicitScaleData aExplicitScaleSource = aVCooSysList_Y[nC]->getExplicitScale( 1,nAttachedAxisIndex );
ExplicitIncrementData aExplicitIncrementSource = aVCooSysList_Y[nC]->getExplicitIncrement( 1,nAttachedAxisIndex );
aExplicitScaleDest.Orientation = aExplicitScaleSource.Orientation;
aExplicitScaleDest.Scaling = aExplicitScaleSource.Scaling;
aExplicitScaleDest.AxisType = aExplicitScaleSource.AxisType;
ExplicitScaleData aExplicitScaleDest = aVCooSysList_Y[nC]->getExplicitScale( 1,nAxisIndex );;
ExplicitIncrementData aExplicitIncrementDest = aVCooSysList_Y[nC]->getExplicitIncrement( 1,nAxisIndex );;
aExplicitIncrementDest.BaseValue = aExplicitIncrementSource.BaseValue;
aExplicitScaleDest.Orientation = aExplicitScaleSource.Orientation;
aExplicitScaleDest.Scaling = aExplicitScaleSource.Scaling;
aExplicitScaleDest.AxisType = aExplicitScaleSource.AxisType;
ScaleData aScale( rAxisUsage.aAutoScaling.getScale() );
if( !aScale.Minimum.hasValue() )
{
bool bNewMinOK = true;
double fMax=0.0;
if( aScale.Maximum >>= fMax )
bNewMinOK = (aExplicitScaleSource.Minimum <= fMax);
if( bNewMinOK )
aExplicitScaleDest.Minimum = aExplicitScaleSource.Minimum;
}
else
aExplicitIncrementDest.BaseValue = aExplicitScaleDest.Minimum;
aExplicitIncrementDest.BaseValue = aExplicitIncrementSource.BaseValue;
if( !aScale.Maximum.hasValue() )
{
bool bNewMaxOK = true;
double fMin=0.0;
if( aScale.Minimum >>= fMin )
bNewMaxOK = (fMin <= aExplicitScaleSource.Maximum);
if( bNewMaxOK )
aExplicitScaleDest.Maximum = aExplicitScaleSource.Maximum;
}
if( !aScale.Origin.hasValue() )
aExplicitScaleDest.Origin = aExplicitScaleSource.Origin;
ScaleData aScale( rAxisUsage.aAutoScaling.getScale() );
if( !aScale.Minimum.hasValue() )
{
bool bNewMinOK = true;
double fMax=0.0;
if( aScale.Maximum >>= fMax )
bNewMinOK = (aExplicitScaleSource.Minimum <= fMax);
if( bNewMinOK )
aExplicitScaleDest.Minimum = aExplicitScaleSource.Minimum;
}
else
aExplicitIncrementDest.BaseValue = aExplicitScaleDest.Minimum;
if( !aScale.IncrementData.Distance.hasValue() )
aExplicitIncrementDest.Distance = aExplicitIncrementSource.Distance;
if( !aScale.Maximum.hasValue() )
{
bool bNewMaxOK = true;
double fMin=0.0;
if( aScale.Minimum >>= fMin )
bNewMaxOK = (fMin <= aExplicitScaleSource.Maximum);
if( bNewMaxOK )
aExplicitScaleDest.Maximum = aExplicitScaleSource.Maximum;
}
if( !aScale.Origin.hasValue() )
aExplicitScaleDest.Origin = aExplicitScaleSource.Origin;
bool bAutoMinorInterval = true;
if( aScale.IncrementData.SubIncrements.getLength() )
bAutoMinorInterval = !( aScale.IncrementData.SubIncrements[0].IntervalCount.hasValue() );
if( bAutoMinorInterval )
{
if( !aExplicitIncrementDest.SubIncrements.empty() && !aExplicitIncrementSource.SubIncrements.empty() )
aExplicitIncrementDest.SubIncrements[0].IntervalCount =
aExplicitIncrementSource.SubIncrements[0].IntervalCount;
}
if( !aScale.IncrementData.Distance.hasValue() )
aExplicitIncrementDest.Distance = aExplicitIncrementSource.Distance;
aVCooSysList_Y[nC]->setExplicitScaleAndIncrement( 1, nAxisIndex, aExplicitScaleDest, aExplicitIncrementDest );
}
bool bAutoMinorInterval = true;
if( aScale.IncrementData.SubIncrements.getLength() )
bAutoMinorInterval = !( aScale.IncrementData.SubIncrements[0].IntervalCount.hasValue() );
if( bAutoMinorInterval )
{
if( !aExplicitIncrementDest.SubIncrements.empty() && !aExplicitIncrementSource.SubIncrements.empty() )
aExplicitIncrementDest.SubIncrements[0].IntervalCount =
aExplicitIncrementSource.SubIncrements[0].IntervalCount;
}
aVCooSysList_Y[nC]->setExplicitScaleAndIncrement( 1, nAxisIndex, aExplicitScaleDest, aExplicitIncrementDest );
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment