1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #include "precompiled_chart2.hxx" 25 26 #include "WrappedAutomaticPositionProperties.hxx" 27 #include "FastPropertyIdRanges.hxx" 28 #include "macros.hxx" 29 #include <com/sun/star/beans/PropertyAttribute.hpp> 30 #include <com/sun/star/chart2/RelativePosition.hpp> 31 32 using namespace ::com::sun::star; 33 using ::com::sun::star::uno::Any; 34 using ::com::sun::star::uno::Reference; 35 using ::com::sun::star::uno::Sequence; 36 using ::com::sun::star::beans::Property; 37 using ::rtl::OUString; 38 39 //............................................................................. 40 namespace chart 41 { 42 namespace wrapper 43 { 44 45 class WrappedAutomaticPositionProperty : public WrappedProperty 46 { 47 public: 48 WrappedAutomaticPositionProperty(); 49 virtual ~WrappedAutomaticPositionProperty(); 50 51 virtual void setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const 52 throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException); 53 virtual Any getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const 54 throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException); 55 virtual Any getPropertyDefault( const Reference< beans::XPropertyState >& xInnerPropertyState ) const 56 throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException); 57 }; 58 59 WrappedAutomaticPositionProperty::WrappedAutomaticPositionProperty() 60 : ::chart::WrappedProperty( C2U( "AutomaticPosition" ), rtl::OUString() ) 61 { 62 } 63 WrappedAutomaticPositionProperty::~WrappedAutomaticPositionProperty() 64 { 65 } 66 67 void WrappedAutomaticPositionProperty::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const 68 throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException) 69 { 70 if( xInnerPropertySet.is() ) 71 { 72 bool bNewValue = true; 73 if( ! (rOuterValue >>= bNewValue) ) 74 throw lang::IllegalArgumentException( C2U("Property AutomaticPosition requires value of type boolean"), 0, 0 ); 75 76 try 77 { 78 if( bNewValue ) 79 { 80 Any aRelativePosition( xInnerPropertySet->getPropertyValue( C2U( "RelativePosition" ) ) ); 81 if( aRelativePosition.hasValue() ) 82 xInnerPropertySet->setPropertyValue( C2U( "RelativePosition" ), Any() ); 83 } 84 } 85 catch( uno::Exception & ex ) 86 { 87 ASSERT_EXCEPTION( ex ); 88 } 89 } 90 } 91 92 Any WrappedAutomaticPositionProperty::getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const 93 throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) 94 { 95 Any aRet( getPropertyDefault( Reference< beans::XPropertyState >( xInnerPropertySet, uno::UNO_QUERY ) ) ); 96 if( xInnerPropertySet.is() ) 97 { 98 Any aRelativePosition( xInnerPropertySet->getPropertyValue( C2U( "RelativePosition" ) ) ); 99 if( !aRelativePosition.hasValue() ) 100 aRet <<= true; 101 } 102 return aRet; 103 } 104 105 Any WrappedAutomaticPositionProperty::getPropertyDefault( const Reference< beans::XPropertyState >& /*xInnerPropertyState*/ ) const 106 throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) 107 { 108 Any aRet; 109 aRet <<= false; 110 return aRet; 111 } 112 113 namespace 114 { 115 enum 116 { 117 PROP_CHART_AUTOMATIC_POSITION = FAST_PROPERTY_ID_START_CHART_AUTOPOSITION_PROP 118 }; 119 120 void lcl_addWrappedProperties( std::vector< WrappedProperty* >& rList ) 121 { 122 rList.push_back( new WrappedAutomaticPositionProperty() ); 123 } 124 125 }//anonymous namespace 126 127 //----------------------------------------------------------------------------- 128 //----------------------------------------------------------------------------- 129 //----------------------------------------------------------------------------- 130 void WrappedAutomaticPositionProperties::addProperties( ::std::vector< Property > & rOutProperties ) 131 { 132 rOutProperties.push_back( 133 Property( C2U( "AutomaticPosition" ), 134 PROP_CHART_AUTOMATIC_POSITION, 135 ::getBooleanCppuType(), 136 beans::PropertyAttribute::BOUND 137 | beans::PropertyAttribute::MAYBEDEFAULT )); 138 } 139 140 //----------------------------------------------------------------------------- 141 //----------------------------------------------------------------------------- 142 143 void WrappedAutomaticPositionProperties::addWrappedProperties( std::vector< WrappedProperty* >& rList ) 144 { 145 lcl_addWrappedProperties( rList ); 146 } 147 148 } //namespace wrapper 149 } //namespace chart 150 //............................................................................. 151