29 #include <com/sun/star/chart2/data/XDataProvider.hpp>
30 #include <com/sun/star/chart2/data/XSheetDataProvider.hpp>
31 #include <com/sun/star/chart2/data/XRangeXMLConversion.hpp>
32 #include <com/sun/star/chart2/data/XDataSource.hpp>
33 #include <com/sun/star/chart2/data/XDataSequence.hpp>
34 #include <com/sun/star/chart2/data/XTextualDataSequence.hpp>
35 #include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
36 #include <com/sun/star/chart2/data/DataSequenceRole.hpp>
37 #include <com/sun/star/chart2/XTimeBased.hpp>
38 #include <com/sun/star/lang/XServiceInfo.hpp>
39 #include <com/sun/star/beans/XPropertySet.hpp>
40 #include <com/sun/star/util/XCloneable.hpp>
41 #include <com/sun/star/util/XModifyBroadcaster.hpp>
43 #include <rtl/ustring.hxx>
48 #include <unordered_set>
57 ::cppu::WeakImplHelper<
58 css::chart2::data::XDataProvider,
59 css::chart2::data::XSheetDataProvider,
60 css::chart2::data::XRangeXMLConversion,
61 css::beans::XPropertySet,
62 css::lang::XServiceInfo>,
72 virtual sal_Bool SAL_CALL createDataSourcePossible(
73 const css::uno::Sequence< css::beans::PropertyValue >&
aArguments )
override;
75 virtual css::uno::Reference<
76 css::chart2::data::XDataSource > SAL_CALL createDataSource(
77 const css::uno::Sequence< css::beans::PropertyValue >& aArguments )
override;
79 virtual css::uno::Sequence<
80 css::beans::PropertyValue > SAL_CALL detectArguments(
81 const css::uno::Reference< css::chart2::data::XDataSource >& xDataSource )
override;
83 virtual sal_Bool SAL_CALL createDataSequenceByRangeRepresentationPossible(
84 const OUString& aRangeRepresentation )
override;
86 virtual css::uno::Reference<
87 css::chart2::data::XDataSequence > SAL_CALL createDataSequenceByRangeRepresentation(
88 const OUString& aRangeRepresentation )
override;
90 virtual css::uno::Reference<css::chart2::data::XDataSequence> SAL_CALL
91 createDataSequenceByValueArray(
const OUString& aRole,
const OUString& aRangeRepresentation,
92 const OUString& aRoleQualifier )
override;
94 virtual css::uno::Reference< css::sheet::XRangeSelection > SAL_CALL getRangeSelection()
override;
97 virtual sal_Bool SAL_CALL createDataSequenceByFormulaTokensPossible(
98 const css::uno::Sequence< css::sheet::FormulaToken >& aTokens )
override;
100 virtual css::uno::Reference< css::chart2::data::XDataSequence >
101 SAL_CALL createDataSequenceByFormulaTokens(
102 const css::uno::Sequence< css::sheet::FormulaToken >& aTokens )
override;
105 virtual OUString SAL_CALL convertRangeToXML(
const OUString& sRangeRepresentation )
override;
107 virtual OUString SAL_CALL convertRangeFromXML(
const OUString& sXMLRange )
override;
110 virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL
111 getPropertySetInfo()
override;
114 const OUString& rPropertyName,
115 const css::uno::Any& rValue)
override;
118 const OUString& rPropertyName)
override;
120 virtual void SAL_CALL addPropertyChangeListener(
121 const OUString& rPropertyName,
122 const css::uno::Reference< css::beans::XPropertyChangeListener>& xListener)
override;
124 virtual void SAL_CALL removePropertyChangeListener(
125 const OUString& rPropertyName,
126 const css::uno::Reference< css::beans::XPropertyChangeListener>& rListener)
override;
128 virtual void SAL_CALL addVetoableChangeListener(
129 const OUString& rPropertyName,
130 const css::uno::Reference< css::beans::XVetoableChangeListener>& rListener)
override;
132 virtual void SAL_CALL removeVetoableChangeListener(
133 const OUString& rPropertyName,
134 const css::uno::Reference< css::beans::XVetoableChangeListener>& rListener)
override;
140 rServiceName)
override;
142 virtual css::uno::Sequence< OUString> SAL_CALL
158 ::cppu::WeakImplHelper<
159 css::chart2::data::XDataSource,
160 css::lang::XServiceInfo>,
170 virtual css::uno::Sequence< css::uno::Reference<
171 css::chart2::data::XLabeledDataSequence > > SAL_CALL
178 rServiceName)
override;
180 virtual css::uno::Sequence< OUString> SAL_CALL
185 void AddLabeledSequence(
const css::uno::Reference < css::chart2::data::XLabeledDataSequence >& xNew);
196 ::cppu::WeakImplHelper<
197 css::chart2::data::XDataSequence,
198 css::chart2::data::XTextualDataSequence,
199 css::chart2::data::XNumericalDataSequence,
200 css::chart2::XTimeBased,
201 css::util::XCloneable,
202 css::util::XModifyBroadcaster,
203 css::beans::XPropertySet,
204 css::lang::XServiceInfo>,
209 ::std::vector<ScTokenRef>&& rTokens,
bool bIncludeHiddenCells );
218 virtual css::uno::Sequence< css::uno::Any >
221 virtual css::uno::Sequence< OUString >
222 SAL_CALL
generateLabel(css::chart2::data::LabelOrigin nOrigin)
override;
230 virtual css::uno::Sequence< double >
234 virtual css::uno::Sequence< OUString >
241 virtual void SAL_CALL
setRange(sal_Int32 nStart, sal_Int32 nEnd)
override;
244 virtual css::uno::Reference<
245 css::beans::XPropertySetInfo> SAL_CALL
249 const OUString& rPropertyName,
250 const css::uno::Any& rValue)
override;
253 const OUString& rPropertyName)
override;
256 const OUString& rPropertyName,
257 const css::uno::Reference< css::beans::XPropertyChangeListener>& xListener)
override;
260 const OUString& rPropertyName,
261 const css::uno::Reference< css::beans::XPropertyChangeListener>& rListener)
override;
264 const OUString& rPropertyName,
265 const css::uno::Reference< css::beans::XVetoableChangeListener>& rListener)
override;
268 const OUString& rPropertyName,
269 const css::uno::Reference< css::beans::XVetoableChangeListener>& rListener)
override;
272 virtual css::uno::Reference< css::util::XCloneable > SAL_CALL
createClone()
override;
276 const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
278 const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
284 rServiceName)
override;
286 virtual css::uno::Sequence< OUString> SAL_CALL
351 virtual void notify()
override;
377 std::optional<std::vector<sal_uInt32>>
379 std::unique_ptr<ExternalRefListener>
css::uno::Sequence< sal_Int32 > m_aHiddenValues
std::unique_ptr< HiddenRangeListener > m_pHiddenListener
bool m_bIncludeHiddenCells
ExternalRefListener & operator=(const ExternalRefListener &)=delete
ExternalRefListener * GetExtRefListener()
virtual css::uno::Sequence< OUString > SAL_CALL getTextualData() override
virtual sal_Bool SAL_CALL supportsService(const OUString &rServiceName) override
SfxItemPropertySet m_aPropSet
virtual void SAL_CALL removeModifyListener(const css::uno::Reference< css::util::XModifyListener > &aListener) override
virtual ~ScChart2DataSource() override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
ScChart2DataSequence & mrParent
bool m_bGotDataChangedHint
virtual void SAL_CALL addModifyListener(const css::uno::Reference< css::util::XModifyListener > &aListener) override
std::optional< std::vector< sal_uInt32 > > m_oRangeIndices
std::vector< ScTokenRef > m_aTokens
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getImplementationName() override
virtual void notify(sal_uInt16 nFileId, ScExternalRefManager::LinkUpdateType eType) override
css::uno::Sequence< css::uno::Any > m_aMixedDataCache
Cached data for getData.
ScChart2DataSequence & mrParent
void StopListeningToAllExternalRefs()
SfxItemPropertySet m_aPropSet
css::chart2::data::DataSequenceRole m_aRole
std::vector< css::uno::Reference< css::util::XModifyListener > > XModifyListenerArr_Impl
ScChart2DataSequence & operator=(const ScChart2DataSequence &)=delete
Sequence< PropertyValue > aArguments
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
ScChart2DataSequence(ScDocument *pDoc,::std::vector< ScTokenRef > &&rTokens, bool bIncludeHiddenCells)
virtual void SAL_CALL addPropertyChangeListener(const OUString &rPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual ~HiddenRangeListener() override
virtual sal_Bool SAL_CALL switchToNext(sal_Bool bWrap) override
virtual void SAL_CALL setRange(sal_Int32 nStart, sal_Int32 nEnd) override
virtual sal_Bool SAL_CALL supportsService(const OUString &rServiceName) override
HiddenRangeListener(ScChart2DataSequence &rParent)
ScChart2DataSource(ScDocument *pDoc)
Base class for objects that need to listen to link updates.
const std::unordered_set< sal_uInt16 > & getAllFileIds() const
virtual void SAL_CALL removeVetoableChangeListener(const OUString &rPropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &rListener) override
css::uno::Reference< css::chart2::data::XDataSource > mxCachedDataSource
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
ExternalRefListener(ScChart2DataSequence &rParent, ScDocument *pDoc)
virtual sal_Bool SAL_CALL setToPointInTime(sal_Int32 nPoint) override
void BuildDataCache()
Build an internal data array to cache the data ranges, and other information such as hidden values...
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &rPropertyName) override
bool setPropertyValue(uno::Sequence< beans::PropertyValue > &aProp, const OUString &aName, const uno::Any &aValue)
css::uno::Reference< css::chart2::data::XDataSource > mxCreatedDataSource
std::vector< css::uno::Reference< css::chart2::data::XLabeledDataSequence > > m_aLabeledSequences
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint)
std::unique_ptr< ExternalRefListener > m_pExtRefListener
virtual ::sal_Int32 SAL_CALL getNumberFormatKeyByIndex(::sal_Int32 nIndex) override
Get the number format key for the n-th data entry If nIndex == -1, then you will get the number forma...
std::unordered_set< sal_uInt16 > maFileIds
css::uno::Sequence< css::beans::PropertyValue > maCreateDataSourceArguments
void setDataChangedHint(bool b)
void CopyData(const ScChart2DataSequence &r)
std::vector< Item > m_aDataArray
This vector contains the cached data which was calculated with BuildDataCache().
DECL_LINK(ValueListenerHdl, const SfxHint &, void)
void addFileId(sal_uInt16 nFileId)
XModifyListenerArr_Impl m_aValueListeners
virtual void SAL_CALL addVetoableChangeListener(const OUString &rPropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &rListener) override
::boost::intrusive_ptr< formula::FormulaToken > ScTokenRef
virtual void SAL_CALL removePropertyChangeListener(const OUString &rPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &rListener) override
virtual void notify() override
std::unique_ptr< ScLinkListener > m_pValueListener
virtual css::uno::Sequence< double > SAL_CALL getNumericalData() override
void UpdateTokensFromRanges(const ScRangeList &rRanges)
virtual css::uno::Sequence< css::uno::Reference< css::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences() override
virtual OUString SAL_CALL getSourceRangeRepresentation() override
virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override
bool m_bIncludeHiddenCells
sal_Int32 FillCacheFromExternalRef(const ScTokenRef &pToken)
css::uno::Sequence< css::beans::PropertyValue > maCachedArguments
virtual ~ScChart2DataSequence() override
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getData() override
void AddLabeledSequence(const css::uno::Reference< css::chart2::data::XLabeledDataSequence > &xNew)
virtual void SAL_CALL setPropertyValue(const OUString &rPropertyName, const css::uno::Any &rValue) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual css::uno::Sequence< OUString > SAL_CALL generateLabel(css::chart2::data::LabelOrigin nOrigin) override
virtual ~ExternalRefListener() override
bool m_bExtDataRebuildQueued