office-gobmx/chart2/source/tools/DataSourceHelper.cxx

553 lines
22 KiB
C++
Raw Normal View History

INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
* OpenOffice.org - a multi-platform office productivity suite
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
* This file is part of OpenOffice.org.
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_chart2.hxx"
#include "DataSourceHelper.hxx"
#include "macros.hxx"
#include "ChartModelHelper.hxx"
#include "DiagramHelper.hxx"
#include "DataSeriesHelper.hxx"
#include "DataSource.hxx"
#include "ContainerHelper.hxx"
#include "ControllerLockGuard.hxx"
#include "PropertyHelper.hxx"
CWS-TOOLING: integrate CWS chart37 2009-05-22 09:10:36 +0200 iha r272170 : #i102130# color of pies is not loaded correctly 2009-04-27 17:16:20 +0200 iha r271294 : #i24203# compiler problem 2009-04-27 16:43:21 +0200 iha r271292 : #i101281# missing API documentation for secondary axis title properties 2009-04-27 15:26:05 +0200 hde r271276 : #i100987 2009-04-27 15:24:42 +0200 hde r271273 : #i100987 2009-04-24 15:08:33 +0200 iha r271214 : #i100995# crash with some logarithmic scalings 2009-04-22 18:50:56 +0200 dr r271134 : #i82177# write out deleted point labels 2009-04-22 18:40:48 +0200 iha r271133 : #i101281# missing API documentation for secondary axis title properties 2009-04-22 16:39:42 +0200 dr r271128 : #i82177# extensions for bubble charts 2009-04-22 14:37:00 +0200 dr r271114 : #i82177# import/export data label type and separator 2009-04-22 14:36:24 +0200 dr r271113 : #i82177# import/export data label type and separator 2009-04-21 15:25:26 +0200 dr r271038 : #i82177# import data label type and separator from BIFF8 CHFR records 2009-04-21 14:37:16 +0200 dr r271037 : #i82177# dump BIFF8 chart future records 2009-04-20 17:44:27 +0200 iha r271002 : #i96898# reduce library exports 2009-04-20 13:01:13 +0200 iha r270975 : #i24203# rotate data labels - help ids 2009-04-20 11:40:33 +0200 dr r270969 : #i96600# export of axis scaling/positioning properties 2009-04-16 16:02:31 +0200 dr r270892 : #i69599# keep Y axis left in 3d charts 2009-04-15 18:16:46 +0200 dr r270859 : #i69599# import of axis position settings 2009-04-15 18:16:01 +0200 dr r270858 : #i69599# correct handling of logarithmic crossing axes 2009-04-14 16:27:48 +0200 dr r270794 : #i96599# handle auto axis position on logarithmic axes 2009-04-09 19:59:51 +0200 dr r270722 : #i96599# import axis crossing settings, fix import of logarithmic scaling settings 2009-04-09 18:26:00 +0200 iha r270720 : #i96898# reduce library exports 2009-04-09 15:17:04 +0200 iha r270710 : #i96898# reduce library exports 2009-04-09 10:50:14 +0200 dr r270682 : #i24203# import/export of data label rotation, fixed some other broken stuff too 2009-04-08 16:54:54 +0200 dr r270657 : #i24203# import rotation for data point labels 2009-04-06 18:19:17 +0200 iha r270571 : #i100876# Axis scaling settings dialog wrong after API usage (anys different from double type) 2009-04-06 15:57:05 +0200 iha r270567 : #i100105# #i58585# leftover -> 2009-04-06 15:55:48 +0200 iha r270564 : #i58585# leftover -> 2009-04-02 16:41:07 +0200 iha r270422 : #i99721# remove unused code 2009-04-02 14:29:03 +0200 iha r270407 : #i99721# remove unused code 2009-03-26 10:58:23 +0100 iha r270059 : #i96898# reduce library exports 2009-03-26 10:13:49 +0100 iha r270055 : #i96898# reduce library exports 2009-03-25 09:39:13 +0100 iha r269998 : CWS-TOOLING: rebase CWS chart37 to trunk@269781 (milestone: DEV300:m44) 2009-03-24 17:56:56 +0100 iha r269986 : #i96898# reduce library exports 2009-03-24 16:56:44 +0100 iha r269974 : #i99721# remove unused code 2009-03-24 16:48:48 +0100 iha r269970 : #i89731# remove unused string 2009-03-24 15:44:04 +0100 iha r269961 : remove unused code 2009-03-24 15:22:45 +0100 iha r269959 : remove unused code 2009-03-24 15:17:17 +0100 iha r269957 : remove unused code 2009-03-24 11:14:53 +0100 iha r269923 : #i24203# rotate data labels 2009-03-09 12:10:25 +0100 hde r269076 : #i99300# 2009-03-06 15:56:26 +0100 iha r269011 : #i93953# Source Format for secondary axis without data 2009-02-17 15:59:05 +0100 iha r268177 : avoid warning during build 2009-02-17 15:01:59 +0100 iha r268173 : avoid warning during build 2009-02-13 09:39:03 +0100 ufi r267693 : i96999 2009-02-11 15:12:35 +0100 iha r267604 : removed unused string 2009-02-11 14:00:29 +0100 iha r267600 : #i96999# Corrected wording from 'correlation coefficient' to 'coefficient of determination' 2009-02-11 10:56:45 +0100 iha r267584 : #i89731# typo in resource string 2009-02-11 10:01:29 +0100 iha r267582 : #i89031# compile error on asian windows systems 2009-02-10 16:15:16 +0100 iha r267552 : #i24203# rotate data labels 2009-02-04 18:00:33 +0100 iha r267395 : #i98893# don't export defaults to file 2009-02-04 15:48:15 +0100 iha r267390 : #i92128# asian typography for chart elements 2009-02-04 15:17:41 +0100 iha r267386 : #i92128# asian typography for chart elements 2009-01-30 14:41:10 +0100 iha r267197 : CWS-TOOLING: rebase CWS chart37 to trunk@267171 (milestone: DEV300:m41)
2009-06-04 04:41:18 -05:00
#include "CachedDataSequence.hxx"
#include "LabeledDataSequence.hxx"
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/chart2/data/XDataSource.hpp>
#include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
#include <com/sun/star/chart/ChartDataRowSource.hpp>
#include <com/sun/star/chart/ErrorBarStyle.hpp>
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
//.............................................................................
namespace chart
{
//.............................................................................
using namespace ::com::sun::star;
using namespace ::com::sun::star::chart2;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
using ::rtl::OUString;
namespace
{
void lcl_addRanges( ::std::vector< ::rtl::OUString > & rOutResult,
const uno::Reference< data::XLabeledDataSequence > & xLabeledSeq )
{
if( ! xLabeledSeq.is())
return;
uno::Reference< data::XDataSequence > xSeq( xLabeledSeq->getLabel());
if( xSeq.is())
rOutResult.push_back( xSeq->getSourceRangeRepresentation());
xSeq.set( xLabeledSeq->getValues());
if( xSeq.is())
rOutResult.push_back( xSeq->getSourceRangeRepresentation());
}
void lcl_addDataSourceRanges(
::std::vector< ::rtl::OUString > & rOutResult,
const uno::Reference< data::XDataSource > & xDataSource )
{
if( xDataSource.is() )
{
uno::Sequence< uno::Reference< data::XLabeledDataSequence > > aDataSequences( xDataSource->getDataSequences() );
for( sal_Int32 i=0; i<aDataSequences.getLength(); ++i)
lcl_addRanges( rOutResult, aDataSequences[i] );
}
}
void lcl_addErrorBarRanges(
::std::vector< ::rtl::OUString > & rOutResult,
const uno::Reference< XDataSeries > & xDataSeries )
{
uno::Reference< beans::XPropertySet > xSeriesProp( xDataSeries, uno::UNO_QUERY );
if( !xSeriesProp.is())
return;
try
{
uno::Reference< beans::XPropertySet > xErrorBarProp;
if( ( xSeriesProp->getPropertyValue( C2U("ErrorBarY")) >>= xErrorBarProp ) &&
xErrorBarProp.is())
{
sal_Int32 eStyle = ::com::sun::star::chart::ErrorBarStyle::NONE;
if( ( xErrorBarProp->getPropertyValue( C2U("ErrorBarStyle")) >>= eStyle ) &&
eStyle == ::com::sun::star::chart::ErrorBarStyle::FROM_DATA )
{
uno::Reference< data::XDataSource > xErrorBarDataSource( xErrorBarProp, uno::UNO_QUERY );
if( xErrorBarDataSource.is() )
lcl_addDataSourceRanges( rOutResult, xErrorBarDataSource );
}
}
}
catch( const uno::Exception & ex )
{
ASSERT_EXCEPTION( ex );
}
}
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
} // anonymous namespace
CWS-TOOLING: integrate CWS chart37 2009-05-22 09:10:36 +0200 iha r272170 : #i102130# color of pies is not loaded correctly 2009-04-27 17:16:20 +0200 iha r271294 : #i24203# compiler problem 2009-04-27 16:43:21 +0200 iha r271292 : #i101281# missing API documentation for secondary axis title properties 2009-04-27 15:26:05 +0200 hde r271276 : #i100987 2009-04-27 15:24:42 +0200 hde r271273 : #i100987 2009-04-24 15:08:33 +0200 iha r271214 : #i100995# crash with some logarithmic scalings 2009-04-22 18:50:56 +0200 dr r271134 : #i82177# write out deleted point labels 2009-04-22 18:40:48 +0200 iha r271133 : #i101281# missing API documentation for secondary axis title properties 2009-04-22 16:39:42 +0200 dr r271128 : #i82177# extensions for bubble charts 2009-04-22 14:37:00 +0200 dr r271114 : #i82177# import/export data label type and separator 2009-04-22 14:36:24 +0200 dr r271113 : #i82177# import/export data label type and separator 2009-04-21 15:25:26 +0200 dr r271038 : #i82177# import data label type and separator from BIFF8 CHFR records 2009-04-21 14:37:16 +0200 dr r271037 : #i82177# dump BIFF8 chart future records 2009-04-20 17:44:27 +0200 iha r271002 : #i96898# reduce library exports 2009-04-20 13:01:13 +0200 iha r270975 : #i24203# rotate data labels - help ids 2009-04-20 11:40:33 +0200 dr r270969 : #i96600# export of axis scaling/positioning properties 2009-04-16 16:02:31 +0200 dr r270892 : #i69599# keep Y axis left in 3d charts 2009-04-15 18:16:46 +0200 dr r270859 : #i69599# import of axis position settings 2009-04-15 18:16:01 +0200 dr r270858 : #i69599# correct handling of logarithmic crossing axes 2009-04-14 16:27:48 +0200 dr r270794 : #i96599# handle auto axis position on logarithmic axes 2009-04-09 19:59:51 +0200 dr r270722 : #i96599# import axis crossing settings, fix import of logarithmic scaling settings 2009-04-09 18:26:00 +0200 iha r270720 : #i96898# reduce library exports 2009-04-09 15:17:04 +0200 iha r270710 : #i96898# reduce library exports 2009-04-09 10:50:14 +0200 dr r270682 : #i24203# import/export of data label rotation, fixed some other broken stuff too 2009-04-08 16:54:54 +0200 dr r270657 : #i24203# import rotation for data point labels 2009-04-06 18:19:17 +0200 iha r270571 : #i100876# Axis scaling settings dialog wrong after API usage (anys different from double type) 2009-04-06 15:57:05 +0200 iha r270567 : #i100105# #i58585# leftover -> 2009-04-06 15:55:48 +0200 iha r270564 : #i58585# leftover -> 2009-04-02 16:41:07 +0200 iha r270422 : #i99721# remove unused code 2009-04-02 14:29:03 +0200 iha r270407 : #i99721# remove unused code 2009-03-26 10:58:23 +0100 iha r270059 : #i96898# reduce library exports 2009-03-26 10:13:49 +0100 iha r270055 : #i96898# reduce library exports 2009-03-25 09:39:13 +0100 iha r269998 : CWS-TOOLING: rebase CWS chart37 to trunk@269781 (milestone: DEV300:m44) 2009-03-24 17:56:56 +0100 iha r269986 : #i96898# reduce library exports 2009-03-24 16:56:44 +0100 iha r269974 : #i99721# remove unused code 2009-03-24 16:48:48 +0100 iha r269970 : #i89731# remove unused string 2009-03-24 15:44:04 +0100 iha r269961 : remove unused code 2009-03-24 15:22:45 +0100 iha r269959 : remove unused code 2009-03-24 15:17:17 +0100 iha r269957 : remove unused code 2009-03-24 11:14:53 +0100 iha r269923 : #i24203# rotate data labels 2009-03-09 12:10:25 +0100 hde r269076 : #i99300# 2009-03-06 15:56:26 +0100 iha r269011 : #i93953# Source Format for secondary axis without data 2009-02-17 15:59:05 +0100 iha r268177 : avoid warning during build 2009-02-17 15:01:59 +0100 iha r268173 : avoid warning during build 2009-02-13 09:39:03 +0100 ufi r267693 : i96999 2009-02-11 15:12:35 +0100 iha r267604 : removed unused string 2009-02-11 14:00:29 +0100 iha r267600 : #i96999# Corrected wording from 'correlation coefficient' to 'coefficient of determination' 2009-02-11 10:56:45 +0100 iha r267584 : #i89731# typo in resource string 2009-02-11 10:01:29 +0100 iha r267582 : #i89031# compile error on asian windows systems 2009-02-10 16:15:16 +0100 iha r267552 : #i24203# rotate data labels 2009-02-04 18:00:33 +0100 iha r267395 : #i98893# don't export defaults to file 2009-02-04 15:48:15 +0100 iha r267390 : #i92128# asian typography for chart elements 2009-02-04 15:17:41 +0100 iha r267386 : #i92128# asian typography for chart elements 2009-01-30 14:41:10 +0100 iha r267197 : CWS-TOOLING: rebase CWS chart37 to trunk@267171 (milestone: DEV300:m41)
2009-06-04 04:41:18 -05:00
Reference< chart2::data::XDataSource > DataSourceHelper::createDataSource(
const Sequence< Reference< chart2::data::XLabeledDataSequence > >& rSequences )
{
return new DataSource(rSequences);
}
Reference< chart2::data::XDataSequence > DataSourceHelper::createCachedDataSequence()
{
return new ::chart::CachedDataSequence();
}
Reference< chart2::data::XDataSequence > DataSourceHelper::createCachedDataSequence( const ::rtl::OUString& rSingleText )
{
return new ::chart::CachedDataSequence( rSingleText );
}
Reference< chart2::data::XLabeledDataSequence > DataSourceHelper::createLabeledDataSequence(
const Reference< chart2::data::XDataSequence >& xValues ,
const Reference< chart2::data::XDataSequence >& xLabels )
{
return new ::chart::LabeledDataSequence( xValues, xLabels );
}
Reference< chart2::data::XLabeledDataSequence > DataSourceHelper::createLabeledDataSequence(
const Reference< chart2::data::XDataSequence >& xValues )
{
return new ::chart::LabeledDataSequence( xValues );
}
Reference< chart2::data::XLabeledDataSequence > DataSourceHelper::createLabeledDataSequence(
const Reference< uno::XComponentContext >& xContext )
{
return new ::chart::LabeledDataSequence( xContext );
}
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
uno::Sequence< beans::PropertyValue > DataSourceHelper::createArguments(
bool bUseColumns, bool bFirstCellAsLabel, bool bHasCategories )
{
::com::sun::star::chart::ChartDataRowSource eRowSource = ::com::sun::star::chart::ChartDataRowSource_ROWS;
if( bUseColumns )
eRowSource = ::com::sun::star::chart::ChartDataRowSource_COLUMNS;
uno::Sequence< beans::PropertyValue > aArguments(3);
aArguments[0] = beans::PropertyValue( C2U("DataRowSource")
, -1, uno::makeAny( eRowSource )
, beans::PropertyState_DIRECT_VALUE );
aArguments[1] = beans::PropertyValue( C2U("FirstCellAsLabel")
, -1, uno::makeAny( bFirstCellAsLabel )
, beans::PropertyState_DIRECT_VALUE );
aArguments[2] = beans::PropertyValue( C2U("HasCategories")
, -1, uno::makeAny( bHasCategories )
, beans::PropertyState_DIRECT_VALUE );
return aArguments;
}
uno::Sequence< beans::PropertyValue > DataSourceHelper::createArguments(
const ::rtl::OUString & rRangeRepresentation,
const uno::Sequence< sal_Int32 >& rSequenceMapping,
bool bUseColumns, bool bFirstCellAsLabel, bool bHasCategories )
{
uno::Sequence< beans::PropertyValue > aArguments( createArguments( bUseColumns, bFirstCellAsLabel, bHasCategories ));
aArguments.realloc( aArguments.getLength() + 1 );
aArguments[aArguments.getLength() - 1] =
beans::PropertyValue( C2U("CellRangeRepresentation")
, -1, uno::makeAny( rRangeRepresentation )
, beans::PropertyState_DIRECT_VALUE );
if( rSequenceMapping.getLength() )
{
aArguments.realloc( aArguments.getLength() + 1 );
aArguments[aArguments.getLength() - 1] =
beans::PropertyValue( C2U("SequenceMapping")
, -1, uno::makeAny( rSequenceMapping )
, beans::PropertyState_DIRECT_VALUE );
}
return aArguments;
}
void DataSourceHelper::readArguments( const uno::Sequence< beans::PropertyValue >& rArguments
, ::rtl::OUString & rRangeRepresentation, uno::Sequence< sal_Int32 >& rSequenceMapping
, bool& bUseColumns, bool& bFirstCellAsLabel, bool& bHasCategories )
{
const beans::PropertyValue* pArguments = rArguments.getConstArray();
for(sal_Int32 i=0; i<rArguments.getLength(); ++i, ++pArguments)
{
const beans::PropertyValue& aProperty = *pArguments;
if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "DataRowSource" ) ))
{
::com::sun::star::chart::ChartDataRowSource eRowSource;
if( aProperty.Value >>= eRowSource )
bUseColumns = (eRowSource==::com::sun::star::chart::ChartDataRowSource_COLUMNS);
}
else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "FirstCellAsLabel" ) ))
{
aProperty.Value >>= bFirstCellAsLabel;
}
else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "HasCategories" ) ))
{
aProperty.Value >>= bHasCategories;
}
else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CellRangeRepresentation" ) ))
{
aProperty.Value >>= rRangeRepresentation;
}
else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "SequenceMapping" ) ))
{
aProperty.Value >>= rSequenceMapping;
}
}
}
uno::Reference< chart2::data::XDataSource > DataSourceHelper::pressUsedDataIntoRectangularFormat(
const uno::Reference< chart2::XChartDocument >& xChartDoc, bool bWithCategories )
{
::std::vector< Reference< chart2::data::XLabeledDataSequence > > aResultVector;
//categories are always the first sequence
Reference< chart2::XDiagram > xDiagram( xChartDoc->getFirstDiagram());
if( bWithCategories )
{
Reference< chart2::data::XLabeledDataSequence > xCategories( DiagramHelper::getCategoriesFromDiagram( xDiagram ) );
if( xCategories.is() )
aResultVector.push_back( xCategories );
}
::std::vector< Reference< chart2::XDataSeries > > xSeriesVector( DiagramHelper::getDataSeriesFromDiagram( xDiagram ) );
uno::Reference< chart2::data::XDataSource > xSeriesSource(
DataSeriesHelper::getDataSource( ContainerHelper::ContainerToSequence(xSeriesVector) ) );
Sequence< Reference< chart2::data::XLabeledDataSequence > > aDataSeqences( xSeriesSource->getDataSequences() );
//the first x-values is always the next sequence //todo ... other x-values get lost for old format
Reference< chart2::data::XLabeledDataSequence > xXValues(
DataSeriesHelper::getDataSequenceByRole( xSeriesSource, C2U("values-x") ) );
if( xXValues.is() )
aResultVector.push_back( xXValues );
//add all other sequences now without x-values
for( sal_Int32 nN=0; nN<aDataSeqences.getLength(); nN++ )
{
OUString aRole( DataSeriesHelper::GetRole( aDataSeqences[nN] ) );
if( !aRole.equals(C2U("values-x")) )
aResultVector.push_back( aDataSeqences[nN] );
}
Sequence< Reference< chart2::data::XLabeledDataSequence > > aResultSequence( aResultVector.size() );
::std::copy( aResultVector.begin(), aResultVector.end(), aResultSequence.getArray() );
return new DataSource( aResultSequence );
}
uno::Sequence< ::rtl::OUString > DataSourceHelper::getUsedDataRanges(
const uno::Reference< chart2::XDiagram > & xDiagram )
{
::std::vector< ::rtl::OUString > aResult;
if( xDiagram.is())
{
uno::Reference< data::XLabeledDataSequence > xCategories( DiagramHelper::getCategoriesFromDiagram( xDiagram ) );
if( xCategories.is() )
lcl_addRanges( aResult, xCategories );
::std::vector< uno::Reference< XDataSeries > > aSeriesVector( DiagramHelper::getDataSeriesFromDiagram( xDiagram ) );
for( ::std::vector< uno::Reference< XDataSeries > >::const_iterator aSeriesIt( aSeriesVector.begin() )
; aSeriesIt != aSeriesVector.end(); ++aSeriesIt )
{
uno::Reference< data::XDataSource > xDataSource( *aSeriesIt, uno::UNO_QUERY );
lcl_addDataSourceRanges( aResult, xDataSource );
lcl_addErrorBarRanges( aResult, *aSeriesIt );
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
}
}
return ContainerHelper::ContainerToSequence( aResult );
}
uno::Sequence< ::rtl::OUString > DataSourceHelper::getUsedDataRanges( const uno::Reference< frame::XModel > & xChartModel )
{
uno::Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartModel ) );
return getUsedDataRanges( xDiagram );
}
uno::Reference< chart2::data::XDataSource > DataSourceHelper::getUsedData(
const uno::Reference< chart2::XChartDocument >& xChartDoc )
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
{
return pressUsedDataIntoRectangularFormat( xChartDoc );
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
}
uno::Reference< chart2::data::XDataSource > DataSourceHelper::getUsedData(
const uno::Reference< frame::XModel >& xChartModel )
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
{
::std::vector< uno::Reference< chart2::data::XLabeledDataSequence > > aResult;
uno::Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartModel ) );
uno::Reference< data::XLabeledDataSequence > xCategories( DiagramHelper::getCategoriesFromDiagram( xDiagram ) );
if( xCategories.is() )
aResult.push_back( xCategories );
::std::vector< uno::Reference< XDataSeries > > aSeriesVector( ChartModelHelper::getDataSeries( xChartModel ) );
for( ::std::vector< uno::Reference< XDataSeries > >::const_iterator aSeriesIt( aSeriesVector.begin() )
; aSeriesIt != aSeriesVector.end(); ++aSeriesIt )
{
uno::Reference< data::XDataSource > xDataSource( *aSeriesIt, uno::UNO_QUERY );
if( !xDataSource.is() )
continue;
uno::Sequence< uno::Reference< data::XLabeledDataSequence > > aDataSequences( xDataSource->getDataSequences() );
::std::copy( aDataSequences.getConstArray(), aDataSequences.getConstArray() + aDataSequences.getLength(),
::std::back_inserter( aResult ));
}
return uno::Reference< chart2::data::XDataSource >(
new DataSource( ContainerHelper::ContainerToSequence( aResult )));
}
bool DataSourceHelper::detectRangeSegmentation(
const uno::Reference<
frame::XModel >& xChartModel
, ::rtl::OUString& rOutRangeString
, ::com::sun::star::uno::Sequence< sal_Int32 >& rSequenceMapping
, bool& rOutUseColumns
, bool& rOutFirstCellAsLabel
, bool& rOutHasCategories )
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
{
bool bSomethingDetected = false;
uno::Reference< XChartDocument > xChartDocument( xChartModel, uno::UNO_QUERY );
if( !xChartDocument.is() )
return bSomethingDetected;
uno::Reference< data::XDataProvider > xDataProvider( xChartDocument->getDataProvider() );
if( !xDataProvider.is() )
return bSomethingDetected;
try
{
DataSourceHelper::readArguments(
xDataProvider->detectArguments( pressUsedDataIntoRectangularFormat( xChartDocument ) ),
rOutRangeString, rSequenceMapping, rOutUseColumns, rOutFirstCellAsLabel, rOutHasCategories );
bSomethingDetected = (rOutRangeString.getLength() > 0);
uno::Reference< chart2::data::XLabeledDataSequence > xCategories(
DiagramHelper::getCategoriesFromDiagram( xChartDocument->getFirstDiagram() ));
rOutHasCategories = xCategories.is();
}
catch( uno::Exception & ex )
{
ASSERT_EXCEPTION( ex );
}
return bSomethingDetected;
}
bool DataSourceHelper::allArgumentsForRectRangeDetected(
const uno::Reference< chart2::XChartDocument >& xChartDocument )
{
bool bHasDataRowSource = false;
bool bHasFirstCellAsLabel = false;
// bool bHasHasCategories = false;
bool bHasCellRangeRepresentation = false;
// bool bHasSequenceMapping = false;
uno::Reference< data::XDataProvider > xDataProvider( xChartDocument->getDataProvider() );
if( !xDataProvider.is() )
return false;
try
{
const uno::Sequence< beans::PropertyValue > aArguments(
xDataProvider->detectArguments( pressUsedDataIntoRectangularFormat( xChartDocument )));
const beans::PropertyValue* pArguments = aArguments.getConstArray();
for(sal_Int32 i=0; i<aArguments.getLength(); ++i, ++pArguments)
{
const beans::PropertyValue& aProperty = *pArguments;
if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "DataRowSource" ) ))
{
bHasDataRowSource =
(aProperty.Value.hasValue() && aProperty.Value.isExtractableTo(
::getCppuType( reinterpret_cast<
const ::com::sun::star::chart::ChartDataRowSource * >(0))));
}
else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "FirstCellAsLabel" ) ))
{
bHasFirstCellAsLabel =
(aProperty.Value.hasValue() && aProperty.Value.isExtractableTo(::getBooleanCppuType()));
}
// else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "HasCategories" ) ))
// {
// bHasHasCategories =
// (aProperty.Value.hasValue() && aProperty.Value.isExtractableTo(::getBooleanCppuType()));
// }
else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CellRangeRepresentation" ) ))
{
::rtl::OUString aRange;
bHasCellRangeRepresentation =
(aProperty.Value.hasValue() && (aProperty.Value >>= aRange) && aRange.getLength() > 0);
}
// else if( aProperty.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "SequenceMapping" ) ))
// {
// bHasSequenceMapping =
// (aProperty.Value.hasValue() && aProperty.Value.isExtractableTo(
// ::getCppuType( reinterpret_cast<
// const uno::Sequence< sal_Int32 > * >(0))));
// }
}
}
catch( const uno::Exception & ex )
{
ASSERT_EXCEPTION( ex );
}
return (bHasCellRangeRepresentation && bHasDataRowSource && bHasFirstCellAsLabel);
}
void DataSourceHelper::setRangeSegmentation(
const uno::Reference< frame::XModel >& xChartModel
, const ::com::sun::star::uno::Sequence< sal_Int32 >& rSequenceMapping
, bool bUseColumns , bool bFirstCellAsLabel, bool bUseCategories )
{
uno::Reference< XChartDocument > xChartDocument( xChartModel, uno::UNO_QUERY );
if( !xChartDocument.is() )
return;
uno::Reference< data::XDataProvider > xDataProvider( xChartDocument->getDataProvider() );
if( !xDataProvider.is() )
return;
uno::Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartModel ) );
if( !xDiagram.is() )
return;
uno::Reference< chart2::XChartTypeManager > xChartTypeManager( xChartDocument->getChartTypeManager() );
if( !xChartTypeManager.is() )
return;
uno::Reference< lang::XMultiServiceFactory > xTemplateFactory( xChartTypeManager, uno::UNO_QUERY );
if( !xTemplateFactory.is() )
return;
::rtl::OUString aRangeString;
bool bDummy;
uno::Sequence< sal_Int32 > aDummy;
readArguments( xDataProvider->detectArguments( pressUsedDataIntoRectangularFormat( xChartDocument )),
aRangeString, aDummy, bDummy, bDummy, bDummy );
uno::Sequence< beans::PropertyValue > aArguments(
createArguments( aRangeString, rSequenceMapping, bUseColumns, bFirstCellAsLabel, bUseCategories ) );
uno::Reference< chart2::data::XDataSource > xDataSource( xDataProvider->createDataSource(
aArguments ) );
if( !xDataSource.is() )
return;
DiagramHelper::tTemplateWithServiceName aTemplateAndService =
DiagramHelper::getTemplateForDiagram( xDiagram, xTemplateFactory );
rtl::OUString aServiceName( aTemplateAndService.second );
uno::Reference< chart2::XChartTypeTemplate > xTemplate = aTemplateAndService.first;
if( !xTemplate.is() )
{
if( aServiceName.getLength() == 0 )
aServiceName = C2U("com.sun.star.chart2.template.Column");
xTemplate.set( xTemplateFactory->createInstance( aServiceName ), uno::UNO_QUERY );
}
if( !xTemplate.is() )
return;
// /-- locked controllers
ControllerLockGuard aCtrlLockGuard( xChartModel );
xTemplate->changeDiagramData( xDiagram, xDataSource, aArguments );
// \-- locked controllers
}
Sequence< OUString > DataSourceHelper::getRangesFromLabeledDataSequence(
const Reference< data::XLabeledDataSequence > & xLSeq )
{
Sequence< OUString > aResult;
if( xLSeq.is())
{
Reference< data::XDataSequence > xLabel( xLSeq->getLabel());
Reference< data::XDataSequence > xValues( xLSeq->getValues());
if( xLabel.is())
{
if( xValues.is())
{
aResult.realloc( 2 );
aResult[0] = xLabel->getSourceRangeRepresentation();
aResult[1] = xValues->getSourceRangeRepresentation();
}
else
{
aResult.realloc( 1 );
aResult[0] = xLabel->getSourceRangeRepresentation();
}
}
else if( xValues.is())
{
aResult.realloc( 1 );
aResult[0] = xValues->getSourceRangeRepresentation();
}
}
return aResult;
}
OUString DataSourceHelper::getRangeFromValues(
const Reference< data::XLabeledDataSequence > & xLSeq )
{
OUString aResult;
if( xLSeq.is() )
{
Reference< data::XDataSequence > xValues( xLSeq->getValues() );
if( xValues.is() )
aResult = xValues->getSourceRangeRepresentation();
}
return aResult;
}
INTEGRATION: CWS chart2mst3 (1.1.2); FILE ADDED 2007/02/08 21:25:42 iha 1.1.2.25: resync m195 -> m202 2007/02/02 16:00:30 bm 1.1.2.24: #i68229# use the same method for determining used ranges in XChartDocument::getUsedData() as in the range-chooser dialog 2006/11/17 16:32:43 bm 1.1.2.23: in ChartModel::setParent migrate the data from one data provider to the new one, if it is the same implementation and no temporary document. This is needed for solving the current clipboard problems 2006/04/27 13:03:08 bm 1.1.2.22: allArgumentsForRectRangeDetected: HasCategories is not mandatory for this 2006/04/13 14:51:04 bm 1.1.2.21: catch exceptions that might be thrown by data provider 2006/03/17 13:28:15 bm 1.1.2.20: +allArgumentsForRectRangeDetected 2006/03/07 12:33:11 bm 1.1.2.19: underscore variables removed 2005/12/02 15:24:06 bm 1.1.2.18: +getUsedDataRanges for XDiagram, +getRangesFromLabeledDataSequence, +getRangesFromDataSource 2005/11/02 13:49:22 bm 1.1.2.17: scene properties changed from SceneDescriptor property to the D3D properties offered by SceneProperties.hxx (this way XML im-/export works with the xmloff helper) 2005/11/01 13:09:02 iha 1.1.2.16: support sequence mapping 2005/10/27 17:44:42 iha 1.1.2.15: support SequenceMapping 2005/10/25 16:26:26 iha 1.1.2.14: support SequenceMapping 2005/10/11 09:20:52 bm 1.1.2.13: license header change 2005/08/19 15:28:06 bm 1.1.2.12: GetUsedData for XChartDocument 2005/08/03 16:36:27 bm 1.1.2.11: algohelper.hxx split up into CommonFunctors.hxx ContainerHelper.hxx CloneHelper.hxx 2005/07/29 14:54:28 bm 1.1.2.10: detectRangeSegmentation: allow including unused data for calculation of data range 2005/07/14 14:48:46 bm 1.1.2.9: detectRangeSegmentation: return only true if the data provider returns a valid range 2005/05/27 12:20:43 bm 1.1.2.8: +getUsedDataRanges 2005/05/12 13:56:42 bm 1.1.2.7: API change XDataProvider 2005/05/09 09:51:33 bm 1.1.2.6: moved parts of API to data namespace 2005/04/04 16:12:37 iha 1.1.2.5: added helping methods for ranges 2004/09/16 14:43:27 iha 1.1.2.4: implement api redesign 2004/06/29 12:46:48 bm 1.1.2.3: -getRangeIdentifiers +addRangeRepresentationsFromLabeledDataSequence (was local before as helper for the above) 2004/06/23 14:09:51 bm 1.1.2.2: do not overwrite parameters where there are no corresponding arguments found 2004/05/07 16:26:38 iha 1.1.2.1: #i20344# new
2007-05-22 12:58:02 -05:00
Sequence< OUString > DataSourceHelper::getRangesFromDataSource( const Reference< data::XDataSource > & xSource )
{
::std::vector< OUString > aResult;
if( xSource.is())
{
Sequence< Reference< data::XLabeledDataSequence > > aLSeqSeq( xSource->getDataSequences());
for( sal_Int32 i=0; i<aLSeqSeq.getLength(); ++i )
{
Reference< data::XDataSequence > xLabel( aLSeqSeq[i]->getLabel());
Reference< data::XDataSequence > xValues( aLSeqSeq[i]->getValues());
if( xLabel.is())
aResult.push_back( xLabel->getSourceRangeRepresentation());
if( xValues.is())
aResult.push_back( xValues->getSourceRangeRepresentation());
}
}
return ContainerHelper::ContainerToSequence( aResult );
}
//.............................................................................
} //namespace chart
//.............................................................................