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 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_chart2.hxx"
26 #include "LineProperties.hxx"
27 #include "macros.hxx"
28 #include <com/sun/star/beans/PropertyAttribute.hpp>
29 #include <com/sun/star/drawing/LineStyle.hpp>
30 #include <com/sun/star/drawing/LineDash.hpp>
31 #include <com/sun/star/drawing/LineJoint.hpp>
32
33 using namespace ::com::sun::star;
34
35 using ::com::sun::star::beans::Property;
36
37 namespace chart
38 {
39
AddPropertiesToVector(::std::vector<Property> & rOutProperties)40 void LineProperties::AddPropertiesToVector(
41 ::std::vector< Property > & rOutProperties )
42 {
43 // Line Properties see service drawing::LineProperties
44 // ---------------
45 rOutProperties.push_back(
46 Property( C2U( "LineStyle" ),
47 PROP_LINE_STYLE,
48 ::getCppuType( reinterpret_cast< const drawing::LineStyle * >(0)),
49 beans::PropertyAttribute::BOUND
50 | beans::PropertyAttribute::MAYBEDEFAULT ));
51
52 rOutProperties.push_back(
53 Property( C2U( "LineDash" ),
54 PROP_LINE_DASH,
55 ::getCppuType( reinterpret_cast< const drawing::LineDash * >(0)),
56 beans::PropertyAttribute::BOUND
57 | beans::PropertyAttribute::MAYBEVOID ));
58
59 //not in service description
60 rOutProperties.push_back(
61 Property( C2U( "LineDashName" ),
62 PROP_LINE_DASH_NAME,
63 ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)),
64 beans::PropertyAttribute::BOUND
65 | beans::PropertyAttribute::MAYBEDEFAULT
66 | beans::PropertyAttribute::MAYBEVOID ));
67
68 rOutProperties.push_back(
69 Property( C2U( "LineColor" ),
70 PROP_LINE_COLOR,
71 ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
72 beans::PropertyAttribute::BOUND
73 | beans::PropertyAttribute::MAYBEDEFAULT ));
74
75 rOutProperties.push_back(
76 Property( C2U( "LineTransparence" ),
77 PROP_LINE_TRANSPARENCE,
78 ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)),
79 beans::PropertyAttribute::BOUND
80 | beans::PropertyAttribute::MAYBEDEFAULT ));
81
82 rOutProperties.push_back(
83 Property( C2U( "LineWidth" ),
84 PROP_LINE_WIDTH,
85 ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
86 beans::PropertyAttribute::BOUND
87 | beans::PropertyAttribute::MAYBEDEFAULT ));
88
89 rOutProperties.push_back(
90 Property( C2U( "LineJoint" ),
91 PROP_LINE_JOINT,
92 ::getCppuType( reinterpret_cast< const drawing::LineJoint * >(0)),
93 beans::PropertyAttribute::BOUND
94 | beans::PropertyAttribute::MAYBEDEFAULT ));
95 }
96
AddDefaultsToMap(::chart::tPropertyValueMap & rOutMap)97 void LineProperties::AddDefaultsToMap(
98 ::chart::tPropertyValueMap & rOutMap )
99 {
100 ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LINE_STYLE, drawing::LineStyle_SOLID );
101 ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINE_WIDTH, 0 );
102 ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_LINE_COLOR, 0x000000 ); // black
103 ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_LINE_TRANSPARENCE, 0 );
104 ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_LINE_JOINT, drawing::LineJoint_ROUND );
105 }
106
IsLineVisible(const::com::sun::star::uno::Reference<::com::sun::star::beans::XPropertySet> & xLineProperties)107 bool LineProperties::IsLineVisible( const ::com::sun::star::uno::Reference<
108 ::com::sun::star::beans::XPropertySet >& xLineProperties )
109 {
110 bool bRet = false;
111 try
112 {
113 if( xLineProperties.is() )
114 {
115 drawing::LineStyle aLineStyle(drawing::LineStyle_SOLID);
116 xLineProperties->getPropertyValue( C2U( "LineStyle" ) ) >>= aLineStyle;
117 if( aLineStyle != drawing::LineStyle_NONE )
118 {
119 sal_Int16 nLineTransparence=0;
120 xLineProperties->getPropertyValue( C2U( "LineTransparence" ) ) >>= nLineTransparence;
121 if(100!=nLineTransparence)
122 {
123 bRet = true;
124 }
125 }
126 }
127 }
128 catch( const uno::Exception & ex )
129 {
130 ASSERT_EXCEPTION( ex );
131 }
132 return bRet;
133 }
134
SetLineVisible(const::com::sun::star::uno::Reference<::com::sun::star::beans::XPropertySet> & xLineProperties)135 void LineProperties::SetLineVisible( const ::com::sun::star::uno::Reference<
136 ::com::sun::star::beans::XPropertySet >& xLineProperties )
137 {
138 try
139 {
140 if( xLineProperties.is() )
141 {
142 drawing::LineStyle aLineStyle(drawing::LineStyle_SOLID);
143 xLineProperties->getPropertyValue( C2U( "LineStyle" ) ) >>= aLineStyle;
144 if( aLineStyle == drawing::LineStyle_NONE )
145 xLineProperties->setPropertyValue( C2U( "LineStyle" ), uno::makeAny( drawing::LineStyle_SOLID ) );
146
147 sal_Int16 nLineTransparence=0;
148 xLineProperties->getPropertyValue( C2U( "LineTransparence" ) ) >>= nLineTransparence;
149 if(100==nLineTransparence)
150 xLineProperties->setPropertyValue( C2U( "LineTransparence" ), uno::makeAny( sal_Int16(0) ) );
151 }
152 }
153 catch( const uno::Exception & ex )
154 {
155 ASSERT_EXCEPTION( ex );
156 }
157 }
158
SetLineInvisible(const::com::sun::star::uno::Reference<::com::sun::star::beans::XPropertySet> & xLineProperties)159 void LineProperties::SetLineInvisible( const ::com::sun::star::uno::Reference<
160 ::com::sun::star::beans::XPropertySet >& xLineProperties )
161 {
162 try
163 {
164 if( xLineProperties.is() )
165 {
166 drawing::LineStyle aLineStyle(drawing::LineStyle_SOLID);
167 xLineProperties->getPropertyValue( C2U( "LineStyle" ) ) >>= aLineStyle;
168 if( aLineStyle != drawing::LineStyle_NONE )
169 xLineProperties->setPropertyValue( C2U( "LineStyle" ), uno::makeAny( drawing::LineStyle_NONE ) );
170 }
171 }
172 catch( const uno::Exception & ex )
173 {
174 ASSERT_EXCEPTION( ex );
175 }
176 }
177
178 } // namespace chart
179