summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/source/controller/dialogs/DataBrowser.cxx32
-rw-r--r--chart2/source/controller/dialogs/DataBrowser.hxx4
-rw-r--r--chart2/source/controller/dialogs/DataBrowserModel.cxx83
-rw-r--r--chart2/source/controller/dialogs/DataBrowserModel.hxx10
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.cxx52
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.hrc9
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.src8
-rw-r--r--chart2/source/controller/inc/HelpIds.hrc11
8 files changed, 93 insertions, 116 deletions
diff --git a/chart2/source/controller/dialogs/DataBrowser.cxx b/chart2/source/controller/dialogs/DataBrowser.cxx
index c392fd6294c6..5c97fa17b721 100644
--- a/chart2/source/controller/dialogs/DataBrowser.cxx
+++ b/chart2/source/controller/dialogs/DataBrowser.cxx
@@ -564,20 +564,6 @@ bool DataBrowser::MaySwapColumns() const
&& !m_apDataBrowserModel->isCategoriesColumn( nColIdx );
}
-// bool DataBrowser::MaySortRow() const
-// {
-// // not implemented
-// return false;
-// // return ! IsReadOnly() && ( GetCurRow() >= 0 );
-// }
-
-// bool DataBrowser::MaySortColumn() const
-// {
-// // not implemented
-// return false;
-// // return ! IsReadOnly() && ( GetCurColumnId() > 1 );
-// }
-
void DataBrowser::clearHeaders()
{
::std::for_each( m_aSeriesHeaders.begin(), m_aSeriesHeaders.end(), impl::applyChangesFunctor());
@@ -883,7 +869,23 @@ void DataBrowser::InsertColumn()
if( IsModified() )
SaveModified();
- m_apDataBrowserModel->insertDataSeriesOrComplexCategoryLevel( nColIdx );
+ m_apDataBrowserModel->insertDataSeries( nColIdx );
+ RenewTable();
+ }
+}
+
+void DataBrowser::InsertTextColumn()
+{
+ sal_Int32 nColIdx = lcl_getColumnInDataOrHeader( GetCurColumnId(), m_aSeriesHeaders );
+
+ if( nColIdx >= 0 &&
+ m_apDataBrowserModel.get())
+ {
+ // save changes made to edit-field
+ if( IsModified() )
+ SaveModified();
+
+ m_apDataBrowserModel->insertComplexCategoryLevel( nColIdx );
RenewTable();
}
}
diff --git a/chart2/source/controller/dialogs/DataBrowser.hxx b/chart2/source/controller/dialogs/DataBrowser.hxx
index a4147af84fcb..8157a75f2c0e 100644
--- a/chart2/source/controller/dialogs/DataBrowser.hxx
+++ b/chart2/source/controller/dialogs/DataBrowser.hxx
@@ -124,12 +124,10 @@ public:
bool MaySwapRows() const;
bool MaySwapColumns() const;
-// bool MaySortRow() const;
-// bool MaySortColumn() const;
-
// mutators mutating data
void InsertRow();
void InsertColumn();
+ void InsertTextColumn();
void RemoveRow();
void RemoveColumn();
diff --git a/chart2/source/controller/dialogs/DataBrowserModel.cxx b/chart2/source/controller/dialogs/DataBrowserModel.cxx
index 49c269c7e7e5..841aa007ed90 100644
--- a/chart2/source/controller/dialogs/DataBrowserModel.cxx
+++ b/chart2/source/controller/dialogs/DataBrowserModel.cxx
@@ -320,44 +320,23 @@ private:
};
}
-void DataBrowserModel::insertDataSeriesOrComplexCategoryLevel( sal_Int32 nAfterColumnIndex )
+void DataBrowserModel::insertDataSeries( sal_Int32 nAfterColumnIndex )
{
OSL_ASSERT( m_apDialogModel.get());
Reference< chart2::XInternalDataProvider > xDataProvider(
m_apDialogModel->getDataProvider(), uno::UNO_QUERY );
if( xDataProvider.is())
{
+ if( isCategoriesColumn(nAfterColumnIndex) )
+ nAfterColumnIndex = getCategoryColumnCount()-1;
+
sal_Int32 nStartCol = 0;
Reference< chart2::XDiagram > xDiagram( ChartModelHelper::findDiagram( m_xChartDocument ));
+ Reference< chart2::XChartType > xChartType;
Reference< chart2::XDataSeries > xSeries;
if( static_cast< tDataColumnVector::size_type >( nAfterColumnIndex ) <= m_aColumns.size())
xSeries.set( m_aColumns[nAfterColumnIndex].m_xDataSeries );
- bool bCreateASeries = true;
- if( !xSeries.is() )
- {
- //if the cursor is in a categories column -> create a categories column be default
- bCreateASeries = false;
- //only in case we do not have an series yet, we create a series
- if( m_aColumns.empty() )
- bCreateASeries = true;
- else if( !m_aColumns.back().m_xDataSeries.is() )
- bCreateASeries = true;
- }
-
- if(!bCreateASeries)
- {
- //create a new complex category level column
-
- m_apDialogModel->startControllerLockTimer();
- ControllerLockGuard aLockedControllers( Reference< frame::XModel >( m_xChartDocument, uno::UNO_QUERY ) );
- xDataProvider->insertComplexCategoryLevel( nAfterColumnIndex+1 );
- updateFromModel();
- return;
- }
-
- Reference< chart2::XChartType > xChartType;
-
sal_Int32 nSeriesNumberFormat = 0;
if( xSeries.is())
{
@@ -382,7 +361,7 @@ void DataBrowserModel::insertDataSeriesOrComplexCategoryLevel( sal_Int32 nAfterC
{
sal_Int32 nOffset = 0;
if( xDiagram.is() && lcl_ShowCategories( xDiagram ))
- ++nOffset;
+ nOffset=getCategoryColumnCount();
// get shared sequences of current series
Reference< chart2::XDataSeriesContainer > xSeriesCnt( xChartType, uno::UNO_QUERY );
lcl_tSharedSeqVec aSharedSequences;
@@ -452,6 +431,30 @@ void DataBrowserModel::insertDataSeriesOrComplexCategoryLevel( sal_Int32 nAfterC
}
}
+void DataBrowserModel::insertComplexCategoryLevel( sal_Int32 nAfterColumnIndex )
+{
+ //create a new text column for complex categories
+
+ OSL_ASSERT( m_apDialogModel.get());
+ Reference< chart2::XInternalDataProvider > xDataProvider( m_apDialogModel->getDataProvider(), uno::UNO_QUERY );
+ if( xDataProvider.is() )
+ {
+ if( !isCategoriesColumn(nAfterColumnIndex) )
+ nAfterColumnIndex = getCategoryColumnCount()-1;
+
+ if(nAfterColumnIndex<0)
+ {
+ OSL_ENSURE( false, "wrong index for category level insertion" );
+ return;
+ }
+
+ m_apDialogModel->startControllerLockTimer();
+ ControllerLockGuard aLockedControllers( Reference< frame::XModel >( m_xChartDocument, uno::UNO_QUERY ) );
+ xDataProvider->insertComplexCategoryLevel( nAfterColumnIndex+1 );
+ updateFromModel();
+ }
+}
+
void DataBrowserModel::removeDataSeriesOrComplexCategoryLevel( sal_Int32 nAtColumnIndex )
{
OSL_ASSERT( m_apDialogModel.get());
@@ -742,11 +745,18 @@ bool DataBrowserModel::isCategoriesColumn( sal_Int32 nColumnIndex ) const
return bIsCategories;
}
-Reference< chart2::data::XLabeledDataSequence >
- DataBrowserModel::getCategories() const throw()
+sal_Int32 DataBrowserModel::getCategoryColumnCount()
{
- OSL_ASSERT( m_apDialogModel.get());
- return m_apDialogModel->getCategories();
+ sal_Int32 nLastTextColumnIndex = -1;
+ tDataColumnVector::const_iterator aIt = m_aColumns.begin();
+ for( ; aIt != m_aColumns.end(); ++aIt )
+ {
+ if( !aIt->m_xDataSeries.is() )
+ nLastTextColumnIndex++;
+ else
+ break;
+ }
+ return nLastTextColumnIndex+1;
}
const DataBrowserModel::tDataHeaderVector& DataBrowserModel::getDataHeaders() const
@@ -789,13 +799,10 @@ void DataBrowserModel::updateFromModel()
tDataColumn aCategories;
aCategories.m_xLabeledDataSequence.set( xCategories );
- if( nL == 0 )
- {
- if( lcl_ShowCategoriesAsDataLabel( xDiagram ))
- aCategories.m_aUIRoleName = DialogModel::GetRoleDataLabel();
- else
- aCategories.m_aUIRoleName = lcl_getUIRoleName( xCategories );
- }
+ if( lcl_ShowCategoriesAsDataLabel( xDiagram ))
+ aCategories.m_aUIRoleName = DialogModel::GetRoleDataLabel();
+ else
+ aCategories.m_aUIRoleName = lcl_getUIRoleName( xCategories );
aCategories.m_eCellType = TEXT;
m_aColumns.push_back( aCategories );
++nHeaderStart;
diff --git a/chart2/source/controller/dialogs/DataBrowserModel.hxx b/chart2/source/controller/dialogs/DataBrowserModel.hxx
index 2ae2a63ae6cf..eed123482178 100644
--- a/chart2/source/controller/dialogs/DataBrowserModel.hxx
+++ b/chart2/source/controller/dialogs/DataBrowserModel.hxx
@@ -61,7 +61,11 @@ public:
/** Inserts a new data series after the data series to which the data column
with index nAfterColumnIndex belongs.
*/
- void insertDataSeriesOrComplexCategoryLevel( sal_Int32 nAfterColumnIndex );
+ void insertDataSeries( sal_Int32 nAfterColumnIndex );
+
+ /** Inserts a new text column for complex categories.
+ */
+ void insertComplexCategoryLevel( sal_Int32 nAfterColumnIndex );
/** Removes a data series to which the data column with index nAtColumnIndex
belongs.
@@ -157,9 +161,7 @@ private:
sal_Int32 & rInOutSequenceIndex,
sal_Int32 & rInOutHeaderEnd );
- ::com::sun::star::uno::Reference<
- ::com::sun::star::chart2::data::XLabeledDataSequence >
- getCategories() const throw();
+ sal_Int32 getCategoryColumnCount();
::com::sun::star::uno::Reference<
::com::sun::star::chart2::XChartDocument > m_xChartDocument;
diff --git a/chart2/source/controller/dialogs/dlg_DataEditor.cxx b/chart2/source/controller/dialogs/dlg_DataEditor.cxx
index f3b601453bee..e1870c139d5a 100644
--- a/chart2/source/controller/dialogs/dlg_DataEditor.cxx
+++ b/chart2/source/controller/dialogs/dlg_DataEditor.cxx
@@ -147,34 +147,22 @@ IMPL_LINK( DataEditor, ToolboxHdl, void *, EMPTYARG )
break;
case TBI_DATA_INSERT_COL:
m_apBrwData->InsertColumn();
-// ImplAdjustHeaderControls( true /* bRefreshFromModel */ );
+ break;
+ case TBI_DATA_INSERT_TEXT_COL:
+ m_apBrwData->InsertTextColumn();
break;
case TBI_DATA_DELETE_ROW:
m_apBrwData->RemoveRow();
break;
case TBI_DATA_DELETE_COL:
m_apBrwData->RemoveColumn();
-// ImplAdjustHeaderControls( true /* bRefreshFromModel */ );
break;
case TBI_DATA_SWAP_COL :
m_apBrwData->SwapColumn ();
-// ImplAdjustHeaderControls( true /* bRefreshFromModel */ );
break;
case TBI_DATA_SWAP_ROW :
m_apBrwData->SwapRow ();
break;
-// case TBI_DATA_SORT_COL :
-// m_apBrwData->QuickSortCol();
-// break;
-// case TBI_DATA_SORT_ROW :
-// m_apBrwData->QuickSortRow();
-// break;
-// case TBI_DATA_SORT_TABLE_COL :
-// m_apBrwData->QuickSortTableCols ();
-// break;
-// case TBI_DATA_SORT_TABLE_ROW :
-// m_apBrwData->QuickSortTableRows ();
-// break;
}
return 0;
@@ -186,27 +174,16 @@ IMPL_LINK( DataEditor, BrowserCursorMovedHdl, void *, EMPTYARG )
if( m_bReadOnly )
return 0;
- if( m_apBrwData->IsEnableItem() )
- {
- m_aTbxData.EnableItem( TBI_DATA_INSERT_ROW, m_apBrwData->MayInsertRow() );
- m_aTbxData.EnableItem( TBI_DATA_INSERT_COL, m_apBrwData->MayInsertColumn() );
- m_aTbxData.EnableItem( TBI_DATA_DELETE_ROW, m_apBrwData->MayDeleteRow() );
- m_aTbxData.EnableItem( TBI_DATA_DELETE_COL, m_apBrwData->MayDeleteColumn() );
+ bool bIsDataValid = m_apBrwData->IsEnableItem();
- m_aTbxData.EnableItem( TBI_DATA_SWAP_COL, m_apBrwData->MaySwapColumns() );
- m_aTbxData.EnableItem( TBI_DATA_SWAP_ROW, m_apBrwData->MaySwapRows() );
- }
- else
- {
- m_aTbxData.EnableItem( TBI_DATA_INSERT_ROW, FALSE );
- m_aTbxData.EnableItem( TBI_DATA_INSERT_COL, FALSE );
- m_aTbxData.EnableItem( TBI_DATA_SWAP_COL, FALSE );
- m_aTbxData.EnableItem( TBI_DATA_SWAP_ROW, FALSE );
- }
-// m_aTbxData.EnableItem( TBI_DATA_SORT_COL, m_apBrwData->MaySortColumn() );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_ROW, m_apBrwData->MaySortRow() );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_TABLE_COL, m_apBrwData->MaySortColumn() );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_TABLE_ROW, m_apBrwData->MaySortRow() );
+ m_aTbxData.EnableItem( TBI_DATA_INSERT_ROW, bIsDataValid && m_apBrwData->MayInsertRow() );
+ m_aTbxData.EnableItem( TBI_DATA_INSERT_COL, bIsDataValid && m_apBrwData->MayInsertColumn() );
+ m_aTbxData.EnableItem( TBI_DATA_INSERT_TEXT_COL, bIsDataValid && m_apBrwData->MayInsertColumn() );
+ m_aTbxData.EnableItem( TBI_DATA_DELETE_ROW, m_apBrwData->MayDeleteRow() );
+ m_aTbxData.EnableItem( TBI_DATA_DELETE_COL, m_apBrwData->MayDeleteColumn() );
+
+ m_aTbxData.EnableItem( TBI_DATA_SWAP_COL, bIsDataValid && m_apBrwData->MaySwapColumns() );
+ m_aTbxData.EnableItem( TBI_DATA_SWAP_ROW, bIsDataValid && m_apBrwData->MaySwapRows() );
return 0;
}
@@ -219,14 +196,11 @@ void DataEditor::SetReadOnly( bool bReadOnly )
{
m_aTbxData.EnableItem( TBI_DATA_INSERT_ROW, FALSE );
m_aTbxData.EnableItem( TBI_DATA_INSERT_COL, FALSE );
+ m_aTbxData.EnableItem( TBI_DATA_INSERT_TEXT_COL, FALSE );
m_aTbxData.EnableItem( TBI_DATA_DELETE_ROW, FALSE );
m_aTbxData.EnableItem( TBI_DATA_DELETE_COL, FALSE );
m_aTbxData.EnableItem( TBI_DATA_SWAP_COL, FALSE );
m_aTbxData.EnableItem( TBI_DATA_SWAP_ROW, FALSE );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_COL, FALSE );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_ROW, FALSE );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_TABLE_ROW, FALSE );
-// m_aTbxData.EnableItem( TBI_DATA_SORT_TABLE_COL, FALSE );
}
m_apBrwData->SetReadOnly( m_bReadOnly );
diff --git a/chart2/source/controller/dialogs/dlg_DataEditor.hrc b/chart2/source/controller/dialogs/dlg_DataEditor.hrc
index 4ce4433fe7fd..9d56fc0746f2 100644
--- a/chart2/source/controller/dialogs/dlg_DataEditor.hrc
+++ b/chart2/source/controller/dialogs/dlg_DataEditor.hrc
@@ -36,19 +36,14 @@
#define CTL_DATA 1
// images for toolbox image list
+//the numbers correspond to the icon names: default_images\chart2\res\dataeditor_icon_xy
#define TBI_DATA_INSERT_ROW 1
#define TBI_DATA_INSERT_COL 2
#define TBI_DATA_DELETE_ROW 3
#define TBI_DATA_DELETE_COL 4
#define TBI_DATA_SWAP_COL 5
#define TBI_DATA_SWAP_ROW 6
-#define TBI_DATA_TRANSFER 7
-
-// #define TBI_DATA_SORT_ROW 7
-// #define TBI_DATA_SORT_COL 8
-// #define TBI_DATA_SORT_TABLE_ROW 9
-// #define TBI_DATA_SORT_TABLE_COL 10
-// #define TBI_DATA_TRANSFER 11
+#define TBI_DATA_INSERT_TEXT_COL 7
// image lists (normal and high-contrast) for toolbox
#define IL_DIAGRAM_DATA 1
diff --git a/chart2/source/controller/dialogs/dlg_DataEditor.src b/chart2/source/controller/dialogs/dlg_DataEditor.src
index 116757475bbb..67a40b21d7e3 100644
--- a/chart2/source/controller/dialogs/dlg_DataEditor.src
+++ b/chart2/source/controller/dialogs/dlg_DataEditor.src
@@ -83,6 +83,12 @@ ModalDialog DLG_DIAGRAM_DATA
};
ToolBoxItem
{
+ HelpID = HID_SCH_TBI_DATA_INSERT_TEXT_COL ;
+ Identifier = TBI_DATA_INSERT_TEXT_COL ;
+ Text [ en-US ] = "Insert Text Column" ;
+ };
+ ToolBoxItem
+ {
HelpID = HID_SCH_TBI_DATA_DELETE_ROW ;
Identifier = TBI_DATA_DELETE_ROW ;
Text [ en-US ] = "Delete Row" ;
@@ -121,11 +127,11 @@ ModalDialog DLG_DIAGRAM_DATA
{ \
TBI_DATA_INSERT_ROW; \
TBI_DATA_INSERT_COL; \
+ TBI_DATA_INSERT_TEXT_COL; \
TBI_DATA_DELETE_ROW; \
TBI_DATA_DELETE_COL; \
TBI_DATA_SWAP_COL; \
TBI_DATA_SWAP_ROW; \
- TBI_DATA_TRANSFER; \
}; \
IdCount = { 7; }
diff --git a/chart2/source/controller/inc/HelpIds.hrc b/chart2/source/controller/inc/HelpIds.hrc
index ccff9e913f97..f075a19da462 100644
--- a/chart2/source/controller/inc/HelpIds.hrc
+++ b/chart2/source/controller/inc/HelpIds.hrc
@@ -32,6 +32,7 @@
#include <svtools/solar.hrc>
//next is 120
+//free: 20, 21, 22, 30, 31, 32, 33
//see old chart: schhids.h
@@ -64,21 +65,13 @@
//#define HID_SCH_CT_INDICATE2 (HID_SCH_START + 18)
//#define HID_SCH_CT_REGRESS2 (HID_SCH_START + 19)
-//#define HID_SCH_TBI_EDIT_CANCEL (HID_SCH_START + 20)
-//#define HID_SCH_TBI_EDIT_ACCEPT (HID_SCH_START + 21)
-#define HID_SCH_TBI_DATA_TRANSFER (HID_SCH_START + 22)
#define HID_SCH_TBI_DATA_INSERT_ROW (HID_SCH_START + 23)
#define HID_SCH_TBI_DATA_INSERT_COL (HID_SCH_START + 24)
#define HID_SCH_TBI_DATA_DELETE_ROW (HID_SCH_START + 25)
#define HID_SCH_TBI_DATA_DELETE_COL (HID_SCH_START + 26)
#define HID_SCH_TBI_DATA_SWAP_COL (HID_SCH_START + 27)
#define HID_SCH_TBI_DATA_SWAP_ROW (HID_SCH_START + 28)
-//#define HID_SCH_TBI_DATA_SORT_ROW (HID_SCH_START + 29)
-//#define HID_SCH_TBI_DATA_SORT_COL (HID_SCH_START + 30)
-//#define HID_SCH_TBI_DATA_SORT_TABLE_ROW (HID_SCH_START + 31)
-//#define HID_SCH_TBI_DATA_SORT_TABLE_COL (HID_SCH_START + 32)
-
-// #define HID_SCH_TBX_EDIT (HID_SCH_START + 33)
+#define HID_SCH_TBI_DATA_INSERT_TEXT_COL (HID_SCH_START + 29)
#define HID_SCH_TBX_DATA (HID_SCH_START + 34)
#define HID_SCH_ALIGNMENT_CTR_DIAL (HID_SCH_START + 35)