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 "WrappedScaleTextProperties.hxx"
27 #include "FastPropertyIdRanges.hxx"
28 #include "macros.hxx"
29 
30 #include <com/sun/star/beans/PropertyAttribute.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 WrappedScaleTextProperty : public WrappedProperty
46 {
47 public:
48     WrappedScaleTextProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact );
49     virtual ~WrappedScaleTextProperty();
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 private:
59     ::boost::shared_ptr< Chart2ModelContact >   m_spChart2ModelContact;
60 };
61 
WrappedScaleTextProperty(::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)62 WrappedScaleTextProperty::WrappedScaleTextProperty( ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
63     : ::chart::WrappedProperty( C2U( "ScaleText" ), rtl::OUString() )
64     , m_spChart2ModelContact( spChart2ModelContact )
65 {
66 }
67 
~WrappedScaleTextProperty()68 WrappedScaleTextProperty::~WrappedScaleTextProperty()
69 {
70 }
71 
setPropertyValue(const Any & rOuterValue,const Reference<beans::XPropertySet> & xInnerPropertySet) const72 void WrappedScaleTextProperty::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const
73                 throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
74 {
75     static const OUString aRefSizeName( RTL_CONSTASCII_USTRINGPARAM("ReferencePageSize") );
76 
77     if( xInnerPropertySet.is() )
78     {
79         bool bNewValue = false;
80         if( ! (rOuterValue >>= bNewValue) )
81         {
82             if( rOuterValue.hasValue() )
83                 throw lang::IllegalArgumentException( C2U("Property ScaleText requires value of type boolean"), 0, 0 );
84         }
85 
86         try
87         {
88             if( bNewValue )
89             {
90                 awt::Size aRefSize( m_spChart2ModelContact->GetPageSize() );
91 				xInnerPropertySet->setPropertyValue( aRefSizeName, uno::makeAny( aRefSize ) );
92             }
93             else
94                 xInnerPropertySet->setPropertyValue( aRefSizeName, Any() );
95         }
96         catch( uno::Exception & ex )
97         {
98             ASSERT_EXCEPTION( ex );
99         }
100     }
101 }
102 
getPropertyValue(const Reference<beans::XPropertySet> & xInnerPropertySet) const103 Any WrappedScaleTextProperty::getPropertyValue( const Reference< beans::XPropertySet >& xInnerPropertySet ) const
104                         throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
105 {
106     static const OUString aRefSizeName( RTL_CONSTASCII_USTRINGPARAM("ReferencePageSize") );
107 
108     Any aRet( getPropertyDefault( Reference< beans::XPropertyState >( xInnerPropertySet, uno::UNO_QUERY ) ) );
109     if( xInnerPropertySet.is() )
110     {
111         if( xInnerPropertySet->getPropertyValue( aRefSizeName ).hasValue() )
112             aRet <<= true;
113         else
114             aRet <<= false;
115     }
116 
117     return aRet;
118 }
119 
getPropertyDefault(const Reference<beans::XPropertyState> &) const120 Any WrappedScaleTextProperty::getPropertyDefault( const Reference< beans::XPropertyState >& /*xInnerPropertyState*/ ) const
121                         throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
122 {
123     Any aRet;
124     aRet <<= false;
125     return aRet;
126 }
127 
128 namespace
129 {
130 enum
131 {
132     PROP_CHART_SCALE_TEXT = FAST_PROPERTY_ID_START_SCALE_TEXT_PROP
133 };
134 
135 }//anonymous namespace
136 
137 //-----------------------------------------------------------------------------
138 //-----------------------------------------------------------------------------
139 //-----------------------------------------------------------------------------
addProperties(::std::vector<Property> & rOutProperties)140 void WrappedScaleTextProperties::addProperties( ::std::vector< Property > & rOutProperties )
141 {
142     rOutProperties.push_back(
143         Property( C2U( "ScaleText" ),
144                   PROP_CHART_SCALE_TEXT,
145                   ::getBooleanCppuType(),
146                   beans::PropertyAttribute::MAYBEVOID
147                   | beans::PropertyAttribute::MAYBEDEFAULT ));
148 }
149 
150 //-----------------------------------------------------------------------------
151 //-----------------------------------------------------------------------------
152 
addWrappedProperties(std::vector<WrappedProperty * > & rList,::boost::shared_ptr<Chart2ModelContact> spChart2ModelContact)153 void WrappedScaleTextProperties::addWrappedProperties( std::vector< WrappedProperty* >& rList
154                                  , ::boost::shared_ptr< Chart2ModelContact > spChart2ModelContact )
155 {
156     rList.push_back( new WrappedScaleTextProperty( spChart2ModelContact ) );
157 }
158 
159 } //namespace wrapper
160 } //namespace chart
161 //.............................................................................
162