/src/libreoffice/chart2/inc/ChartModel.hxx
Line | Count | Source |
1 | | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 | | /* |
3 | | * This file is part of the LibreOffice project. |
4 | | * |
5 | | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 | | * |
9 | | * This file incorporates work covered by the following license notice: |
10 | | * |
11 | | * Licensed to the Apache Software Foundation (ASF) under one or more |
12 | | * contributor license agreements. See the NOTICE file distributed |
13 | | * with this work for additional information regarding copyright |
14 | | * ownership. The ASF licenses this file to you under the Apache |
15 | | * License, Version 2.0 (the "License"); you may not use this file |
16 | | * except in compliance with the License. You may obtain a copy of |
17 | | * the License at http://www.apache.org/licenses/LICENSE-2.0 . |
18 | | */ |
19 | | #pragma once |
20 | | |
21 | | #include <LifeTime.hxx> |
22 | | |
23 | | #include <com/sun/star/frame/XStorable2.hpp> |
24 | | #include <com/sun/star/util/XModifiable.hpp> |
25 | | #include <com/sun/star/util/XCloseable.hpp> |
26 | | #include <com/sun/star/util/XUpdatable.hpp> |
27 | | #include <com/sun/star/util/DateTime.hpp> |
28 | | #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> |
29 | | #include <com/sun/star/document/XUndoManagerSupplier.hpp> |
30 | | #include <com/sun/star/lang/XMultiServiceFactory.hpp> |
31 | | #include <com/sun/star/lang/XServiceInfo.hpp> |
32 | | #include <com/sun/star/lang/XInitialization.hpp> |
33 | | #include <com/sun/star/util/XCloneable.hpp> |
34 | | #include <com/sun/star/embed/XVisualObject.hpp> |
35 | | #include <com/sun/star/document/XStorageBasedDocument.hpp> |
36 | | #include <com/sun/star/lang/XUnoTunnel.hpp> |
37 | | #include <com/sun/star/util/XNumberFormatsSupplier.hpp> |
38 | | #include <com/sun/star/container/XChild.hpp> |
39 | | #include <com/sun/star/chart2/data/XDataSource.hpp> |
40 | | #include <com/sun/star/qa/XDumper.hpp> |
41 | | |
42 | | // public API |
43 | | #include <com/sun/star/chart2/data/XDataReceiver.hpp> |
44 | | |
45 | | #include <com/sun/star/chart2/XChartDocument.hpp> |
46 | | #include <com/sun/star/chart2/XTitled.hpp> |
47 | | |
48 | | #include <com/sun/star/frame/XLoadable.hpp> |
49 | | #include <com/sun/star/datatransfer/XTransferable.hpp> |
50 | | |
51 | | #include <osl/mutex.hxx> |
52 | | #include <rtl/ref.hxx> |
53 | | #include <cppuhelper/implbase.hxx> |
54 | | #include <comphelper/interfacecontainer2.hxx> |
55 | | #include <vcl/GraphicObject.hxx> |
56 | | #include <svl/lstner.hxx> |
57 | | #include <svx/ChartColorPaletteType.hxx> |
58 | | |
59 | | #include <memory> |
60 | | |
61 | | typedef struct _xmlTextWriter* xmlTextWriterPtr; |
62 | | |
63 | 0 | #define DEFAULT_PAGE_WIDTH 16000 |
64 | 0 | #define DEFAULT_PAGE_HEIGHT 9000 |
65 | | |
66 | | namespace com::sun::star::awt { class XRequestCallback; } |
67 | | namespace com::sun::star::chart2::data { class XDataProvider; } |
68 | | namespace com::sun::star::document { class XFilter; } |
69 | | namespace com::sun::star::embed { class XStorage; } |
70 | | namespace com::sun::star::frame { class XModel; } |
71 | | namespace com::sun::star::uno { class XComponentContext; } |
72 | | |
73 | | class SvNumberFormatter; |
74 | | class SvNumberFormatsSupplierObj; |
75 | | |
76 | | class UnoChartStyle; |
77 | | class UnoChartColorStyle; |
78 | | |
79 | | namespace model { class Theme; } |
80 | | |
81 | | namespace chart |
82 | | { |
83 | | class Diagram; |
84 | | class ChartTypeManager; |
85 | | class ChartTypeTemplate; |
86 | | class InternalDataProvider; |
87 | | class NameContainer; |
88 | | class PageBackground; |
89 | | class RangeHighlighter; |
90 | | class Title; |
91 | | class BaseCoordinateSystem; |
92 | | class DataSeries; |
93 | | class ChartType; |
94 | | namespace wrapper { class ChartDocumentWrapper; } |
95 | | |
96 | | namespace impl |
97 | | { |
98 | | |
99 | | // Note: needed for queryInterface (if it calls the base-class implementation) |
100 | | typedef cppu::WeakImplHelper< |
101 | | // css::frame::XModel //comprehends XComponent (required interface), base of XChartDocument |
102 | | css::util::XCloseable //comprehends XCloseBroadcaster |
103 | | ,css::frame::XStorable2 //(extension of XStorable) |
104 | | ,css::util::XModifiable //comprehends XModifyBroadcaster (required interface) |
105 | | ,css::lang::XServiceInfo |
106 | | ,css::lang::XInitialization |
107 | | ,css::chart2::XChartDocument // derived from XModel |
108 | | ,css::chart2::data::XDataReceiver // public API |
109 | | ,css::chart2::XTitled |
110 | | ,css::frame::XLoadable |
111 | | ,css::util::XCloneable |
112 | | ,css::embed::XVisualObject |
113 | | ,css::lang::XMultiServiceFactory |
114 | | ,css::document::XStorageBasedDocument |
115 | | ,css::lang::XUnoTunnel |
116 | | ,css::util::XNumberFormatsSupplier |
117 | | ,css::container::XChild |
118 | | ,css::util::XModifyListener |
119 | | ,css::datatransfer::XTransferable |
120 | | ,css::document::XDocumentPropertiesSupplier |
121 | | ,css::chart2::data::XDataSource |
122 | | ,css::document::XUndoManagerSupplier |
123 | | ,css::util::XUpdatable |
124 | | ,css::qa::XDumper |
125 | | > |
126 | | ChartModel_Base; |
127 | | } |
128 | | |
129 | | class UndoManager; |
130 | | class ChartView; |
131 | | |
132 | | class SAL_LOPLUGIN_ANNOTATE("crosscast") ChartModel final : |
133 | | public impl::ChartModel_Base, private SfxListener |
134 | | { |
135 | | |
136 | | private: |
137 | | mutable ::apphelper::CloseableLifeTimeManager m_aLifeTimeManager; |
138 | | |
139 | | mutable ::osl::Mutex m_aModelMutex; |
140 | | bool volatile m_bReadOnly; |
141 | | bool volatile m_bModified; |
142 | | sal_Int32 m_nInLoad; |
143 | | bool volatile m_bUpdateNotificationsPending; |
144 | | |
145 | | bool mbTimeBased; |
146 | | |
147 | | mutable rtl::Reference<ChartView> mxChartView; |
148 | | |
149 | | OUString m_aResource; |
150 | | css::uno::Sequence< css::beans::PropertyValue > m_aMediaDescriptor; |
151 | | css::uno::Reference< css::document::XDocumentProperties > m_xDocumentProperties; |
152 | | ::rtl::Reference< UndoManager > m_pUndoManager; |
153 | | |
154 | | ::comphelper::OInterfaceContainerHelper2 m_aControllers; |
155 | | css::uno::Reference< css::frame::XController > m_xCurrentController; |
156 | | sal_uInt16 m_nControllerLockCount; |
157 | | |
158 | | css::uno::Reference< css::uno::XComponentContext > m_xContext; |
159 | | rtl::Reference< wrapper::ChartDocumentWrapper > m_xOldModelAgg; |
160 | | |
161 | | css::uno::Reference< css::embed::XStorage > m_xStorage; |
162 | | //the content of this should be always synchronized with the current m_xViewWindow size. The variable is necessary to hold the information as long as no view window exists. |
163 | | css::awt::Size m_aVisualAreaSize; |
164 | | css::uno::Reference< css::frame::XModel > m_xParent; |
165 | | rtl::Reference< ::chart::RangeHighlighter > m_xRangeHighlighter; |
166 | | css::uno::Reference<css::awt::XRequestCallback> m_xPopupRequest; |
167 | | std::vector< GraphicObject > m_aGraphicObjectVector; |
168 | | |
169 | | css::uno::Reference< css::chart2::data::XDataProvider > m_xDataProvider; |
170 | | /** is only valid if m_xDataProvider is set. If m_xDataProvider is set to an |
171 | | external data provider this reference must be set to 0 |
172 | | */ |
173 | | rtl::Reference< InternalDataProvider > m_xInternalDataProvider; |
174 | | |
175 | | rtl::Reference< SvNumberFormatsSupplierObj > m_xOwnNumberFormatsSupplier; |
176 | | css::uno::Reference< css::util::XNumberFormatsSupplier > |
177 | | m_xNumberFormatsSupplier; |
178 | | std::unique_ptr< SvNumberFormatter > m_apSvNumberFormatter; // #i113784# avoid memory leak |
179 | | |
180 | | rtl::Reference< ::chart::ChartTypeManager > |
181 | | m_xChartTypeManager; |
182 | | |
183 | | // Diagram Access |
184 | | rtl::Reference< ::chart::Diagram > m_xDiagram; |
185 | | |
186 | | rtl::Reference< ::chart::Title > m_xTitle; |
187 | | |
188 | | rtl::Reference< ::chart::PageBackground > m_xPageBackground; |
189 | | |
190 | | rtl::Reference< ::chart::NameContainer > m_xXMLNamespaceMap; |
191 | | |
192 | | ChartColorPaletteType m_eColorPaletteType; |
193 | | sal_uInt32 m_nColorPaletteIndex; |
194 | | |
195 | | std::optional<css::util::DateTime> m_aNullDate; |
196 | | |
197 | | rtl::Reference<UnoChartStyle> m_aStyles; |
198 | | rtl::Reference<UnoChartColorStyle> m_aColorStyles; |
199 | | |
200 | | private: |
201 | | //private methods |
202 | | |
203 | | OUString impl_g_getLocation(); |
204 | | |
205 | | bool |
206 | | impl_isControllerConnected( const css::uno::Reference< css::frame::XController >& xController ); |
207 | | |
208 | | /// @throws css::uno::RuntimeException |
209 | | css::uno::Reference< css::frame::XController > |
210 | | impl_getCurrentController(); |
211 | | |
212 | | /// @throws css::uno::RuntimeException |
213 | | void |
214 | | impl_notifyModifiedListeners(); |
215 | | /// @throws css::uno::RuntimeException |
216 | | void |
217 | | impl_notifyCloseListeners(); |
218 | | /// @throws css::uno::RuntimeException |
219 | | void |
220 | | impl_notifyStorageChangeListeners(); |
221 | | |
222 | | void impl_store( |
223 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor, |
224 | | const css::uno::Reference< css::embed::XStorage > & xStorage ); |
225 | | void impl_load( |
226 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor, |
227 | | const css::uno::Reference< css::embed::XStorage >& xStorage ); |
228 | | void impl_loadGraphics( |
229 | | const css::uno::Reference< css::embed::XStorage >& xStorage ); |
230 | | css::uno::Reference< css::document::XFilter > |
231 | | impl_createFilter( const css::uno::Sequence< css::beans::PropertyValue > & rMediaDescriptor ); |
232 | | |
233 | | rtl::Reference< ::chart::ChartTypeTemplate > impl_createDefaultChartTypeTemplate(); |
234 | | css::uno::Reference< css::chart2::data::XDataSource > impl_createDefaultData(); |
235 | | |
236 | | void impl_adjustAdditionalShapesPositionAndSize( |
237 | | const css::awt::Size& aVisualAreaSize ); |
238 | | |
239 | | void insertDefaultChart(); |
240 | | |
241 | | public: |
242 | | ChartModel() = delete; |
243 | | ChartModel(css::uno::Reference< css::uno::XComponentContext > xContext); |
244 | | explicit ChartModel( const ChartModel & rOther ); |
245 | | virtual ~ChartModel() override; |
246 | | |
247 | | // css::lang::XServiceInfo |
248 | | |
249 | | virtual OUString SAL_CALL getImplementationName() override; |
250 | | virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; |
251 | | virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
252 | | |
253 | | // css::lang::XInitialization |
254 | | virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override; |
255 | | |
256 | | // css::frame::XModel (required interface) |
257 | | |
258 | | virtual sal_Bool SAL_CALL |
259 | | attachResource( const OUString& rURL, |
260 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
261 | | |
262 | | virtual OUString SAL_CALL |
263 | | getURL() override; |
264 | | |
265 | | virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL |
266 | | getArgs() override; |
267 | | |
268 | | virtual void SAL_CALL |
269 | | connectController( const css::uno::Reference< css::frame::XController >& xController ) override; |
270 | | |
271 | | virtual void SAL_CALL |
272 | | disconnectController( const css::uno::Reference< css::frame::XController >& xController ) override; |
273 | | |
274 | | virtual void SAL_CALL |
275 | | lockControllers() override; |
276 | | |
277 | | virtual void SAL_CALL |
278 | | unlockControllers() override; |
279 | | |
280 | | virtual sal_Bool SAL_CALL |
281 | | hasControllersLocked() override; |
282 | | |
283 | | virtual css::uno::Reference< css::frame::XController > SAL_CALL |
284 | | getCurrentController() override; |
285 | | |
286 | | virtual void SAL_CALL |
287 | | setCurrentController( const css::uno::Reference< css::frame::XController >& xController ) override; |
288 | | |
289 | | virtual css::uno::Reference< css::uno::XInterface > SAL_CALL |
290 | | getCurrentSelection() override; |
291 | | |
292 | | // css::lang::XComponent (base of XModel) |
293 | | virtual void SAL_CALL |
294 | | dispose() override; |
295 | | |
296 | | virtual void SAL_CALL |
297 | | addEventListener( const css::uno::Reference< css::lang::XEventListener > & xListener ) override; |
298 | | |
299 | | virtual void SAL_CALL |
300 | | removeEventListener( const css::uno::Reference< css::lang::XEventListener > & xListener ) override; |
301 | | |
302 | | // css::util::XCloseable |
303 | | virtual void SAL_CALL |
304 | | close( sal_Bool bDeliverOwnership ) override; |
305 | | |
306 | | // css::util::XCloseBroadcaster (base of XCloseable) |
307 | | virtual void SAL_CALL |
308 | | addCloseListener( const css::uno::Reference< css::util::XCloseListener > & xListener ) override; |
309 | | |
310 | | virtual void SAL_CALL |
311 | | removeCloseListener( const css::uno::Reference< css::util::XCloseListener > & xListener ) override; |
312 | | |
313 | | // css::frame::XStorable2 (extension of XStorable) |
314 | | virtual void SAL_CALL storeSelf( |
315 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
316 | | |
317 | | // css::frame::XStorable (required interface) |
318 | | virtual sal_Bool SAL_CALL |
319 | | hasLocation() override; |
320 | | |
321 | | virtual OUString SAL_CALL |
322 | | getLocation() override; |
323 | | |
324 | | virtual sal_Bool SAL_CALL |
325 | | isReadonly() override; |
326 | | |
327 | | virtual void SAL_CALL |
328 | | store() override; |
329 | | |
330 | | virtual void SAL_CALL |
331 | | storeAsURL( const OUString& rURL, |
332 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
333 | | |
334 | | virtual void SAL_CALL |
335 | | storeToURL( const OUString& rURL, |
336 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
337 | | |
338 | | // css::util::XModifiable (required interface) |
339 | | virtual sal_Bool SAL_CALL |
340 | | isModified() override; |
341 | | |
342 | | virtual void SAL_CALL |
343 | | setModified( sal_Bool bModified ) override; |
344 | | |
345 | | // css::util::XModifyBroadcaster (base of XModifiable) |
346 | | virtual void SAL_CALL |
347 | | addModifyListener( const css::uno::Reference< css::util::XModifyListener >& xListener ) override; |
348 | | |
349 | | virtual void SAL_CALL |
350 | | removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& xListener ) override; |
351 | | |
352 | | // ____ XModifyListener ____ |
353 | | virtual void SAL_CALL modified( |
354 | | const css::lang::EventObject& aEvent ) override; |
355 | | |
356 | | // ____ XEventListener (base of XModifyListener) ____ |
357 | | virtual void SAL_CALL disposing( |
358 | | const css::lang::EventObject& Source ) override; |
359 | | |
360 | | // ____ datatransferable::XTransferable ____ |
361 | | virtual css::uno::Any SAL_CALL getTransferData( |
362 | | const css::datatransfer::DataFlavor& aFlavor ) override; |
363 | | virtual css::uno::Sequence< css::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors() override; |
364 | | virtual sal_Bool SAL_CALL isDataFlavorSupported( |
365 | | const css::datatransfer::DataFlavor& aFlavor ) override; |
366 | | |
367 | | // lang::XTypeProvider (override method of WeakImplHelper) |
368 | | virtual css::uno::Sequence< css::uno::Type > SAL_CALL |
369 | | getTypes() override; |
370 | | |
371 | | // ____ document::XDocumentPropertiesSupplier ____ |
372 | | virtual css::uno::Reference< css::document::XDocumentProperties > SAL_CALL |
373 | | getDocumentProperties( ) override; |
374 | | |
375 | | // ____ document::XUndoManagerSupplier ____ |
376 | | virtual css::uno::Reference< css::document::XUndoManager > SAL_CALL |
377 | | getUndoManager( ) override; |
378 | | |
379 | | // css::chart2::XChartDocument |
380 | | virtual css::uno::Reference< css::chart2::XDiagram > SAL_CALL |
381 | | getFirstDiagram() override; |
382 | | virtual void SAL_CALL setFirstDiagram( |
383 | | const css::uno::Reference< css::chart2::XDiagram >& xDiagram ) override; |
384 | | virtual void SAL_CALL |
385 | | createInternalDataProvider( sal_Bool bCloneExistingData ) override; |
386 | | virtual sal_Bool SAL_CALL hasInternalDataProvider() override; |
387 | | virtual css::uno::Reference< css::chart2::data::XDataProvider > SAL_CALL |
388 | | getDataProvider() override; |
389 | | virtual void SAL_CALL |
390 | | setChartTypeManager( const css::uno::Reference< css::chart2::XChartTypeManager >& xNewManager ) override; |
391 | | virtual css::uno::Reference< css::chart2::XChartTypeManager > SAL_CALL |
392 | | getChartTypeManager() override; |
393 | | virtual css::uno::Reference< css::chart2::XChartStyle> SAL_CALL getStyles() override; |
394 | | virtual css::uno::Reference< css::chart2::XChartColorStyle> SAL_CALL getColorStyles() override; |
395 | | virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL |
396 | | getPageBackground() override; |
397 | | |
398 | | virtual void SAL_CALL createDefaultChart() override; |
399 | | |
400 | | // ____ XDataReceiver (public API) ____ |
401 | | virtual void SAL_CALL |
402 | | attachDataProvider( const css::uno::Reference< css::chart2::data::XDataProvider >& xProvider ) override; |
403 | | virtual void SAL_CALL setArguments( |
404 | | const css::uno::Sequence< css::beans::PropertyValue >& aArguments ) override; |
405 | | virtual css::uno::Sequence< OUString > SAL_CALL getUsedRangeRepresentations() override; |
406 | | virtual css::uno::Reference< css::chart2::data::XDataSource > SAL_CALL getUsedData() override; |
407 | | virtual void SAL_CALL attachNumberFormatsSupplier( const css::uno::Reference< |
408 | | css::util::XNumberFormatsSupplier >& xSupplier ) override; |
409 | | virtual css::uno::Reference< css::chart2::data::XRangeHighlighter > SAL_CALL getRangeHighlighter() override; |
410 | | virtual css::uno::Reference<css::awt::XRequestCallback> SAL_CALL getPopupRequest() override; |
411 | | |
412 | | // ____ XTitled ____ |
413 | | virtual css::uno::Reference< css::chart2::XTitle > SAL_CALL getTitleObject() override; |
414 | | virtual void SAL_CALL setTitleObject( const css::uno::Reference< css::chart2::XTitle >& Title ) override; |
415 | | |
416 | | // ____ XInterface (for old API wrapper) ____ |
417 | | virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override; |
418 | | |
419 | | // ____ XLoadable ____ |
420 | | virtual void SAL_CALL initNew() override; |
421 | | virtual void SAL_CALL load( const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
422 | | |
423 | | // ____ XCloneable ____ |
424 | | virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override; |
425 | | |
426 | | // ____ XVisualObject ____ |
427 | | virtual void SAL_CALL setVisualAreaSize( |
428 | | ::sal_Int64 nAspect, |
429 | | const css::awt::Size& aSize ) override; |
430 | | virtual css::awt::Size SAL_CALL getVisualAreaSize( |
431 | | ::sal_Int64 nAspect ) override; |
432 | | virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( |
433 | | ::sal_Int64 nAspect ) override; |
434 | | virtual ::sal_Int32 SAL_CALL getMapUnit( |
435 | | ::sal_Int64 nAspect ) override; |
436 | | |
437 | | // ____ XMultiServiceFactory ____ |
438 | | virtual css::uno::Reference< css::uno::XInterface > SAL_CALL |
439 | | createInstance( const OUString& aServiceSpecifier ) override; |
440 | | virtual css::uno::Reference< css::uno::XInterface > SAL_CALL |
441 | | createInstanceWithArguments( const OUString& ServiceSpecifier |
442 | | , const css::uno::Sequence< css::uno::Any >& Arguments ) override; |
443 | | virtual css::uno::Sequence< OUString > SAL_CALL |
444 | | getAvailableServiceNames() override; |
445 | | |
446 | | // ____ XStorageBasedDocument ____ |
447 | | virtual void SAL_CALL loadFromStorage( |
448 | | const css::uno::Reference< css::embed::XStorage >& xStorage, |
449 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
450 | | virtual void SAL_CALL storeToStorage( |
451 | | const css::uno::Reference< css::embed::XStorage >& xStorage, |
452 | | const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor ) override; |
453 | | virtual void SAL_CALL switchToStorage( |
454 | | const css::uno::Reference< css::embed::XStorage >& xStorage ) override; |
455 | | virtual css::uno::Reference< css::embed::XStorage > SAL_CALL getDocumentStorage() override; |
456 | | virtual void SAL_CALL addStorageChangeListener( |
457 | | const css::uno::Reference< css::document::XStorageChangeListener >& xListener ) override; |
458 | | virtual void SAL_CALL removeStorageChangeListener( |
459 | | const css::uno::Reference< css::document::XStorageChangeListener >& xListener ) override; |
460 | | |
461 | | // for SvNumberFormatsSupplierObj |
462 | | // ____ XUnoTunnel ___ |
463 | | virtual ::sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< ::sal_Int8 >& aIdentifier ) override; |
464 | | |
465 | | // ____ XNumberFormatsSupplier ____ |
466 | | virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getNumberFormatSettings() override; |
467 | | virtual css::uno::Reference< css::util::XNumberFormats > SAL_CALL getNumberFormats() override; |
468 | | |
469 | | // ____ XChild ____ |
470 | | virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent() override; |
471 | | virtual void SAL_CALL setParent( |
472 | | const css::uno::Reference< css::uno::XInterface >& Parent ) override; |
473 | | |
474 | | // ____ XDataSource ____ allows access to the currently used data and data ranges |
475 | | virtual css::uno::Sequence< css::uno::Reference< css::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences() override; |
476 | | |
477 | | // XUpdatable |
478 | | virtual void SAL_CALL update() override; |
479 | | |
480 | | // XDumper |
481 | | virtual OUString SAL_CALL dump(OUString const & kind) override; |
482 | | |
483 | | // SfxListener |
484 | | virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override; |
485 | | |
486 | | // normal methods |
487 | | css::uno::Reference< css::util::XNumberFormatsSupplier > const & |
488 | | getNumberFormatsSupplier(); |
489 | | |
490 | | const rtl::Reference<ChartView> & createChartView(); |
491 | | |
492 | | ChartView* getChartView() const; |
493 | | |
494 | 0 | const rtl::Reference< ::chart::Diagram > & getFirstChartDiagram() { return m_xDiagram; } |
495 | | |
496 | 0 | bool isTimeBased() const { return mbTimeBased;} |
497 | | |
498 | | void setTimeBasedRange(sal_Int32 nStart, sal_Int32 nEnd); |
499 | | |
500 | | bool isDataFromSpreadsheet(); |
501 | | |
502 | | bool isDataFromPivotTable() const; |
503 | | |
504 | | void removeDataProviders(); |
505 | | |
506 | 0 | const rtl::Reference< ::chart::ChartTypeManager > & getTypeManager() const { return m_xChartTypeManager; } |
507 | | |
508 | | rtl::Reference< ::chart::Title > getTitleObject2() const; |
509 | | void setTitleObject( const rtl::Reference< ::chart::Title >& Title ); |
510 | | |
511 | | rtl::Reference< BaseCoordinateSystem > getFirstCoordinateSystem(); |
512 | | |
513 | | std::vector< rtl::Reference< ::chart::DataSeries > > getDataSeries(); |
514 | | |
515 | | rtl::Reference< ChartType > getChartTypeOfSeries( const rtl::Reference< ::chart::DataSeries >& xGivenDataSeries ); |
516 | | |
517 | | static css::awt::Size getDefaultPageSize(); |
518 | | |
519 | | css::awt::Size getPageSize(); |
520 | | |
521 | | void triggerRangeHighlighting(); |
522 | | |
523 | | bool isIncludeHiddenCells(); |
524 | | bool setIncludeHiddenCells( bool bIncludeHiddenCells ); |
525 | | |
526 | | std::shared_ptr<model::Theme> getDocumentTheme() const; |
527 | 0 | ChartColorPaletteType getColorPaletteType() const { return m_eColorPaletteType; } |
528 | 0 | sal_uInt32 getColorPaletteIndex() const { return m_nColorPaletteIndex; } |
529 | | void setColorPalette(ChartColorPaletteType eType, sal_uInt32 nIndex); |
530 | | void clearColorPalette(); |
531 | | bool usesColorPalette() const; |
532 | | std::optional<ChartColorPalette> getCurrentColorPalette() const; |
533 | | void applyColorPaletteToDataSeries(const ChartColorPalette& rColorPalette); |
534 | | void onDocumentThemeChanged(); |
535 | | |
536 | | const std::optional<css::util::DateTime> & getNullDate() const; |
537 | | void changeNullDate(const css::util::DateTime& aNullDate); |
538 | | |
539 | | private: |
540 | | void dumpAsXml(xmlTextWriterPtr pWriter) const; |
541 | | |
542 | | sal_Int32 mnStart; |
543 | | sal_Int32 mnEnd; |
544 | | }; |
545 | | |
546 | | } // namespace chart |
547 | | |
548 | | /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |