2010-10-12 15:59:00 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2007-05-22 16:18:14 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 18:25:34 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
2008-04-10 18:25:34 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
2008-04-10 18:25:34 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
2008-04-10 18:25:34 +00:00
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
2008-04-10 18:25:34 +00:00
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
2008-04-10 18:25:34 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
2007-05-22 16:18:14 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
#include "GridWrapper.hxx"
|
|
|
|
#include "macros.hxx"
|
|
|
|
#include "AxisHelper.hxx"
|
|
|
|
#include "Chart2ModelContact.hxx"
|
|
|
|
#include "ContainerHelper.hxx"
|
|
|
|
#include "AxisIndexDefines.hxx"
|
|
|
|
#include <comphelper/InlineContainer.hxx>
|
|
|
|
#include <com/sun/star/beans/PropertyAttribute.hpp>
|
|
|
|
|
|
|
|
#include "LineProperties.hxx"
|
|
|
|
#include "UserDefinedProperties.hxx"
|
|
|
|
#include "WrappedDefaultProperty.hxx"
|
|
|
|
|
|
|
|
#include <algorithm>
|
|
|
|
#include <rtl/ustrbuf.hxx>
|
|
|
|
#include <rtl/math.hxx>
|
|
|
|
|
|
|
|
using namespace ::com::sun::star;
|
|
|
|
using namespace ::com::sun::star::chart2;
|
|
|
|
|
|
|
|
using ::com::sun::star::beans::Property;
|
|
|
|
using ::osl::MutexGuard;
|
|
|
|
using ::com::sun::star::uno::Reference;
|
|
|
|
using ::com::sun::star::uno::Sequence;
|
|
|
|
using ::rtl::OUString;
|
|
|
|
|
|
|
|
namespace
|
|
|
|
{
|
|
|
|
static const OUString lcl_aServiceName(
|
|
|
|
RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart.Grid" ));
|
|
|
|
|
2010-10-05 11:10:54 +02:00
|
|
|
struct StaticGridWrapperPropertyArray_Initializer
|
2007-05-22 16:18:14 +00:00
|
|
|
{
|
2010-10-05 11:10:54 +02:00
|
|
|
Sequence< Property >* operator()()
|
|
|
|
{
|
|
|
|
static Sequence< Property > aPropSeq( lcl_GetPropertySequence() );
|
|
|
|
return &aPropSeq;
|
|
|
|
}
|
|
|
|
private:
|
|
|
|
Sequence< Property > lcl_GetPropertySequence()
|
2007-05-22 16:18:14 +00:00
|
|
|
{
|
|
|
|
::std::vector< ::com::sun::star::beans::Property > aProperties;
|
|
|
|
::chart::LineProperties::AddPropertiesToVector( aProperties );
|
|
|
|
::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
|
|
|
|
|
|
|
|
::std::sort( aProperties.begin(), aProperties.end(),
|
|
|
|
::chart::PropertyNameLess() );
|
|
|
|
|
2010-10-05 11:10:54 +02:00
|
|
|
return ::chart::ContainerHelper::ContainerToSequence( aProperties );
|
2007-05-22 16:18:14 +00:00
|
|
|
}
|
2010-10-05 11:10:54 +02:00
|
|
|
};
|
2007-05-22 16:18:14 +00:00
|
|
|
|
2010-10-05 11:10:54 +02:00
|
|
|
struct StaticGridWrapperPropertyArray : public rtl::StaticAggregate< Sequence< Property >, StaticGridWrapperPropertyArray_Initializer >
|
|
|
|
{
|
|
|
|
};
|
2007-05-22 16:18:14 +00:00
|
|
|
|
|
|
|
} // anonymous namespace
|
|
|
|
|
|
|
|
// --------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
namespace chart
|
|
|
|
{
|
|
|
|
namespace wrapper
|
|
|
|
{
|
|
|
|
|
|
|
|
GridWrapper::GridWrapper(
|
|
|
|
tGridType eType, ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact ) :
|
|
|
|
m_spChart2ModelContact( spChart2ModelContact ),
|
|
|
|
m_aEventListenerContainer( m_aMutex ),
|
|
|
|
m_eType( eType )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
GridWrapper::~GridWrapper()
|
|
|
|
{}
|
|
|
|
|
|
|
|
void GridWrapper::getDimensionAndSubGridBool( tGridType eType, sal_Int32& rnDimensionIndex, bool& rbSubGrid )
|
|
|
|
{
|
|
|
|
rnDimensionIndex = 1;
|
|
|
|
rbSubGrid = false;
|
|
|
|
|
|
|
|
switch( eType )
|
|
|
|
{
|
2010-12-03 23:01:44 +01:00
|
|
|
case X_MAJOR_GRID:
|
2007-05-22 16:18:14 +00:00
|
|
|
rnDimensionIndex = 0; rbSubGrid = false; break;
|
2010-12-03 23:01:44 +01:00
|
|
|
case Y_MAJOR_GRID:
|
2007-05-22 16:18:14 +00:00
|
|
|
rnDimensionIndex = 1; rbSubGrid = false; break;
|
2010-12-03 23:01:44 +01:00
|
|
|
case Z_MAJOR_GRID:
|
2007-05-22 16:18:14 +00:00
|
|
|
rnDimensionIndex = 2; rbSubGrid = false; break;
|
2010-12-03 23:01:44 +01:00
|
|
|
case X_MINOR_GRID:
|
2007-05-22 16:18:14 +00:00
|
|
|
rnDimensionIndex = 0; rbSubGrid = true; break;
|
2010-12-03 23:01:44 +01:00
|
|
|
case Y_MINOR_GRID:
|
2007-05-22 16:18:14 +00:00
|
|
|
rnDimensionIndex = 1; rbSubGrid = true; break;
|
2010-12-03 23:01:44 +01:00
|
|
|
case Z_MINOR_GRID:
|
2007-05-22 16:18:14 +00:00
|
|
|
rnDimensionIndex = 2; rbSubGrid = true; break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// ____ XComponent ____
|
|
|
|
void SAL_CALL GridWrapper::dispose()
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
Reference< uno::XInterface > xSource( static_cast< ::cppu::OWeakObject* >( this ) );
|
|
|
|
m_aEventListenerContainer.disposeAndClear( lang::EventObject( xSource ) );
|
|
|
|
|
|
|
|
clearWrappedPropertySet();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL GridWrapper::addEventListener(
|
|
|
|
const Reference< lang::XEventListener >& xListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
m_aEventListenerContainer.addInterface( xListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL GridWrapper::removeEventListener(
|
|
|
|
const Reference< lang::XEventListener >& aListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
m_aEventListenerContainer.removeInterface( aListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
// ================================================================================
|
|
|
|
|
|
|
|
// WrappedPropertySet
|
|
|
|
|
|
|
|
Reference< beans::XPropertySet > GridWrapper::getInnerPropertySet()
|
|
|
|
{
|
|
|
|
Reference< beans::XPropertySet > xRet;
|
|
|
|
try
|
|
|
|
{
|
|
|
|
Reference< chart2::XDiagram > xDiagram( m_spChart2ModelContact->getChart2Diagram() );
|
|
|
|
uno::Reference< XCoordinateSystem > xCooSys( AxisHelper::getCoordinateSystemByIndex( xDiagram, 0 /*nCooSysIndex*/ ) );
|
|
|
|
|
|
|
|
sal_Int32 nDimensionIndex = 1;
|
|
|
|
bool bSubGrid = false;
|
|
|
|
getDimensionAndSubGridBool( m_eType, nDimensionIndex, bSubGrid );
|
|
|
|
|
|
|
|
sal_Int32 nSubGridIndex = bSubGrid ? 0 : -1;
|
|
|
|
xRet.set( AxisHelper::getGridProperties( xCooSys , nDimensionIndex, MAIN_AXIS_INDEX, nSubGridIndex ) );
|
|
|
|
}
|
2011-11-29 02:06:57 +09:00
|
|
|
catch( const uno::Exception & ex )
|
2007-05-22 16:18:14 +00:00
|
|
|
{
|
|
|
|
ASSERT_EXCEPTION( ex );
|
|
|
|
}
|
|
|
|
return xRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
const Sequence< beans::Property >& GridWrapper::getPropertySequence()
|
|
|
|
{
|
2010-10-05 11:10:54 +02:00
|
|
|
return *StaticGridWrapperPropertyArray::get();
|
2007-05-22 16:18:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const std::vector< WrappedProperty* > GridWrapper::createWrappedProperties()
|
|
|
|
{
|
|
|
|
::std::vector< ::chart::WrappedProperty* > aWrappedProperties;
|
|
|
|
|
2012-04-08 10:48:08 -04:30
|
|
|
aWrappedProperties.push_back( new WrappedDefaultProperty( "LineColor", "LineColor", uno::makeAny( sal_Int32( 0x000000) ) ) ); // black
|
2007-05-22 16:18:14 +00:00
|
|
|
|
|
|
|
return aWrappedProperties;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ================================================================================
|
|
|
|
|
|
|
|
Sequence< OUString > GridWrapper::getSupportedServiceNames_Static()
|
|
|
|
{
|
|
|
|
Sequence< OUString > aServices( 4 );
|
2012-04-08 10:48:08 -04:30
|
|
|
aServices[ 0 ] = "com.sun.star.chart.ChartGrid";
|
|
|
|
aServices[ 1 ] = "com.sun.star.xml.UserDefinedAttributeSupplier";
|
|
|
|
aServices[ 2 ] = "com.sun.star.drawing.LineProperties";
|
|
|
|
aServices[ 3 ] = "com.sun.star.beans.PropertySet";
|
2007-05-22 16:18:14 +00:00
|
|
|
|
|
|
|
return aServices;
|
|
|
|
}
|
|
|
|
|
|
|
|
// implement XServiceInfo methods basing upon getSupportedServiceNames_Static
|
|
|
|
APPHELPER_XSERVICEINFO_IMPL( GridWrapper, lcl_aServiceName );
|
|
|
|
|
|
|
|
} // namespace wrapper
|
|
|
|
} // namespace chart
|
2010-10-12 15:59:00 +02:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|