update dev300-m58
[ooovba.git] / chart2 / source / tools / WrappedProperty.cxx
blob122a9ca3623864fb4df580f5cdceaa807b55e8bf
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: WrappedProperty.cxx,v $
10 * $Revision: 1.3 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_chart2.hxx"
34 #include "WrappedProperty.hxx"
35 #include "macros.hxx"
36 #include <com/sun/star/drawing/LineStyle.hpp>
38 using namespace ::com::sun::star;
39 using ::com::sun::star::uno::Any;
40 using ::com::sun::star::uno::Reference;
41 using ::rtl::OUString;
44 //.............................................................................
45 namespace chart
47 //.............................................................................
49 WrappedProperty::WrappedProperty( const OUString& rOuterName, const OUString& rInnerName)
50 : m_aOuterName( rOuterName )
51 , m_aInnerName( rInnerName )
54 WrappedProperty::~WrappedProperty()
58 const OUString& WrappedProperty::getOuterName() const
60 return m_aOuterName;
63 //virtual
64 ::rtl::OUString WrappedProperty::getInnerName() const
66 return m_aInnerName;
69 Any WrappedProperty::convertInnerToOuterValue( const Any& rInnerValue ) const
71 return rInnerValue;
73 Any WrappedProperty::convertOuterToInnerValue( const Any& rOuterValue ) const
75 return rOuterValue;
78 void WrappedProperty::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const
79 throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
81 if(xInnerPropertySet.is())
82 xInnerPropertySet->setPropertyValue( this->getInnerName(), this->convertOuterToInnerValue( rOuterValue ) );
85 Any WrappedProperty::getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const
86 throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
88 Any aRet;
89 if( xInnerPropertySet.is() )
91 aRet = xInnerPropertySet->getPropertyValue( this->getInnerName() );
92 aRet = this->convertInnerToOuterValue( aRet );
94 return aRet;
97 void WrappedProperty::setPropertyToDefault( const Reference< beans::XPropertyState >& xInnerPropertyState ) const
98 throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException)
100 if( xInnerPropertyState.is() && this->getInnerName().getLength() )
101 xInnerPropertyState->setPropertyToDefault(this->getInnerName());
102 else
104 Reference< beans::XPropertySet > xInnerProp( xInnerPropertyState, uno::UNO_QUERY );
105 setPropertyValue( getPropertyDefault( xInnerPropertyState ), xInnerProp );
109 Any WrappedProperty::getPropertyDefault( const Reference< beans::XPropertyState >& xInnerPropertyState ) const
110 throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
112 Any aRet;
113 if( xInnerPropertyState.is() )
115 aRet = xInnerPropertyState->getPropertyDefault( this->getInnerName() );
116 aRet = this->convertInnerToOuterValue( aRet );
118 return aRet;
121 beans::PropertyState WrappedProperty::getPropertyState( const Reference< beans::XPropertyState >& xInnerPropertyState ) const
122 throw (beans::UnknownPropertyException, uno::RuntimeException)
124 beans::PropertyState aState = beans::PropertyState_DIRECT_VALUE;
125 rtl::OUString aInnerName( this->getInnerName() );
126 if( xInnerPropertyState.is() && aInnerName.getLength() )
127 aState = xInnerPropertyState->getPropertyState( aInnerName );
128 else
132 Reference< beans::XPropertySet > xInnerProp( xInnerPropertyState, uno::UNO_QUERY );
133 uno::Any aValue = this->getPropertyValue( xInnerProp );
134 if( !aValue.hasValue() )
135 aState = beans::PropertyState_DEFAULT_VALUE;
136 else
138 uno::Any aDefault = this->getPropertyDefault( xInnerPropertyState );
139 if( aValue == aDefault )
140 aState = beans::PropertyState_DEFAULT_VALUE;
143 catch( beans::UnknownPropertyException& ex )
145 ASSERT_EXCEPTION( ex );
148 return aState;
151 //.............................................................................
152 } //namespace chart
153 //.............................................................................