diff options
Diffstat (limited to 'chart2/source/model/template/ChartTypeTemplate.hxx')
-rw-r--r-- | chart2/source/model/template/ChartTypeTemplate.hxx | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/chart2/source/model/template/ChartTypeTemplate.hxx b/chart2/source/model/template/ChartTypeTemplate.hxx deleted file mode 100644 index dcd62646a239..000000000000 --- a/chart2/source/model/template/ChartTypeTemplate.hxx +++ /dev/null @@ -1,252 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#pragma once - -#include <cppuhelper/implbase.hxx> -#include <StackMode.hxx> -#include <com/sun/star/chart2/XChartTypeTemplate.hpp> -#include <com/sun/star/lang/XServiceName.hpp> - -namespace com::sun::star::chart2 { class XChartType; } -namespace com::sun::star::chart2 { class XCoordinateSystemContainer; } -namespace com::sun::star::chart2 { class XDataSeries; } -namespace com::sun::star::uno { class XComponentContext; } - -namespace chart -{ - -/** For creating diagrams and modifying existing diagrams. A base class that - implements XChartTypeTemplate and offers some tooling for classes that - derive from this class. - - createDiagramByDataSource - - This does the following steps using some virtual helper-methods, that may be - overridden by derived classes: - - * creates an XDiagram via service-factory. - - * convert the given XDataSource to a sequence of XDataSeries using the - method createDataSeries(). In this class the DataInterpreter helper class - is used to create a standard interpretation (just y-values). - - * call applyDefaultStyle() for all XDataSeries in order to apply default - styles. In this class the series get the system-wide default colors as - "Color" property. - - * call applyStyle() for applying chart-type specific styles to all series. - The default implementation is empty. - - * call createCoordinateSystems() and apply them to the diagram. As - default one cartesian system with Scales using a linear Scaling is - created. - - * createChartTypes() is called in order to define the structure of the - diagram. For details see comment of this function. As default this - method creates a tree where all series appear in one branch with the chart - type determined by getChartTypeForNewSeries(). The stacking is determined - via the method getStackMode(). - - * create an XLegend via the global service factory, set it at the diagram. - */ -class ChartTypeTemplate : public ::cppu::WeakImplHelper< - css::chart2::XChartTypeTemplate, - css::lang::XServiceName > -{ -public: - explicit ChartTypeTemplate( css::uno::Reference< css::uno::XComponentContext > const & xContext, - const OUString & rServiceName ); - virtual ~ChartTypeTemplate() override; - -protected: - // ____ XChartTypeTemplate ____ - virtual css::uno::Reference< css::chart2::XDiagram > SAL_CALL createDiagramByDataSource( - const css::uno::Reference< css::chart2::data::XDataSource >& xDataSource, - const css::uno::Sequence< css::beans::PropertyValue >& aArguments ) override; - /// denotes if the chart needs categories at the first scale - virtual sal_Bool SAL_CALL supportsCategories() override; - - virtual void SAL_CALL changeDiagram( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram ) override; - virtual void SAL_CALL changeDiagramData( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, - const css::uno::Reference< css::chart2::data::XDataSource >& xDataSource, - const css::uno::Sequence< css::beans::PropertyValue >& aArguments ) override; - virtual sal_Bool SAL_CALL matchesTemplate( - const css::uno::Reference< - css::chart2::XDiagram >& xDiagram, - sal_Bool bAdaptProperties ) override; - // still abstract: getChartTypeForNewSeries() - virtual css::uno::Reference< css::chart2::XDataInterpreter > SAL_CALL getDataInterpreter() override; - virtual void SAL_CALL applyStyle( - const css::uno::Reference< css::chart2::XDataSeries >& xSeries, - ::sal_Int32 nChartTypeIndex, - ::sal_Int32 nSeriesIndex, - ::sal_Int32 nSeriesCount ) override; - virtual void SAL_CALL resetStyles( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram ) override; - - /// @throws css::uno::RuntimeException - void applyStyles( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram ); - - // ____ XServiceName ____ - virtual OUString SAL_CALL getServiceName() override; - - // Methods to override for automatic creation - - /// returns 2 by default. Supported are 2 and 3 - virtual sal_Int32 getDimension() const; - - /** returns StackMode::NONE by default. This is a global flag used for all - series of a specific chart type. If percent stacking is supported, the - percent stacking mode is retrieved from the first chart type (index 0) - - @param nChartTypeIndex denotes the index of the charttype in means - defined by the template creation order, i.e., 0 means the first - chart type that a template creates. - */ - virtual StackMode getStackMode( sal_Int32 nChartTypeIndex ) const; - - virtual css::uno::Reference< css::chart2::XChartType > - getChartTypeForIndex( sal_Int32 nChartTypeIndex ) = 0; - - virtual bool isSwapXAndY() const; - - // Methods for creating the diagram piecewise - - /** Allows derived classes to manipulate the diagrams whole, like changing - the wall color. The default implementation is empty. It is called by - FillDiagram which is called by createDiagramByDataSource and - changeDiagram - */ - virtual void adaptDiagram( - const css::uno::Reference< css::chart2::XDiagram > & xDiagram ); - - /** Creates a 2d or 3d cartesian coordinate system with mathematically - oriented, linear scales with auto-min/max. If the given - CoordinateSystemContainer is not empty, those coordinate system should - be reused. - - <p>The dimension depends on the value returned by getDimension().</p> - */ - virtual void createCoordinateSystems( - const css::uno::Reference< css::chart2::XCoordinateSystemContainer > & xOutCooSysCnt ); - - /** Sets categories at the scales of dimension 0 and the percent stacking at - the scales of dimension 1 of all given coordinate systems. - - <p>Called by FillDiagram.</p> - */ - virtual void adaptScales( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & aCooSysSeq, - const css::uno::Reference< css::chart2::data::XLabeledDataSequence > & xCategories ); - - /** create a data series tree, that fits the requirements of the chart type. - - <p>As default, this creates a tree with the following structure:</p> - - <pre> - root - | - +-- chart type (determined by getChartTypeForNewSeries()) - | - +-- category (DiscreteStackableScaleGroup using scale 0) - | - +-- values (ContinuousStackableScaleGroup using scale 1) - | - +-- series 0 - | - +-- series 1 - | - ... - | - +.. series n-1 - </pre> - - <p>If there are less than two scales available the returned tree is - empty.</p> - */ - virtual void createChartTypes( - const css::uno::Sequence< - css::uno::Sequence< - css::uno::Reference< - css::chart2::XDataSeries > > > & aSeriesSeq, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XCoordinateSystem > > & rCoordSys, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XChartType > > & aOldChartTypesSeq - ); - - /** create axes and add them to the given container. If there are already - compatible axes in the container these should be maintained. - - <p>As default, this method creates as many axes as there are dimensions - in the given first coordinate system. Each of the axis - represents one of the dimensions of the coordinate systems. If there are series - requesting a secondary axes a secondary y axes is added</p> - */ - void createAxes( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & rCoordSys ); - - /** Give the number of requested axis per dimension here. Default is one - axis for each dimension - */ - virtual sal_Int32 getAxisCountByDimension( sal_Int32 nDimension ); - - /** adapt properties of existing axes and remove superfluous axes - */ - virtual void adaptAxes( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & rCoordSys ); - - const css::uno::Reference< css::uno::XComponentContext >& - GetComponentContext() const { return m_xContext;} - - static void copyPropertiesFromOldToNewCoordinateSystem( - const css::uno::Sequence< css::uno::Reference< css::chart2::XChartType > > & rOldChartTypesSeq, - const css::uno::Reference< css::chart2::XChartType > & xNewChartType ); - -protected: - css::uno::Reference< css::uno::XComponentContext > m_xContext; - mutable css::uno::Reference< css::chart2::XDataInterpreter > m_xDataInterpreter; - -private: - const OUString m_aServiceName; - -private: - /** modifies the given diagram - */ - void FillDiagram( const css::uno::Reference< - css::chart2::XDiagram > & xDiagram, - const css::uno::Sequence< - css::uno::Sequence< - css::uno::Reference< - css::chart2::XDataSeries > > > & aSeriesSeq, - const css::uno::Reference< - css::chart2::data::XLabeledDataSequence >& xCategories, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XChartType > > & aOldChartTypesSeq); -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |