*** orig/chart2/source/controller/dialogs/DataBrowser.cxx Wed Jul 25 16:30:12 2007 --- new/chart2/source/controller/dialogs/DataBrowser.cxx Wed Jun 11 14:29:39 2008 *************** *** 1231,1240 **** SetUpdateMode( FALSE ); EditBrowseBox::EndScroll(); ! ImplAdjustHeaderControls(); SetUpdateMode( bLastUpdateMode ); } void DataBrowser::ImplAdjustHeaderControls() { sal_uInt16 nColCount = this->GetColumnCount(); --- 1231,1281 ---- SetUpdateMode( FALSE ); EditBrowseBox::EndScroll(); ! RenewSeriesHeaders(); ! ! long nY = GetDataWindow().GetPosPixel().Y(); ! GetDataWindow().SetPosPixel( Point( 0, nY ) ); ! SetUpdateMode( bLastUpdateMode ); } + void DataBrowser::RenewSeriesHeaders() + { + Window * pWin = this->GetParent(); + if( !pWin ) + pWin = this; + + clearHeaders(); + DataBrowserModel::tDataHeaderVector aHeaders( m_apDataBrowserModel->getDataHeaders()); + Link aFocusLink( LINK( this, DataBrowser, SeriesHeaderGotFocus )); + Link aSeriesHeaderChangedLink( LINK( this, DataBrowser, SeriesHeaderChanged )); + bool bIsHighContrast = pWin ? (pWin->GetDisplayBackground().GetColor().IsDark()) : false; + + for( DataBrowserModel::tDataHeaderVector::const_iterator aIt( aHeaders.begin()); + aIt != aHeaders.end(); ++aIt ) + { + ::boost::shared_ptr< impl::SeriesHeader > spHeader( new impl::SeriesHeader( pWin )); + Reference< beans::XPropertySet > xSeriesProp( aIt->m_xDataSeries, uno::UNO_QUERY ); + sal_Int32 nColor = 0; + if( xSeriesProp.is() && + ( xSeriesProp->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Color"))) >>= nColor )) + spHeader->SetColor( Color( nColor )); + spHeader->SetChartType( aIt->m_xChartType, aIt->m_bSwapXAndYAxis, bIsHighContrast ); + spHeader->SetSeriesName( + String( DataSeriesHelper::getDataSeriesLabel( + aIt->m_xDataSeries, + (aIt->m_xChartType.is() ? + aIt->m_xChartType->getRoleOfSequenceForSeriesLabel() : + OUString( RTL_CONSTASCII_USTRINGPARAM("values-y")))))); + spHeader->SetRange( aIt->m_nStartColumn + 1, aIt->m_nEndColumn + 1 ); + spHeader->SetGetFocusHdl( aFocusLink ); + spHeader->SetEditChangedHdl( aSeriesHeaderChangedLink ); + m_aSeriesHeaders.push_back( spHeader ); + } + + ImplAdjustHeaderControls(); + } + void DataBrowser::ImplAdjustHeaderControls() { sal_uInt16 nColCount = this->GetColumnCount(); *** orig/chart2/source/controller/dialogs/DataBrowser.hxx Tue Sep 18 22:53:14 2007 --- new/chart2/source/controller/dialogs/DataBrowser.hxx Wed Jun 11 14:11:03 2008 *************** *** 177,182 **** --- 177,184 ---- sal_uInt32 GetNumberFormatKey( sal_Int32 nRow, sal_uInt16 nCol ) const; + void RenewSeriesHeaders(); + private: ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartDocument > m_xChartDoc;