summaryrefslogtreecommitdiff
path: root/chart2/source/controller
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-03-28 12:29:13 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-03-29 00:47:21 -0400
commitffaf640b734885d2844a99cc1fd61c8a6a1d663b (patch)
tree2f3d1ad5551f59d2330f4d457cf283e1a0b4fc4c /chart2/source/controller
parentde7c0f31b5773296c8af6692e7155119209d07ef (diff)
Add API wrapper to handle properties of new GL3D chart type.
Now the new proprety gets properly imported and exported to and from ODF. Also, more on replacing string literals with define macro constants. Change-Id: I4b773d68610a8aeaeb239901dac166e4dc2dd80d
Diffstat (limited to 'chart2/source/controller')
-rw-r--r--chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx3
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.cxx146
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.hxx38
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx6
-rw-r--r--chart2/source/controller/dialogs/ChartTypeDialogController.cxx12
5 files changed, 196 insertions, 9 deletions
diff --git a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
index 984a2efae336..cb95fd6cd2c2 100644
--- a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
@@ -39,6 +39,7 @@
#include "WrappedSplineProperties.hxx"
#include "WrappedStockProperties.hxx"
#include "WrappedSceneProperty.hxx"
+#include "WrappedGL3DProperties.hxx"
#include "RelativePositionHelper.hxx"
#include "ContainerHelper.hxx"
#include "ControllerLockGuard.hxx"
@@ -471,6 +472,7 @@ private:
WrappedSplineProperties::addProperties( aProperties );
WrappedStockProperties::addProperties( aProperties );
WrappedAutomaticPositionProperties::addProperties( aProperties );
+ WrappedGL3DProperties::addProperties(aProperties);
::std::sort( aProperties.begin(), aProperties.end(),
::chart::PropertyNameLess() );
@@ -2045,6 +2047,7 @@ const std::vector< WrappedProperty* > DiagramWrapper::createWrappedProperties()
WrappedSplineProperties::addWrappedProperties( aWrappedProperties, m_spChart2ModelContact );
WrappedStockProperties::addWrappedProperties( aWrappedProperties, m_spChart2ModelContact );
WrappedAutomaticPositionProperties::addWrappedProperties( aWrappedProperties );
+ WrappedGL3DProperties::addWrappedProperties(aWrappedProperties, m_spChart2ModelContact);
aWrappedProperties.push_back( new WrappedDataRowSourceProperty( m_spChart2ModelContact ) );
aWrappedProperties.push_back( new WrappedStackingProperty( StackMode_Y_STACKED,m_spChart2ModelContact ) );
diff --git a/chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.cxx b/chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.cxx
new file mode 100644
index 000000000000..a4beaf53b326
--- /dev/null
+++ b/chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.cxx
@@ -0,0 +1,146 @@
+/* -*- 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/.
+ */
+
+#include "WrappedGL3DProperties.hxx"
+#include "Chart2ModelContact.hxx"
+#include <unonames.hxx>
+#include <WrappedProperty.hxx>
+#include <DiagramHelper.hxx>
+
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/chart2/XDiagram.hpp>
+
+using namespace com::sun::star;
+
+namespace chart { namespace wrapper {
+
+namespace {
+
+enum
+{
+ PROP_GL3DCHARTTYPE_ROUNDED_EDGE
+};
+
+class WrappedGL3DProperty : public WrappedProperty
+{
+ uno::Any maDefault;
+ boost::shared_ptr<Chart2ModelContact> mpModelContact;
+
+private:
+ uno::Reference<chart2::XChartType> getChartType() const
+ {
+ uno::Reference<chart2::XDiagram> xDiagram = mpModelContact->getChart2Diagram();
+ uno::Sequence<uno::Reference<chart2::XChartType> > aCTs =
+ DiagramHelper::getChartTypesFromDiagram(xDiagram);
+
+ for (sal_Int32 i = 0; i < aCTs.getLength(); ++i)
+ {
+ uno::Reference<chart2::XChartType> xThisCT = aCTs[i];
+ if (xThisCT->getChartType() == "com.sun.star.chart2.GL3DBarChartType")
+ // Found the right chart type.
+ return xThisCT;
+ }
+
+ return uno::Reference<chart2::XChartType>();
+ }
+
+public:
+ WrappedGL3DProperty( const OUString& rInName, const OUString& rOutName, const uno::Any& rDefault, const boost::shared_ptr<Chart2ModelContact>& pContact ) :
+ WrappedProperty(rInName, rOutName), maDefault(rDefault), mpModelContact(pContact) {}
+
+ virtual ~WrappedGL3DProperty() {}
+
+ virtual uno::Any getPropertyValue( const uno::Reference<beans::XPropertySet>& /*xInnerPS*/ ) const
+ throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+ uno::Reference<chart2::XChartType> xCT = getChartType();
+ if (!xCT.is())
+ return uno::Any();
+
+ try
+ {
+ uno::Reference<beans::XPropertySet> xPS(xCT, uno::UNO_QUERY_THROW);
+ return xPS->getPropertyValue(CHART_UNONAME_ROUNDED_EDGE);
+ }
+ catch ( const uno::Exception& ) {}
+
+ return uno::Any();
+ };
+
+ virtual void setPropertyValue(
+ const uno::Any& rOutValue, const uno::Reference<beans::XPropertySet>& /*xInnerPS*/ ) const
+ throw (beans::UnknownPropertyException, beans::PropertyVetoException,
+ lang::IllegalArgumentException, lang::WrappedTargetException,
+ uno::RuntimeException)
+ {
+ uno::Reference<chart2::XChartType> xCT = getChartType();
+ if (!xCT.is())
+ return;
+
+ try
+ {
+ uno::Reference<beans::XPropertySet> xPS(xCT, uno::UNO_QUERY_THROW);
+ return xPS->setPropertyValue(CHART_UNONAME_ROUNDED_EDGE, rOutValue);
+ }
+ catch ( const uno::Exception& ) {}
+ }
+
+ virtual void setPropertyToDefault( const uno::Reference<beans::XPropertyState>& /*xInnerPropState*/ ) const
+ throw (beans::UnknownPropertyException, uno::RuntimeException)
+ {
+ uno::Reference<chart2::XChartType> xCT = getChartType();
+ if (!xCT.is())
+ return;
+
+ try
+ {
+ uno::Reference<beans::XPropertySet> xPS(xCT, uno::UNO_QUERY_THROW);
+ return xPS->setPropertyValue(CHART_UNONAME_ROUNDED_EDGE, maDefault);
+ }
+ catch ( const uno::Exception& ) {}
+ }
+
+ virtual uno::Any getPropertyDefault( const uno::Reference<beans::XPropertyState>& /*xInnerPS*/ ) const
+ throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+ return maDefault;
+ }
+
+ virtual beans::PropertyState getPropertyState( const uno::Reference<beans::XPropertyState>& /*xInnerPS*/ ) const
+ throw (beans::UnknownPropertyException, uno::RuntimeException)
+ {
+ return beans::PropertyState_DIRECT_VALUE;
+ }
+};
+
+}
+
+void WrappedGL3DProperties::addProperties( std::vector<css::beans::Property> & rOutProps )
+{
+ rOutProps.push_back(
+ beans::Property(
+ CHART_UNONAME_ROUNDED_EDGE,
+ PROP_GL3DCHARTTYPE_ROUNDED_EDGE,
+ ::getCppuBooleanType(),
+ beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT
+ )
+ );
+}
+
+void WrappedGL3DProperties::addWrappedProperties(
+ std::vector<WrappedProperty*>& rList, const boost::shared_ptr<Chart2ModelContact>& pChart2ModelContact )
+{
+ rList.push_back(
+ new WrappedGL3DProperty(
+ CHART_UNONAME_ROUNDED_EDGE, CHART_UNONAME_ROUNDED_EDGE, uno::makeAny(false), pChart2ModelContact));
+}
+
+}}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.hxx b/chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.hxx
new file mode 100644
index 000000000000..90034a0f5dd7
--- /dev/null
+++ b/chart2/source/controller/chartapiwrapper/WrappedGL3DProperties.hxx
@@ -0,0 +1,38 @@
+/* -*- 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/.
+ */
+
+#ifndef CHART2_WRAPPEDGL3DPROPERTIES_HXX
+#define CHART2_WRAPPEDGL3DPROPERTIES_HXX
+
+#include <vector>
+#include <boost/shared_ptr.hpp>
+
+#include <com/sun/star/beans/Property.hpp>
+
+namespace chart {
+
+class WrappedProperty;
+
+namespace wrapper {
+
+class Chart2ModelContact;
+
+class WrappedGL3DProperties
+{
+public:
+ static void addProperties( std::vector<css::beans::Property> & rOutProps );
+ static void addWrappedProperties(
+ std::vector<WrappedProperty*>& rList, const boost::shared_ptr<Chart2ModelContact>& pChart2ModelContact );
+};
+
+}}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx b/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx
index 4adf8ea209d1..13cb3cf99afd 100644
--- a/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx
+++ b/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx
@@ -212,16 +212,16 @@ void WrappedSplineProperties::addWrappedProperties( std::vector< WrappedProperty
rList.push_back( new WrappedSplineTypeProperty( spChart2ModelContact ) );
rList.push_back(
new WrappedSplineProperty<sal_Int32>(
- CHART_UNONAME_SPLINE_ORDER, "SplineOrder", // same name ?
+ CHART_UNONAME_SPLINE_ORDER, CHART_UNONAME_SPLINE_ORDER,
uno::makeAny(sal_Int32(3)), spChart2ModelContact));
rList.push_back(
new WrappedSplineProperty<sal_Int32>(
- CHART_UNONAME_SPLINE_RESOLUTION, "CurveResolution",
+ CHART_UNONAME_SPLINE_RESOLUTION, CHART_UNONAME_CURVE_RESOLUTION,
uno::makeAny(sal_Int32(20)), spChart2ModelContact));
}
WrappedSplineTypeProperty::WrappedSplineTypeProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
- : WrappedSplineProperty<sal_Int32>(CHART_UNONAME_SPLINE_TYPE, "CurveStyle", uno::makeAny(sal_Int32(0)), spChart2ModelContact )
+ : WrappedSplineProperty<sal_Int32>(CHART_UNONAME_SPLINE_TYPE, CHART_UNONAME_CURVE_STYLE, uno::makeAny(sal_Int32(0)), spChart2ModelContact )
{
}
WrappedSplineTypeProperty::~WrappedSplineTypeProperty()
diff --git a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx
index c31ffc88ee79..ee1d89968677 100644
--- a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx
+++ b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx
@@ -146,9 +146,9 @@ ChartTypeParameter ChartTypeDialogController::getChartTypeParameterForService(
{
try
{
- xTemplateProps->getPropertyValue( "CurveStyle" ) >>= aRet.eCurveStyle;
- xTemplateProps->getPropertyValue( "CurveResolution" ) >>= aRet.nCurveResolution;
- xTemplateProps->getPropertyValue( "SplineOrder" ) >>= aRet.nSplineOrder;
+ xTemplateProps->getPropertyValue( CHART_UNONAME_CURVE_STYLE ) >>= aRet.eCurveStyle;
+ xTemplateProps->getPropertyValue( CHART_UNONAME_CURVE_RESOLUTION ) >>= aRet.nCurveResolution;
+ xTemplateProps->getPropertyValue( CHART_UNONAME_SPLINE_ORDER ) >>= aRet.nSplineOrder;
}
catch( uno::Exception & ex )
{
@@ -291,9 +291,9 @@ uno::Reference< XChartTypeTemplate > ChartTypeDialogController::getCurrentTempla
{
try
{
- xTemplateProps->setPropertyValue( "CurveStyle" , uno::makeAny(rParameter.eCurveStyle) );
- xTemplateProps->setPropertyValue( "CurveResolution" , uno::makeAny(rParameter.nCurveResolution) );
- xTemplateProps->setPropertyValue( "SplineOrder" , uno::makeAny(rParameter.nSplineOrder) );
+ xTemplateProps->setPropertyValue( CHART_UNONAME_CURVE_STYLE , uno::makeAny(rParameter.eCurveStyle) );
+ xTemplateProps->setPropertyValue( CHART_UNONAME_CURVE_RESOLUTION , uno::makeAny(rParameter.nCurveResolution) );
+ xTemplateProps->setPropertyValue( CHART_UNONAME_SPLINE_ORDER , uno::makeAny(rParameter.nSplineOrder) );
}
catch( uno::Exception & ex )
{