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/document/XDocumentPropertiesSupplier.hpp>
28#include <com/sun/star/document/XUndoManagerSupplier.hpp>
29#include <com/sun/star/lang/XMultiServiceFactory.hpp>
30#include <com/sun/star/lang/XServiceInfo.hpp>
31#include <com/sun/star/lang/XInitialization.hpp>
32#include <com/sun/star/util/XCloneable.hpp>
33#include <com/sun/star/embed/XVisualObject.hpp>
34#include <com/sun/star/document/XStorageBasedDocument.hpp>
35#include <com/sun/star/lang/XUnoTunnel.hpp>
36#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
37#include <com/sun/star/container/XChild.hpp>
38#include <com/sun/star/chart2/data/XDataSource.hpp>
39#include <com/sun/star/qa/XDumper.hpp>
42#include <com/sun/star/chart2/data/XDataReceiver.hpp>
44#include <com/sun/star/chart2/XChartDocument.hpp>
45#include <com/sun/star/chart2/XTitled.hpp>
47#include <com/sun/star/frame/XLoadable.hpp>
48#include <com/sun/star/datatransfer/XTransferable.hpp>
50#include <osl/mutex.hxx>
74class ChartTypeManager;
75class ChartTypeTemplate;
76class InternalDataProvider;
79class RangeHighlighter;
86typedef cppu::WeakImplHelper<
89 ,css::frame::XStorable2
90 ,css::util::XModifiable
91 ,css::lang::XServiceInfo
92 ,css::lang::XInitialization
93 ,css::chart2::XChartDocument
94 ,css::chart2::data::XDataReceiver
96 ,css::frame::XLoadable
97 ,css::util::XCloneable
98 ,css::embed::XVisualObject
99 ,css::lang::XMultiServiceFactory
100 ,css::document::XStorageBasedDocument
101 ,css::lang::XUnoTunnel
102 ,css::util::XNumberFormatsSupplier
103 ,css::container::XChild
104 ,css::util::XModifyListener
105 ,css::datatransfer::XTransferable
106 ,css::document::XDocumentPropertiesSupplier
107 ,css::chart2::data::XDataSource
108 ,css::document::XUndoManagerSupplier
109 ,css::util::XUpdatable
123 mutable ::apphelper::CloseableLifeTimeManager m_aLifeTimeManager;
125 mutable ::osl::Mutex m_aModelMutex;
127 bool volatile m_bModified;
129 bool volatile m_bUpdateNotificationsPending;
135 OUString m_aResource;
136 css::uno::Sequence< css::beans::PropertyValue > m_aMediaDescriptor;
137 css::uno::Reference< css::document::XDocumentProperties > m_xDocumentProperties;
141 css::uno::Reference< css::frame::XController > m_xCurrentController;
142 sal_uInt16 m_nControllerLockCount;
144 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
145 css::uno::Reference< css::uno::XAggregation > m_xOldModelAgg;
147 css::uno::Reference< css::embed::XStorage > m_xStorage;
149 css::awt::Size m_aVisualAreaSize;
150 css::uno::Reference< css::frame::XModel > m_xParent;
152 css::uno::Reference<css::awt::XRequestCallback> m_xPopupRequest;
153 std::vector< GraphicObject > m_aGraphicObjectVector;
155 css::uno::Reference< css::chart2::data::XDataProvider > m_xDataProvider;
162 css::uno::Reference< css::util::XNumberFormatsSupplier >
163 m_xNumberFormatsSupplier;
164 std::unique_ptr< SvNumberFormatter > m_apSvNumberFormatter;
181 OUString impl_g_getLocation();
184 impl_isControllerConnected(
const css::uno::Reference< com::sun::star::frame::XController >& xController );
187 css::uno::Reference< css::frame::XController >
188 impl_getCurrentController();
192 impl_notifyModifiedListeners();
195 impl_notifyCloseListeners();
198 impl_notifyStorageChangeListeners();
201 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor,
202 const css::uno::Reference< css::embed::XStorage > & xStorage );
204 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor,
205 const css::uno::Reference< css::embed::XStorage >& xStorage );
206 void impl_loadGraphics(
207 const css::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
208 css::uno::Reference< css::document::XFilter >
209 impl_createFilter(
const css::uno::Sequence< css::beans::PropertyValue > & rMediaDescriptor );
212 css::uno::Reference< css::chart2::data::XDataSource > impl_createDefaultData();
214 void impl_adjustAdditionalShapesPositionAndSize(
215 const css::awt::Size& aVisualAreaSize );
217 void insertDefaultChart();
220 ChartModel() =
delete;
221 ChartModel(css::uno::Reference< css::uno::XComponentContext > xContext);
222 explicit ChartModel(
const ChartModel & rOther );
223 virtual ~ChartModel()
override;
232 virtual void SAL_CALL initialize(
const css::uno::Sequence< css::uno::Any >& aArguments )
override;
237 attachResource(
const OUString& rURL,
238 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
240 virtual OUString SAL_CALL
243 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL
246 virtual void SAL_CALL
247 connectController(
const css::uno::Reference< css::frame::XController >& xController )
override;
249 virtual void SAL_CALL
250 disconnectController(
const css::uno::Reference< css::frame::XController >& xController )
override;
252 virtual void SAL_CALL
253 lockControllers()
override;
255 virtual void SAL_CALL
256 unlockControllers()
override;
259 hasControllersLocked()
override;
261 virtual css::uno::Reference< css::frame::XController > SAL_CALL
262 getCurrentController()
override;
264 virtual void SAL_CALL
265 setCurrentController(
const css::uno::Reference< css::frame::XController >& xController )
override;
267 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
268 getCurrentSelection()
override;
271 virtual void SAL_CALL
274 virtual void SAL_CALL
275 addEventListener(
const css::uno::Reference< css::lang::XEventListener > & xListener )
override;
277 virtual void SAL_CALL
278 removeEventListener(
const css::uno::Reference< css::lang::XEventListener > & xListener )
override;
281 virtual void SAL_CALL
285 virtual void SAL_CALL
286 addCloseListener(
const css::uno::Reference< css::util::XCloseListener > & xListener )
override;
288 virtual void SAL_CALL
289 removeCloseListener(
const css::uno::Reference< css::util::XCloseListener > & xListener )
override;
292 virtual void SAL_CALL storeSelf(
293 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
297 hasLocation()
override;
299 virtual OUString SAL_CALL
300 getLocation()
override;
303 isReadonly()
override;
305 virtual void SAL_CALL
308 virtual void SAL_CALL
309 storeAsURL(
const OUString& rURL,
310 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
312 virtual void SAL_CALL
313 storeToURL(
const OUString& rURL,
314 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
318 isModified()
override;
320 virtual void SAL_CALL
321 setModified(
sal_Bool bModified )
override;
324 virtual void SAL_CALL
325 addModifyListener(
const css::uno::Reference< css::util::XModifyListener >& xListener )
override;
327 virtual void SAL_CALL
328 removeModifyListener(
const css::uno::Reference< css::util::XModifyListener >& xListener )
override;
331 virtual void SAL_CALL modified(
332 const css::lang::EventObject& aEvent )
override;
335 virtual void SAL_CALL disposing(
336 const css::lang::EventObject& Source )
override;
339 virtual css::uno::Any SAL_CALL getTransferData(
340 const css::datatransfer::DataFlavor& aFlavor )
override;
341 virtual css::uno::Sequence< css::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors()
override;
342 virtual sal_Bool SAL_CALL isDataFlavorSupported(
343 const css::datatransfer::DataFlavor& aFlavor )
override;
346 virtual css::uno::Sequence< css::uno::Type > SAL_CALL
350 virtual css::uno::Reference< css::document::XDocumentProperties > SAL_CALL
351 getDocumentProperties( )
override;
354 virtual css::uno::Reference< css::document::XUndoManager > SAL_CALL
355 getUndoManager( )
override;
358 virtual css::uno::Reference< css::chart2::XDiagram > SAL_CALL
359 getFirstDiagram()
override;
360 virtual void SAL_CALL setFirstDiagram(
361 const css::uno::Reference< css::chart2::XDiagram >& xDiagram )
override;
362 virtual void SAL_CALL
363 createInternalDataProvider(
sal_Bool bCloneExistingData )
override;
364 virtual sal_Bool SAL_CALL hasInternalDataProvider()
override;
365 virtual css::uno::Reference< css::chart2::data::XDataProvider > SAL_CALL
366 getDataProvider()
override;
367 virtual void SAL_CALL
368 setChartTypeManager(
const css::uno::Reference< css::chart2::XChartTypeManager >& xNewManager )
override;
369 virtual css::uno::Reference< css::chart2::XChartTypeManager > SAL_CALL
370 getChartTypeManager()
override;
371 virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL
372 getPageBackground()
override;
374 virtual void SAL_CALL createDefaultChart()
override;
377 virtual void SAL_CALL
378 attachDataProvider(
const css::uno::Reference< css::chart2::data::XDataProvider >& xProvider )
override;
379 virtual void SAL_CALL setArguments(
380 const css::uno::Sequence< css::beans::PropertyValue >& aArguments )
override;
381 virtual css::uno::Sequence< OUString > SAL_CALL getUsedRangeRepresentations()
override;
382 virtual css::uno::Reference< css::chart2::data::XDataSource > SAL_CALL getUsedData()
override;
383 virtual void SAL_CALL attachNumberFormatsSupplier(
const css::uno::Reference<
384 css::util::XNumberFormatsSupplier >& xSupplier )
override;
385 virtual css::uno::Reference< css::chart2::data::XRangeHighlighter > SAL_CALL getRangeHighlighter()
override;
386 virtual css::uno::Reference<css::awt::XRequestCallback> SAL_CALL getPopupRequest()
override;
389 virtual css::uno::Reference< css::chart2::XTitle > SAL_CALL getTitleObject()
override;
390 virtual void SAL_CALL setTitleObject(
const css::uno::Reference< css::chart2::XTitle >&
Title )
override;
393 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type& aType )
override;
396 virtual void SAL_CALL initNew()
override;
397 virtual void SAL_CALL load(
const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
400 virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone()
override;
403 virtual void SAL_CALL setVisualAreaSize(
405 const css::awt::Size& aSize )
override;
406 virtual css::awt::Size SAL_CALL getVisualAreaSize(
407 ::sal_Int64 nAspect )
override;
408 virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation(
409 ::sal_Int64 nAspect )
override;
410 virtual ::sal_Int32 SAL_CALL getMapUnit(
411 ::sal_Int64 nAspect )
override;
414 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
416 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
417 createInstanceWithArguments(
const OUString& ServiceSpecifier
418 ,
const css::uno::Sequence< css::uno::Any >& Arguments )
override;
419 virtual css::uno::Sequence< OUString > SAL_CALL
420 getAvailableServiceNames()
override;
423 virtual void SAL_CALL loadFromStorage(
424 const css::uno::Reference< css::embed::XStorage >& xStorage,
425 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
426 virtual void SAL_CALL storeToStorage(
427 const css::uno::Reference< css::embed::XStorage >& xStorage,
428 const css::uno::Sequence< css::beans::PropertyValue >& rMediaDescriptor )
override;
429 virtual void SAL_CALL switchToStorage(
430 const css::uno::Reference< css::embed::XStorage >& xStorage )
override;
431 virtual css::uno::Reference< css::embed::XStorage > SAL_CALL getDocumentStorage()
override;
432 virtual void SAL_CALL addStorageChangeListener(
433 const css::uno::Reference< css::document::XStorageChangeListener >& xListener )
override;
434 virtual void SAL_CALL removeStorageChangeListener(
435 const css::uno::Reference< css::document::XStorageChangeListener >& xListener )
override;
439 virtual ::sal_Int64 SAL_CALL getSomething(
const css::uno::Sequence< ::sal_Int8 >& aIdentifier )
override;
442 virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getNumberFormatSettings()
override;
443 virtual css::uno::Reference< css::util::XNumberFormats > SAL_CALL
getNumberFormats()
override;
446 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent()
override;
447 virtual void SAL_CALL setParent(
448 const css::uno::Reference< css::uno::XInterface >& Parent )
override;
451 virtual css::uno::Sequence< css::uno::Reference< css::chart2::data::XLabeledDataSequence > > SAL_CALL getDataSequences()
override;
454 virtual void SAL_CALL
update()
override;
457 virtual OUString SAL_CALL
dump(OUString
const & kind)
override;
460 css::uno::Reference< css::util::XNumberFormatsSupplier >
const &
461 getNumberFormatsSupplier();
467 bool isTimeBased()
const {
return mbTimeBased;}
469 void setTimeBasedRange(sal_Int32 nStart, sal_Int32 nEnd);
471 bool isDataFromSpreadsheet();
473 bool isDataFromPivotTable()
const;
475 void removeDataProviders();
struct _xmlTextWriter * xmlTextWriterPtr
Reference< uno::XComponentContext > m_xContext
HRESULT createInstance(REFIID iid, Ifc **ppIfc)
The ChartView is responsible to manage the generation of Drawing Objects for visualization on a given...
struct _xmlTextWriter * xmlTextWriterPtr
VCL_DLLPUBLIC void dump(const SkBitmap &bitmap, const char *file)
cppu::WeakImplHelper< css::util::XCloseable,css::frame::XStorable2,css::util::XModifiable,css::lang::XServiceInfo,css::lang::XInitialization,css::chart2::XChartDocument,css::chart2::data::XDataReceiver,css::chart2::XTitled,css::frame::XLoadable,css::util::XCloneable,css::embed::XVisualObject,css::lang::XMultiServiceFactory,css::document::XStorageBasedDocument,css::lang::XUnoTunnel,css::util::XNumberFormatsSupplier,css::container::XChild,css::util::XModifyListener,css::datatransfer::XTransferable,css::document::XDocumentPropertiesSupplier,css::chart2::data::XDataSource,css::document::XUndoManagerSupplier,css::util::XUpdatable,css::qa::XDumper > ChartModel_Base
class SAL_LOPLUGIN_ANNOTATE("crosscast") TabPageNotifiable
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType, Interface1 *p1)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)