1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <FieldDescriptions.hxx>
21 #include <comphelper/diagnose_ex.hxx>
22 #include <strings.hxx>
23 #include <com/sun/star/sdbc/ColumnValue.hpp>
24 #include <comphelper/types.hxx>
25 #include <comphelper/extract.hxx>
26 #include <UITools.hxx>
27 #include <com/sun/star/util/NumberFormat.hpp>
29 #define DEFAULT_VARCHAR_PRECISION 100
30 #define DEFAULT_OTHER_PRECISION 16
31 #define DEFAULT_NUMERIC_PRECISION 5
32 #define DEFAULT_NUMERIC_SCALE 0
34 using namespace dbaui
;
35 using namespace ::com::sun::star::sdbc
;
36 using namespace ::com::sun::star::uno
;
37 using namespace ::com::sun::star::beans
;
38 using namespace ::com::sun::star::util
;
40 OFieldDescription::OFieldDescription()
41 :m_nType(DataType::VARCHAR
)
44 ,m_nIsNullable(ColumnValue::NULLABLE
)
46 ,m_eHorJustify(SvxCellHorJustify::Standard
)
47 ,m_bIsAutoIncrement(false)
48 ,m_bIsPrimaryKey(false)
54 OFieldDescription::OFieldDescription( const OFieldDescription
& rDescr
)
55 :m_aControlDefault(rDescr
.m_aControlDefault
)
56 ,m_aWidth(rDescr
.m_aWidth
)
57 ,m_aRelativePosition(rDescr
.m_aRelativePosition
)
58 ,m_pType(rDescr
.m_pType
)
59 ,m_xDest(rDescr
.m_xDest
)
60 ,m_xDestInfo(rDescr
.m_xDestInfo
)
61 ,m_sName(rDescr
.m_sName
)
62 ,m_sTypeName(rDescr
.m_sTypeName
)
63 ,m_sDescription(rDescr
.m_sDescription
)
64 ,m_sAutoIncrementValue(rDescr
.m_sAutoIncrementValue
)
65 ,m_nType(rDescr
.m_nType
)
66 ,m_nPrecision(rDescr
.m_nPrecision
)
67 ,m_nScale(rDescr
.m_nScale
)
68 ,m_nIsNullable(rDescr
.m_nIsNullable
)
69 ,m_nFormatKey(rDescr
.m_nFormatKey
)
70 ,m_eHorJustify(rDescr
.m_eHorJustify
)
71 ,m_bIsAutoIncrement(rDescr
.m_bIsAutoIncrement
)
72 ,m_bIsPrimaryKey(rDescr
.m_bIsPrimaryKey
)
73 ,m_bIsCurrency(rDescr
.m_bIsCurrency
)
74 ,m_bHidden(rDescr
.m_bHidden
)
78 OFieldDescription::~OFieldDescription()
82 OFieldDescription::OFieldDescription(const Reference
< XPropertySet
>& xAffectedCol
,bool _bUseAsDest
)
83 :m_nType(DataType::VARCHAR
)
86 ,m_nIsNullable(ColumnValue::NULLABLE
)
88 ,m_eHorJustify(SvxCellHorJustify::Standard
)
89 ,m_bIsAutoIncrement(false)
90 ,m_bIsPrimaryKey(false)
94 OSL_ENSURE(xAffectedCol
.is(),"PropertySet can not be null!");
95 if ( !xAffectedCol
.is() )
100 m_xDest
= xAffectedCol
;
101 m_xDestInfo
= xAffectedCol
->getPropertySetInfo();
107 Reference
<XPropertySetInfo
> xPropSetInfo
= xAffectedCol
->getPropertySetInfo();
108 if(xPropSetInfo
->hasPropertyByName(PROPERTY_NAME
))
109 SetName(::comphelper::getString(xAffectedCol
->getPropertyValue(PROPERTY_NAME
)));
110 if(xPropSetInfo
->hasPropertyByName(PROPERTY_DESCRIPTION
))
111 SetDescription(::comphelper::getString(xAffectedCol
->getPropertyValue(PROPERTY_DESCRIPTION
)));
112 if(xPropSetInfo
->hasPropertyByName(PROPERTY_HELPTEXT
))
115 xAffectedCol
->getPropertyValue(PROPERTY_HELPTEXT
) >>= sHelpText
;
116 SetHelpText(sHelpText
);
118 if(xPropSetInfo
->hasPropertyByName(PROPERTY_DEFAULTVALUE
))
119 SetDefaultValue( xAffectedCol
->getPropertyValue(PROPERTY_DEFAULTVALUE
) );
121 if(xPropSetInfo
->hasPropertyByName(PROPERTY_CONTROLDEFAULT
))
122 SetControlDefault( xAffectedCol
->getPropertyValue(PROPERTY_CONTROLDEFAULT
) );
124 if(xPropSetInfo
->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION
))
125 SetAutoIncrementValue(::comphelper::getString(xAffectedCol
->getPropertyValue(PROPERTY_AUTOINCREMENTCREATION
)));
126 if(xPropSetInfo
->hasPropertyByName(PROPERTY_TYPE
))
127 SetTypeValue(::comphelper::getINT32(xAffectedCol
->getPropertyValue(PROPERTY_TYPE
)));
128 if (xPropSetInfo
->hasPropertyByName(PROPERTY_TYPENAME
))
129 SetTypeName(::comphelper::getString(xAffectedCol
->getPropertyValue(PROPERTY_TYPENAME
)));
130 if(xPropSetInfo
->hasPropertyByName(PROPERTY_PRECISION
))
131 SetPrecision(::comphelper::getINT32(xAffectedCol
->getPropertyValue(PROPERTY_PRECISION
)));
132 if(xPropSetInfo
->hasPropertyByName(PROPERTY_SCALE
))
133 SetScale(::comphelper::getINT32(xAffectedCol
->getPropertyValue(PROPERTY_SCALE
)));
134 if(xPropSetInfo
->hasPropertyByName(PROPERTY_ISNULLABLE
))
135 SetIsNullable(::comphelper::getINT32(xAffectedCol
->getPropertyValue(PROPERTY_ISNULLABLE
)));
136 if(xPropSetInfo
->hasPropertyByName(PROPERTY_FORMATKEY
))
138 const Any aValue
= xAffectedCol
->getPropertyValue(PROPERTY_FORMATKEY
);
139 if ( aValue
.hasValue() )
140 SetFormatKey(::comphelper::getINT32(aValue
));
142 if(xPropSetInfo
->hasPropertyByName(PROPERTY_RELATIVEPOSITION
))
143 m_aRelativePosition
= xAffectedCol
->getPropertyValue(PROPERTY_RELATIVEPOSITION
);
144 if(xPropSetInfo
->hasPropertyByName(PROPERTY_WIDTH
))
145 m_aWidth
= xAffectedCol
->getPropertyValue(PROPERTY_WIDTH
);
146 if(xPropSetInfo
->hasPropertyByName(PROPERTY_HIDDEN
))
147 xAffectedCol
->getPropertyValue(PROPERTY_HIDDEN
) >>= m_bHidden
;
148 if(xPropSetInfo
->hasPropertyByName(PROPERTY_ALIGN
))
150 const Any aValue
= xAffectedCol
->getPropertyValue(PROPERTY_ALIGN
);
151 if ( aValue
.hasValue() )
152 SetHorJustify( ::dbaui::mapTextJustify(::comphelper::getINT32(aValue
)));
154 if(xPropSetInfo
->hasPropertyByName(PROPERTY_ISAUTOINCREMENT
))
155 SetAutoIncrement(::cppu::any2bool(xAffectedCol
->getPropertyValue(PROPERTY_ISAUTOINCREMENT
)));
157 catch(const Exception
&)
159 DBG_UNHANDLED_EXCEPTION("dbaccess");
164 void OFieldDescription::FillFromTypeInfo(const TOTypeInfoSP
& _pType
,bool _bForce
,bool _bReset
)
166 TOTypeInfoSP pOldType
= getTypeInfo();
167 if ( _pType
== pOldType
)
170 // reset type depending information
174 SetControlDefault(Any());
177 bool bForce
= _bForce
|| !pOldType
|| pOldType
->nType
!= _pType
->nType
;
178 switch ( _pType
->nType
)
181 case DataType::VARCHAR
:
184 sal_Int32 nPrec
= DEFAULT_VARCHAR_PRECISION
;
185 if ( GetPrecision() )
186 nPrec
= GetPrecision();
187 SetPrecision(std::min
<sal_Int32
>(nPrec
,_pType
->nPrecision
));
190 case DataType::TIMESTAMP
:
191 if ( bForce
&& _pType
->nMaximumScale
)
193 SetScale(std::min
<sal_Int32
>(GetScale() ? GetScale() : DEFAULT_NUMERIC_SCALE
,_pType
->nMaximumScale
));
199 sal_Int32 nPrec
= DEFAULT_OTHER_PRECISION
;
200 switch ( _pType
->nType
)
205 nPrec
= _pType
->nPrecision
;
208 if ( GetPrecision() )
209 nPrec
= GetPrecision();
213 if ( _pType
->nPrecision
)
214 SetPrecision(std::min
<sal_Int32
>(nPrec
? nPrec
: DEFAULT_NUMERIC_PRECISION
,_pType
->nPrecision
));
215 if ( _pType
->nMaximumScale
)
216 SetScale(std::min
<sal_Int32
>(GetScale() ? GetScale() : DEFAULT_NUMERIC_SCALE
,_pType
->nMaximumScale
));
219 if ( _pType
->aCreateParams
.isEmpty() )
221 SetPrecision(_pType
->nPrecision
);
222 SetScale(_pType
->nMinimumScale
);
224 if ( !_pType
->bNullable
&& IsNullable() )
225 SetIsNullable(ColumnValue::NO_NULLS
);
226 if ( !_pType
->bAutoIncrement
&& IsAutoIncrement() )
227 SetAutoIncrement(false);
228 SetCurrency( _pType
->bCurrency
);
230 SetTypeName(_pType
->aTypeName
);
233 void OFieldDescription::SetName(const OUString
& _rName
)
237 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_NAME
) )
238 m_xDest
->setPropertyValue(PROPERTY_NAME
,Any(_rName
));
242 catch(const Exception
& )
244 DBG_UNHANDLED_EXCEPTION("dbaccess");
248 void OFieldDescription::SetHelpText(const OUString
& _sHelpText
)
252 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_HELPTEXT
) )
253 m_xDest
->setPropertyValue(PROPERTY_HELPTEXT
,Any(_sHelpText
));
255 m_sHelpText
= _sHelpText
;
257 catch(const Exception
& )
259 DBG_UNHANDLED_EXCEPTION("dbaccess");
263 void OFieldDescription::SetDescription(const OUString
& _rDescription
)
267 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_DESCRIPTION
) )
268 m_xDest
->setPropertyValue(PROPERTY_DESCRIPTION
,Any(_rDescription
));
270 m_sDescription
= _rDescription
;
272 catch(const Exception
& )
274 DBG_UNHANDLED_EXCEPTION("dbaccess");
278 void OFieldDescription::SetDefaultValue(const Any
& _rDefaultValue
)
282 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_DEFAULTVALUE
) )
283 m_xDest
->setPropertyValue(PROPERTY_DEFAULTVALUE
, _rDefaultValue
);
285 catch( const Exception
& )
287 DBG_UNHANDLED_EXCEPTION("dbaccess");
291 void OFieldDescription::SetControlDefault(const Any
& _rControlDefault
)
295 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_CONTROLDEFAULT
) )
296 m_xDest
->setPropertyValue(PROPERTY_CONTROLDEFAULT
, _rControlDefault
);
298 m_aControlDefault
= _rControlDefault
;
300 catch( const Exception
& )
302 DBG_UNHANDLED_EXCEPTION("dbaccess");
306 void OFieldDescription::SetAutoIncrementValue(const OUString
& _sAutoIncValue
)
310 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION
) )
311 m_xDest
->setPropertyValue(PROPERTY_AUTOINCREMENTCREATION
,Any(_sAutoIncValue
));
313 m_sAutoIncrementValue
= _sAutoIncValue
;
315 catch( const Exception
& )
317 DBG_UNHANDLED_EXCEPTION("dbaccess");
321 void OFieldDescription::SetType(const TOTypeInfoSP
& _pType
)
329 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_TYPE
) )
330 m_xDest
->setPropertyValue(PROPERTY_TYPE
,Any(m_pType
->nType
));
332 m_nType
= m_pType
->nType
;
334 catch( const Exception
& )
336 DBG_UNHANDLED_EXCEPTION("dbaccess");
340 void OFieldDescription::SetTypeValue(sal_Int32 _nType
)
344 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_TYPE
) )
345 m_xDest
->setPropertyValue(PROPERTY_TYPE
,Any(_nType
));
349 OSL_ENSURE(!m_pType
,"Invalid call here!");
352 catch( const Exception
& )
354 DBG_UNHANDLED_EXCEPTION("dbaccess");
358 void OFieldDescription::SetPrecision(sal_Int32 _rPrecision
)
362 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_PRECISION
) )
363 m_xDest
->setPropertyValue(PROPERTY_PRECISION
,Any(_rPrecision
));
365 m_nPrecision
= _rPrecision
;
367 catch( const Exception
& )
369 DBG_UNHANDLED_EXCEPTION("dbaccess");
373 void OFieldDescription::SetScale(sal_Int32 _rScale
)
377 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_SCALE
) )
378 m_xDest
->setPropertyValue(PROPERTY_SCALE
,Any(_rScale
));
382 catch( const Exception
& )
384 DBG_UNHANDLED_EXCEPTION("dbaccess");
388 void OFieldDescription::SetIsNullable(sal_Int32 _rIsNullable
)
392 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ISNULLABLE
) )
393 m_xDest
->setPropertyValue(PROPERTY_ISNULLABLE
,Any(_rIsNullable
));
395 m_nIsNullable
= _rIsNullable
;
397 catch( const Exception
& )
399 DBG_UNHANDLED_EXCEPTION("dbaccess");
403 void OFieldDescription::SetFormatKey(sal_Int32 _rFormatKey
)
407 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_FORMATKEY
) )
408 m_xDest
->setPropertyValue(PROPERTY_FORMATKEY
,Any(_rFormatKey
));
410 m_nFormatKey
= _rFormatKey
;
412 catch( const Exception
& )
414 DBG_UNHANDLED_EXCEPTION("dbaccess");
418 void OFieldDescription::SetHorJustify(const SvxCellHorJustify
& _rHorJustify
)
422 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ALIGN
) )
423 m_xDest
->setPropertyValue(PROPERTY_ALIGN
,Any( dbaui::mapTextAlign(_rHorJustify
)));
425 m_eHorJustify
= _rHorJustify
;
427 catch( const Exception
& )
429 DBG_UNHANDLED_EXCEPTION("dbaccess");
433 void OFieldDescription::SetAutoIncrement(bool _bAuto
)
437 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ISAUTOINCREMENT
) )
438 m_xDest
->setPropertyValue(PROPERTY_ISAUTOINCREMENT
,Any(_bAuto
));
440 m_bIsAutoIncrement
= _bAuto
;
442 catch( const Exception
& )
444 DBG_UNHANDLED_EXCEPTION("dbaccess");
448 void OFieldDescription::SetPrimaryKey(bool _bPKey
)
450 m_bIsPrimaryKey
= _bPKey
;
452 SetIsNullable(css::sdbc::ColumnValue::NO_NULLS
);
455 void OFieldDescription::SetCurrency(bool _bIsCurrency
)
457 m_bIsCurrency
= _bIsCurrency
;
460 OUString
OFieldDescription::GetName() const
462 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_NAME
) )
463 return ::comphelper::getString(m_xDest
->getPropertyValue(PROPERTY_NAME
));
468 OUString
OFieldDescription::GetDescription() const
470 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_DESCRIPTION
) )
471 return ::comphelper::getString(m_xDest
->getPropertyValue(PROPERTY_DESCRIPTION
));
473 return m_sDescription
;
476 OUString
OFieldDescription::GetHelpText() const
478 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_HELPTEXT
) )
479 return ::comphelper::getString(m_xDest
->getPropertyValue(PROPERTY_HELPTEXT
));
484 css::uno::Any
OFieldDescription::GetControlDefault() const
486 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_CONTROLDEFAULT
) )
487 return m_xDest
->getPropertyValue(PROPERTY_CONTROLDEFAULT
);
489 return m_aControlDefault
;
492 OUString
OFieldDescription::GetAutoIncrementValue() const
494 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION
) )
495 return ::comphelper::getString(m_xDest
->getPropertyValue(PROPERTY_AUTOINCREMENTCREATION
));
497 return m_sAutoIncrementValue
;
500 sal_Int32
OFieldDescription::GetType() const
502 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_TYPE
) )
503 return ::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_TYPE
));
505 return m_pType
? m_pType
->nType
: m_nType
;
508 OUString
OFieldDescription::GetTypeName() const
510 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_TYPENAME
) )
511 return ::comphelper::getString(m_xDest
->getPropertyValue(PROPERTY_TYPENAME
));
513 return m_pType
? m_pType
->aTypeName
: m_sTypeName
;
516 sal_Int32
OFieldDescription::GetPrecision() const
518 sal_Int32 nPrec
= m_nPrecision
;
519 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_PRECISION
) )
520 nPrec
= ::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_PRECISION
));
522 TOTypeInfoSP pTypeInfo
= getTypeInfo();
525 switch ( pTypeInfo
->nType
)
527 case DataType::TINYINT
:
528 case DataType::SMALLINT
:
529 case DataType::INTEGER
:
530 case DataType::BIGINT
:
532 nPrec
= pTypeInfo
->nPrecision
;
540 sal_Int32
OFieldDescription::GetScale() const
542 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_SCALE
) )
543 return ::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_SCALE
));
548 sal_Int32
OFieldDescription::GetIsNullable() const
550 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ISNULLABLE
) )
551 return ::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_ISNULLABLE
));
553 return m_nIsNullable
;
556 sal_Int32
OFieldDescription::GetFormatKey() const
558 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_FORMATKEY
) )
559 return ::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_FORMATKEY
));
564 SvxCellHorJustify
OFieldDescription::GetHorJustify() const
566 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ALIGN
) )
567 return ::dbaui::mapTextJustify(::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_ALIGN
)));
569 return m_eHorJustify
;
573 TOTypeInfoSP
OFieldDescription::getSpecialTypeInfo() const
575 TOTypeInfoSP pSpecialType
= std::make_shared
<OTypeInfo
>();
576 *pSpecialType
= *m_pType
;
577 pSpecialType
->nPrecision
= GetPrecision();
578 pSpecialType
->nMaximumScale
= static_cast<sal_Int16
>(GetScale());
579 pSpecialType
->bAutoIncrement
= IsAutoIncrement(); // http://dba.openoffice.org/issues/show_bug.cgi?id=115398 fixed by ludob
583 bool OFieldDescription::IsAutoIncrement() const
585 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ISAUTOINCREMENT
) )
586 return ::cppu::any2bool(m_xDest
->getPropertyValue(PROPERTY_ISAUTOINCREMENT
));
588 return m_bIsAutoIncrement
;
592 bool OFieldDescription::IsNullable() const
594 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_ISNULLABLE
) )
595 return ::comphelper::getINT32(m_xDest
->getPropertyValue(PROPERTY_ISNULLABLE
)) == css::sdbc::ColumnValue::NULLABLE
;
597 return m_nIsNullable
== css::sdbc::ColumnValue::NULLABLE
;
600 void OFieldDescription::SetTypeName(const OUString
& _sTypeName
)
604 if ( m_xDest
.is() && m_xDestInfo
->hasPropertyByName(PROPERTY_TYPENAME
) )
605 m_xDest
->setPropertyValue(PROPERTY_TYPENAME
,Any(_sTypeName
));
607 m_sTypeName
= _sTypeName
;
609 catch( const Exception
& )
611 DBG_UNHANDLED_EXCEPTION("dbaccess");
615 void OFieldDescription::copyColumnSettingsTo(const Reference
< XPropertySet
>& _rxColumn
)
617 if ( !_rxColumn
.is() )
620 Reference
<XPropertySetInfo
> xInfo
= _rxColumn
->getPropertySetInfo();
622 if ( GetFormatKey() != NumberFormat::ALL
&& xInfo
->hasPropertyByName(PROPERTY_FORMATKEY
) )
623 _rxColumn
->setPropertyValue(PROPERTY_FORMATKEY
,Any(GetFormatKey()));
624 if ( GetHorJustify() != SvxCellHorJustify::Standard
&& xInfo
->hasPropertyByName(PROPERTY_ALIGN
) )
625 _rxColumn
->setPropertyValue(PROPERTY_ALIGN
,Any(dbaui::mapTextAlign(GetHorJustify())));
626 if ( !GetHelpText().isEmpty() && xInfo
->hasPropertyByName(PROPERTY_HELPTEXT
) )
627 _rxColumn
->setPropertyValue(PROPERTY_HELPTEXT
,Any(GetHelpText()));
628 if ( GetControlDefault().hasValue() && xInfo
->hasPropertyByName(PROPERTY_CONTROLDEFAULT
) )
629 _rxColumn
->setPropertyValue(PROPERTY_CONTROLDEFAULT
,GetControlDefault());
631 if(xInfo
->hasPropertyByName(PROPERTY_RELATIVEPOSITION
))
632 _rxColumn
->setPropertyValue(PROPERTY_RELATIVEPOSITION
,m_aRelativePosition
);
633 if(xInfo
->hasPropertyByName(PROPERTY_WIDTH
))
634 _rxColumn
->setPropertyValue(PROPERTY_WIDTH
,m_aWidth
);
635 if(xInfo
->hasPropertyByName(PROPERTY_HIDDEN
))
636 _rxColumn
->setPropertyValue(PROPERTY_HIDDEN
,Any(m_bHidden
));
639 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */