xref: /trunk/main/dbaccess/source/ui/tabledesign/FieldDescriptions.cxx (revision a22fd41b3c7115abe997cce40bcadff026a78ca4) !
196de5490SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
396de5490SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
496de5490SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
596de5490SAndrew Rist  * distributed with this work for additional information
696de5490SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
796de5490SAndrew Rist  * to you under the Apache License, Version 2.0 (the
896de5490SAndrew Rist  * "License"); you may not use this file except in compliance
996de5490SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
1196de5490SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
1396de5490SAndrew Rist  * Unless required by applicable law or agreed to in writing,
1496de5490SAndrew Rist  * software distributed under the License is distributed on an
1596de5490SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1696de5490SAndrew Rist  * KIND, either express or implied.  See the License for the
1796de5490SAndrew Rist  * specific language governing permissions and limitations
1896de5490SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
2096de5490SAndrew Rist  *************************************************************/
2196de5490SAndrew Rist 
2296de5490SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25b63233d8Sdamjan #include "precompiled_dbui.hxx"
26cdf0e10cSrcweir #ifndef DBAUI_FIELDDESCRIPTIONS_HXX
27cdf0e10cSrcweir #include "FieldDescriptions.hxx"
28cdf0e10cSrcweir #endif
29cdf0e10cSrcweir #ifndef _TOOLS_DEBUG_HXX
30cdf0e10cSrcweir #include <tools/debug.hxx>
31cdf0e10cSrcweir #endif
32cdf0e10cSrcweir #ifndef TOOLS_DIAGNOSE_EX_H
33cdf0e10cSrcweir #include <tools/diagnose_ex.h>
34cdf0e10cSrcweir #endif
35cdf0e10cSrcweir #ifndef _DBU_TBL_HRC_
36cdf0e10cSrcweir #include "dbu_tbl.hrc"
37cdf0e10cSrcweir #endif
38cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_
39cdf0e10cSrcweir #include <com/sun/star/sdbc/ColumnValue.hpp>
40cdf0e10cSrcweir #endif
41cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC
42cdf0e10cSrcweir #include "dbustrings.hrc"
43cdf0e10cSrcweir #endif
44cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_
45cdf0e10cSrcweir #include <comphelper/types.hxx>
46cdf0e10cSrcweir #endif
47cdf0e10cSrcweir #ifndef _COMPHELPER_EXTRACT_HXX_
48cdf0e10cSrcweir #include <comphelper/extract.hxx>
49cdf0e10cSrcweir #endif
50cdf0e10cSrcweir #ifndef DBAUI_TOOLS_HXX
51cdf0e10cSrcweir #include "UITools.hxx"
52cdf0e10cSrcweir #endif
53cdf0e10cSrcweir #ifndef _COM_SUN_STAR_UTIL_NUMBERFORMAT_HPP_
54cdf0e10cSrcweir #include <com/sun/star/util/NumberFormat.hpp>
55cdf0e10cSrcweir #endif
56cdf0e10cSrcweir 
57cdf0e10cSrcweir #define DEFAULT_VARCHAR_PRECSION    50
58cdf0e10cSrcweir #define DEFAULT_OTHER_PRECSION      16
59cdf0e10cSrcweir #define DEFAULT_NUMERIC_PRECSION    5
60cdf0e10cSrcweir #define DEFAULT_NUMERIC_SCALE       0
61cdf0e10cSrcweir 
62cdf0e10cSrcweir 
63cdf0e10cSrcweir using namespace dbaui;
64cdf0e10cSrcweir using namespace ::com::sun::star::sdbc;
65cdf0e10cSrcweir using namespace ::com::sun::star::uno;
66cdf0e10cSrcweir using namespace ::com::sun::star::beans;
67cdf0e10cSrcweir using namespace ::com::sun::star::util;
68cdf0e10cSrcweir 
69cdf0e10cSrcweir //========================================================================
70cdf0e10cSrcweir // class OFieldDescription
71cdf0e10cSrcweir //========================================================================
72cdf0e10cSrcweir DBG_NAME(OFieldDescription)
73cdf0e10cSrcweir //------------------------------------------------------------------------------
74cdf0e10cSrcweir OFieldDescription::OFieldDescription()
75cdf0e10cSrcweir     :m_pType()
76cdf0e10cSrcweir     ,m_nType(DataType::VARCHAR)
77cdf0e10cSrcweir     ,m_nPrecision(0)
78cdf0e10cSrcweir     ,m_nScale(0)
79cdf0e10cSrcweir     ,m_nIsNullable(ColumnValue::NULLABLE)
80cdf0e10cSrcweir     ,m_nFormatKey(0)
81cdf0e10cSrcweir     ,m_eHorJustify(SVX_HOR_JUSTIFY_STANDARD)
82cdf0e10cSrcweir     ,m_bIsAutoIncrement(sal_False)
83cdf0e10cSrcweir     ,m_bIsPrimaryKey(sal_False)
84cdf0e10cSrcweir     ,m_bIsCurrency(sal_False)
85cdf0e10cSrcweir     ,m_bHidden(sal_False)
86cdf0e10cSrcweir {
87cdf0e10cSrcweir     DBG_CTOR(OFieldDescription,NULL);
88cdf0e10cSrcweir }
89cdf0e10cSrcweir //------------------------------------------------------------------------------
90cdf0e10cSrcweir OFieldDescription::OFieldDescription( const OFieldDescription& rDescr )
91cdf0e10cSrcweir     :m_aDefaultValue(rDescr.m_aDefaultValue)
92cdf0e10cSrcweir     ,m_aControlDefault(rDescr.m_aControlDefault)
93cdf0e10cSrcweir     ,m_aWidth(rDescr.m_aWidth)
94cdf0e10cSrcweir     ,m_aRelativePosition(rDescr.m_aRelativePosition)
95cdf0e10cSrcweir     ,m_pType(rDescr.m_pType)
96cdf0e10cSrcweir     ,m_xDest(rDescr.m_xDest)
97cdf0e10cSrcweir     ,m_xDestInfo(rDescr.m_xDestInfo)
98cdf0e10cSrcweir     ,m_sName(rDescr.m_sName)
99cdf0e10cSrcweir     ,m_sTypeName(rDescr.m_sTypeName)
100cdf0e10cSrcweir     ,m_sDescription(rDescr.m_sDescription)
101cdf0e10cSrcweir     ,m_sAutoIncrementValue(rDescr.m_sAutoIncrementValue)
102cdf0e10cSrcweir     ,m_nType(rDescr.m_nType)
103cdf0e10cSrcweir     ,m_nPrecision(rDescr.m_nPrecision)
104cdf0e10cSrcweir     ,m_nScale(rDescr.m_nScale)
105cdf0e10cSrcweir     ,m_nIsNullable(rDescr.m_nIsNullable)
106cdf0e10cSrcweir     ,m_nFormatKey(rDescr.m_nFormatKey)
107cdf0e10cSrcweir     ,m_eHorJustify(rDescr.m_eHorJustify)
108cdf0e10cSrcweir     ,m_bIsAutoIncrement(rDescr.m_bIsAutoIncrement)
109cdf0e10cSrcweir     ,m_bIsPrimaryKey(rDescr.m_bIsPrimaryKey)
110cdf0e10cSrcweir     ,m_bIsCurrency(rDescr.m_bIsCurrency)
111cdf0e10cSrcweir     ,m_bHidden(rDescr.m_bHidden)
112cdf0e10cSrcweir {
113cdf0e10cSrcweir     DBG_CTOR(OFieldDescription,NULL);
114cdf0e10cSrcweir }
115cdf0e10cSrcweir 
116cdf0e10cSrcweir //------------------------------------------------------------------------------
117cdf0e10cSrcweir OFieldDescription::~OFieldDescription()
118cdf0e10cSrcweir {
119cdf0e10cSrcweir     DBG_DTOR(OFieldDescription,NULL);
120cdf0e10cSrcweir }
121cdf0e10cSrcweir //------------------------------------------------------------------------------
122cdf0e10cSrcweir OFieldDescription::OFieldDescription(const Reference< XPropertySet >& xAffectedCol,sal_Bool _bUseAsDest)
123cdf0e10cSrcweir     :m_pType()
124cdf0e10cSrcweir     ,m_nType(DataType::VARCHAR)
125cdf0e10cSrcweir     ,m_nPrecision(0)
126cdf0e10cSrcweir     ,m_nScale(0)
127cdf0e10cSrcweir     ,m_nIsNullable(ColumnValue::NULLABLE)
128cdf0e10cSrcweir     ,m_nFormatKey(0)
129cdf0e10cSrcweir     ,m_eHorJustify(SVX_HOR_JUSTIFY_STANDARD)
130cdf0e10cSrcweir     ,m_bIsAutoIncrement(sal_False)
131cdf0e10cSrcweir     ,m_bIsPrimaryKey(sal_False)
132cdf0e10cSrcweir     ,m_bIsCurrency(sal_False)
133cdf0e10cSrcweir     ,m_bHidden(sal_False)
134cdf0e10cSrcweir {
135cdf0e10cSrcweir     DBG_CTOR(OFieldDescription,NULL);
136cdf0e10cSrcweir     OSL_ENSURE(xAffectedCol.is(),"PropetySet can notbe null!");
137cdf0e10cSrcweir     if ( xAffectedCol.is() )
138cdf0e10cSrcweir     {
139cdf0e10cSrcweir         if ( _bUseAsDest )
140cdf0e10cSrcweir         {
141cdf0e10cSrcweir             m_xDest = xAffectedCol;
142*a22fd41bSmseidel             m_xDestInfo = xAffectedCol->getPropertySetInfo();
143cdf0e10cSrcweir         }
144cdf0e10cSrcweir         else
145cdf0e10cSrcweir         {
146cdf0e10cSrcweir             try
147cdf0e10cSrcweir             {
148cdf0e10cSrcweir                 Reference<XPropertySetInfo> xPropSetInfo = xAffectedCol->getPropertySetInfo();
149cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_NAME))
150cdf0e10cSrcweir                     SetName(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_NAME)));
151cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_DESCRIPTION))
152cdf0e10cSrcweir                     SetDescription(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_DESCRIPTION)));
153cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_HELPTEXT))
154cdf0e10cSrcweir                 {
155cdf0e10cSrcweir                     ::rtl::OUString sHelpText;
156cdf0e10cSrcweir                     xAffectedCol->getPropertyValue(PROPERTY_HELPTEXT) >>= sHelpText;
157cdf0e10cSrcweir                     SetHelpText(sHelpText);
158cdf0e10cSrcweir                 }
159cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_DEFAULTVALUE))
160cdf0e10cSrcweir                     SetDefaultValue( xAffectedCol->getPropertyValue(PROPERTY_DEFAULTVALUE) );
161cdf0e10cSrcweir 
162cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT))
163cdf0e10cSrcweir                     SetControlDefault( xAffectedCol->getPropertyValue(PROPERTY_CONTROLDEFAULT) );
164cdf0e10cSrcweir 
165cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION))
166cdf0e10cSrcweir                     SetAutoIncrementValue(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_AUTOINCREMENTCREATION)));
167cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_TYPE))
168cdf0e10cSrcweir                     SetTypeValue(::comphelper::getINT32(xAffectedCol->getPropertyValue(PROPERTY_TYPE)));
169cdf0e10cSrcweir                 if (xPropSetInfo->hasPropertyByName(PROPERTY_TYPENAME))
170cdf0e10cSrcweir                     SetTypeName(::comphelper::getString(xAffectedCol->getPropertyValue(PROPERTY_TYPENAME)));
171cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_PRECISION))
172cdf0e10cSrcweir                     SetPrecision(::comphelper::getINT32(xAffectedCol->getPropertyValue(PROPERTY_PRECISION)));
173cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_SCALE))
174cdf0e10cSrcweir                     SetScale(::comphelper::getINT32(xAffectedCol->getPropertyValue(PROPERTY_SCALE)));
175cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_ISNULLABLE))
176cdf0e10cSrcweir                     SetIsNullable(::comphelper::getINT32(xAffectedCol->getPropertyValue(PROPERTY_ISNULLABLE)));
177cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_FORMATKEY))
178cdf0e10cSrcweir                 {
179cdf0e10cSrcweir                     const Any aValue = xAffectedCol->getPropertyValue(PROPERTY_FORMATKEY);
180cdf0e10cSrcweir                     if ( aValue.hasValue() )
181cdf0e10cSrcweir                         SetFormatKey(::comphelper::getINT32(aValue));
182cdf0e10cSrcweir                 }
183cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_RELATIVEPOSITION))
184cdf0e10cSrcweir                     m_aRelativePosition = xAffectedCol->getPropertyValue(PROPERTY_RELATIVEPOSITION);
185cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_WIDTH))
186cdf0e10cSrcweir                     m_aWidth = xAffectedCol->getPropertyValue(PROPERTY_WIDTH);
187cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_HIDDEN))
188cdf0e10cSrcweir                     xAffectedCol->getPropertyValue(PROPERTY_HIDDEN) >>= m_bHidden;
189cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_ALIGN))
190cdf0e10cSrcweir                 {
191cdf0e10cSrcweir                     const Any aValue = xAffectedCol->getPropertyValue(PROPERTY_ALIGN);
192cdf0e10cSrcweir                     if ( aValue.hasValue() )
193cdf0e10cSrcweir                         SetHorJustify( ::dbaui::mapTextJustify(::comphelper::getINT32(aValue)));
194cdf0e10cSrcweir                 }
195cdf0e10cSrcweir                 if(xPropSetInfo->hasPropertyByName(PROPERTY_ISAUTOINCREMENT))
196cdf0e10cSrcweir                     SetAutoIncrement(::cppu::any2bool(xAffectedCol->getPropertyValue(PROPERTY_ISAUTOINCREMENT)));
197cdf0e10cSrcweir             }
198cdf0e10cSrcweir             catch(const Exception&)
199cdf0e10cSrcweir             {
200cdf0e10cSrcweir                 DBG_UNHANDLED_EXCEPTION();
201cdf0e10cSrcweir             }
202cdf0e10cSrcweir         }
203cdf0e10cSrcweir     }
204cdf0e10cSrcweir }
205cdf0e10cSrcweir // -----------------------------------------------------------------------------
206cdf0e10cSrcweir void OFieldDescription::FillFromTypeInfo(const TOTypeInfoSP& _pType,sal_Bool _bForce,sal_Bool _bReset)
207cdf0e10cSrcweir {
208cdf0e10cSrcweir     TOTypeInfoSP pOldType = getTypeInfo();
209cdf0e10cSrcweir     if ( _pType != pOldType )
210cdf0e10cSrcweir     {
211cdf0e10cSrcweir         // reset type depending information
212cdf0e10cSrcweir         if ( _bReset )
213cdf0e10cSrcweir         {
214cdf0e10cSrcweir             SetFormatKey(0);
215cdf0e10cSrcweir             SetControlDefault(Any());
216cdf0e10cSrcweir         }
217cdf0e10cSrcweir 
218cdf0e10cSrcweir         sal_Bool bForce = _bForce || pOldType.get() == NULL || pOldType->nType != _pType->nType;
219cdf0e10cSrcweir         switch ( _pType->nType )
220cdf0e10cSrcweir         {
221cdf0e10cSrcweir             case DataType::CHAR:
222cdf0e10cSrcweir             case DataType::VARCHAR:
223cdf0e10cSrcweir                 if ( bForce )
224cdf0e10cSrcweir                 {
225cdf0e10cSrcweir                     sal_Int32 nPrec = DEFAULT_VARCHAR_PRECSION;
226cdf0e10cSrcweir                     if ( GetPrecision() )
227cdf0e10cSrcweir                         nPrec = GetPrecision();
228cdf0e10cSrcweir                     SetPrecision(::std::min<sal_Int32>(nPrec,_pType->nPrecision));
229cdf0e10cSrcweir                 }
230cdf0e10cSrcweir                 break;
231cdf0e10cSrcweir             case DataType::TIMESTAMP:
232cdf0e10cSrcweir                 if ( bForce && _pType->nMaximumScale)
233cdf0e10cSrcweir                 {
234cdf0e10cSrcweir                     SetScale(::std::min<sal_Int32>(GetScale() ? GetScale() : DEFAULT_NUMERIC_SCALE,_pType->nMaximumScale));
235cdf0e10cSrcweir                 }
236cdf0e10cSrcweir                 break;
237cdf0e10cSrcweir             default:
238cdf0e10cSrcweir                 if ( bForce )
239cdf0e10cSrcweir                 {
240cdf0e10cSrcweir                     sal_Int32 nPrec = DEFAULT_OTHER_PRECSION;
241cdf0e10cSrcweir                     switch ( _pType->nType )
242cdf0e10cSrcweir                     {
243cdf0e10cSrcweir                         case DataType::BIT:
244cdf0e10cSrcweir                         case DataType::BLOB:
245cdf0e10cSrcweir                         case DataType::CLOB:
246cdf0e10cSrcweir                             nPrec = _pType->nPrecision;
247cdf0e10cSrcweir                             break;
248cdf0e10cSrcweir                         default:
249cdf0e10cSrcweir                             if ( GetPrecision() )
250cdf0e10cSrcweir                                 nPrec = GetPrecision();
251cdf0e10cSrcweir                             break;
252cdf0e10cSrcweir                     }
253cdf0e10cSrcweir 
254cdf0e10cSrcweir                     if ( _pType->nPrecision )
255cdf0e10cSrcweir                         SetPrecision(::std::min<sal_Int32>(nPrec ? nPrec : DEFAULT_NUMERIC_PRECSION,_pType->nPrecision));
256cdf0e10cSrcweir                     if ( _pType->nMaximumScale )
257cdf0e10cSrcweir                         SetScale(::std::min<sal_Int32>(GetScale() ? GetScale() : DEFAULT_NUMERIC_SCALE,_pType->nMaximumScale));
258cdf0e10cSrcweir                 }
259cdf0e10cSrcweir         }
260cdf0e10cSrcweir         if ( !_pType->aCreateParams.getLength() )
261cdf0e10cSrcweir         {
262cdf0e10cSrcweir             SetPrecision(_pType->nPrecision);
263cdf0e10cSrcweir             SetScale(_pType->nMinimumScale);
264cdf0e10cSrcweir         }
265cdf0e10cSrcweir         if ( !_pType->bNullable && IsNullable() )
266cdf0e10cSrcweir             SetIsNullable(ColumnValue::NO_NULLS);
267cdf0e10cSrcweir         if ( !_pType->bAutoIncrement && IsAutoIncrement() )
268cdf0e10cSrcweir             SetAutoIncrement(sal_False);
269cdf0e10cSrcweir         SetCurrency( _pType->bCurrency );
270cdf0e10cSrcweir         SetType(_pType);
271cdf0e10cSrcweir         SetTypeName(_pType->aTypeName);
272cdf0e10cSrcweir     }
273cdf0e10cSrcweir }
274cdf0e10cSrcweir // -----------------------------------------------------------------------------
275cdf0e10cSrcweir void OFieldDescription::SetName(const ::rtl::OUString& _rName)
276cdf0e10cSrcweir {
277cdf0e10cSrcweir     try
278cdf0e10cSrcweir     {
279cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_NAME) )
280cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_NAME,makeAny(_rName));
281cdf0e10cSrcweir         else
282cdf0e10cSrcweir             m_sName = _rName;
283cdf0e10cSrcweir     }
284cdf0e10cSrcweir     catch(const Exception& )
285cdf0e10cSrcweir     {
286cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
287cdf0e10cSrcweir     }
288cdf0e10cSrcweir }
289cdf0e10cSrcweir // -----------------------------------------------------------------------------
290cdf0e10cSrcweir void OFieldDescription::SetHelpText(const ::rtl::OUString& _sHelpText)
291cdf0e10cSrcweir {
292cdf0e10cSrcweir     try
293cdf0e10cSrcweir     {
294cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
295cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_HELPTEXT,makeAny(_sHelpText));
296cdf0e10cSrcweir         else
297cdf0e10cSrcweir             m_sHelpText = _sHelpText;
298cdf0e10cSrcweir     }
299cdf0e10cSrcweir     catch(const Exception& )
300cdf0e10cSrcweir     {
301cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
302cdf0e10cSrcweir     }
303cdf0e10cSrcweir }
304cdf0e10cSrcweir // -----------------------------------------------------------------------------
305cdf0e10cSrcweir void OFieldDescription::SetDescription(const ::rtl::OUString& _rDescription)
306cdf0e10cSrcweir {
307cdf0e10cSrcweir     try
308cdf0e10cSrcweir     {
309cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_DESCRIPTION) )
310cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_DESCRIPTION,makeAny(_rDescription));
311cdf0e10cSrcweir         else
312cdf0e10cSrcweir             m_sDescription = _rDescription;
313cdf0e10cSrcweir     }
314cdf0e10cSrcweir     catch(const Exception& )
315cdf0e10cSrcweir     {
316cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
317cdf0e10cSrcweir     }
318cdf0e10cSrcweir }
319cdf0e10cSrcweir // -----------------------------------------------------------------------------
320cdf0e10cSrcweir void OFieldDescription::SetDefaultValue(const Any& _rDefaultValue)
321cdf0e10cSrcweir {
322cdf0e10cSrcweir     try
323cdf0e10cSrcweir     {
324cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_DEFAULTVALUE) )
325cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_DEFAULTVALUE,makeAny(_rDefaultValue));
326cdf0e10cSrcweir         else
327cdf0e10cSrcweir             m_aDefaultValue = _rDefaultValue;
328cdf0e10cSrcweir     }
329cdf0e10cSrcweir     catch( const Exception& )
330cdf0e10cSrcweir     {
331cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
332cdf0e10cSrcweir     }
333cdf0e10cSrcweir }
334cdf0e10cSrcweir // -----------------------------------------------------------------------------
335cdf0e10cSrcweir void OFieldDescription::SetControlDefault(const Any& _rControlDefault)
336cdf0e10cSrcweir {
337cdf0e10cSrcweir     try
338cdf0e10cSrcweir     {
339cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT) )
340cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_CONTROLDEFAULT,makeAny(_rControlDefault));
341cdf0e10cSrcweir         else
342cdf0e10cSrcweir             m_aControlDefault = _rControlDefault;
343cdf0e10cSrcweir     }
344cdf0e10cSrcweir     catch( const Exception& )
345cdf0e10cSrcweir     {
346cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
347cdf0e10cSrcweir     }
348cdf0e10cSrcweir }
349cdf0e10cSrcweir // -----------------------------------------------------------------------------
350cdf0e10cSrcweir void OFieldDescription::SetAutoIncrementValue(const ::rtl::OUString& _sAutoIncValue)
351cdf0e10cSrcweir {
352cdf0e10cSrcweir     try
353cdf0e10cSrcweir     {
354cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION) )
355cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_AUTOINCREMENTCREATION,makeAny(_sAutoIncValue));
356cdf0e10cSrcweir         else
357cdf0e10cSrcweir             m_sAutoIncrementValue = _sAutoIncValue;
358cdf0e10cSrcweir     }
359cdf0e10cSrcweir     catch( const Exception& )
360cdf0e10cSrcweir     {
361cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
362cdf0e10cSrcweir     }
363cdf0e10cSrcweir }
364cdf0e10cSrcweir // -----------------------------------------------------------------------------
365cdf0e10cSrcweir void OFieldDescription::SetType(TOTypeInfoSP _pType)
366cdf0e10cSrcweir {
367cdf0e10cSrcweir     m_pType = _pType;
368cdf0e10cSrcweir     if ( m_pType.get() )
369cdf0e10cSrcweir     {
370cdf0e10cSrcweir         try
371cdf0e10cSrcweir         {
372cdf0e10cSrcweir             if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPE) )
373cdf0e10cSrcweir                 m_xDest->setPropertyValue(PROPERTY_TYPE,makeAny(m_pType->nType));
374cdf0e10cSrcweir             else
375cdf0e10cSrcweir                 m_nType = m_pType->nType;
376cdf0e10cSrcweir         }
377cdf0e10cSrcweir         catch( const Exception& )
378cdf0e10cSrcweir         {
379cdf0e10cSrcweir             DBG_UNHANDLED_EXCEPTION();
380cdf0e10cSrcweir         }
381cdf0e10cSrcweir     }
382cdf0e10cSrcweir }
383cdf0e10cSrcweir // -----------------------------------------------------------------------------
384cdf0e10cSrcweir void OFieldDescription::SetTypeValue(sal_Int32 _nType)
385cdf0e10cSrcweir {
386cdf0e10cSrcweir     try
387cdf0e10cSrcweir     {
388cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPE) )
389cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_TYPE,makeAny(_nType));
390cdf0e10cSrcweir         else
391cdf0e10cSrcweir         {
392cdf0e10cSrcweir             m_nType = _nType;
393cdf0e10cSrcweir             OSL_ENSURE(!m_pType.get(),"Invalid call here!");
394cdf0e10cSrcweir         }
395cdf0e10cSrcweir     }
396cdf0e10cSrcweir     catch( const Exception& )
397cdf0e10cSrcweir     {
398cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
399cdf0e10cSrcweir     }
400cdf0e10cSrcweir }
401cdf0e10cSrcweir // -----------------------------------------------------------------------------
402cdf0e10cSrcweir void OFieldDescription::SetPrecision(const sal_Int32& _rPrecision)
403cdf0e10cSrcweir {
404cdf0e10cSrcweir     try
405cdf0e10cSrcweir     {
406cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_PRECISION) )
407cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_PRECISION,makeAny(_rPrecision));
408cdf0e10cSrcweir         else
409cdf0e10cSrcweir             m_nPrecision = _rPrecision;
410cdf0e10cSrcweir     }
411cdf0e10cSrcweir     catch( const Exception& )
412cdf0e10cSrcweir     {
413cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
414cdf0e10cSrcweir     }
415cdf0e10cSrcweir }
416cdf0e10cSrcweir // -----------------------------------------------------------------------------
417cdf0e10cSrcweir void OFieldDescription::SetScale(const sal_Int32& _rScale)
418cdf0e10cSrcweir {
419cdf0e10cSrcweir     try
420cdf0e10cSrcweir     {
421cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_SCALE) )
422cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_SCALE,makeAny(_rScale));
423cdf0e10cSrcweir         else
424cdf0e10cSrcweir             m_nScale = _rScale;
425cdf0e10cSrcweir     }
426cdf0e10cSrcweir     catch( const Exception& )
427cdf0e10cSrcweir     {
428cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
429cdf0e10cSrcweir     }
430cdf0e10cSrcweir }
431cdf0e10cSrcweir // -----------------------------------------------------------------------------
432cdf0e10cSrcweir void OFieldDescription::SetIsNullable(const sal_Int32& _rIsNullable)
433cdf0e10cSrcweir {
434cdf0e10cSrcweir     try
435cdf0e10cSrcweir     {
436cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISNULLABLE) )
437cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_ISNULLABLE,makeAny(_rIsNullable));
438cdf0e10cSrcweir         else
439cdf0e10cSrcweir             m_nIsNullable = _rIsNullable;
440cdf0e10cSrcweir     }
441cdf0e10cSrcweir     catch( const Exception& )
442cdf0e10cSrcweir     {
443cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
444cdf0e10cSrcweir     }
445cdf0e10cSrcweir }
446cdf0e10cSrcweir // -----------------------------------------------------------------------------
447cdf0e10cSrcweir void OFieldDescription::SetFormatKey(const sal_Int32& _rFormatKey)
448cdf0e10cSrcweir {
449cdf0e10cSrcweir     try
450cdf0e10cSrcweir     {
451cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_FORMATKEY) )
452cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_FORMATKEY,makeAny(_rFormatKey));
453cdf0e10cSrcweir         else
454cdf0e10cSrcweir             m_nFormatKey = _rFormatKey;
455cdf0e10cSrcweir     }
456cdf0e10cSrcweir     catch( const Exception& )
457cdf0e10cSrcweir     {
458cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
459cdf0e10cSrcweir     }
460cdf0e10cSrcweir }
461cdf0e10cSrcweir // -----------------------------------------------------------------------------
462cdf0e10cSrcweir void OFieldDescription::SetHorJustify(const SvxCellHorJustify& _rHorJustify)
463cdf0e10cSrcweir {
464cdf0e10cSrcweir     try
465cdf0e10cSrcweir     {
466cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ALIGN) )
467cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_ALIGN,makeAny( dbaui::mapTextAllign(_rHorJustify)));
468cdf0e10cSrcweir         else
469cdf0e10cSrcweir             m_eHorJustify = _rHorJustify;
470cdf0e10cSrcweir     }
471cdf0e10cSrcweir     catch( const Exception& )
472cdf0e10cSrcweir     {
473cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
474cdf0e10cSrcweir     }
475cdf0e10cSrcweir }
476cdf0e10cSrcweir // -----------------------------------------------------------------------------
477cdf0e10cSrcweir void OFieldDescription::SetAutoIncrement(sal_Bool _bAuto)
478cdf0e10cSrcweir {
479cdf0e10cSrcweir     try
480cdf0e10cSrcweir     {
481cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISAUTOINCREMENT) )
482cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_ISAUTOINCREMENT,makeAny(_bAuto));
483cdf0e10cSrcweir         else
484cdf0e10cSrcweir             m_bIsAutoIncrement = _bAuto;
485cdf0e10cSrcweir     }
486cdf0e10cSrcweir     catch( const Exception& )
487cdf0e10cSrcweir     {
488cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
489cdf0e10cSrcweir     }
490cdf0e10cSrcweir }
491cdf0e10cSrcweir // -----------------------------------------------------------------------------
492cdf0e10cSrcweir void OFieldDescription::SetPrimaryKey(sal_Bool _bPKey)
493cdf0e10cSrcweir {
494cdf0e10cSrcweir     m_bIsPrimaryKey = _bPKey;
495cdf0e10cSrcweir     if ( _bPKey )
496cdf0e10cSrcweir         SetIsNullable(::com::sun::star::sdbc::ColumnValue::NO_NULLS);
497cdf0e10cSrcweir }
498cdf0e10cSrcweir // -----------------------------------------------------------------------------
499cdf0e10cSrcweir void OFieldDescription::SetCurrency(sal_Bool _bIsCurrency)
500cdf0e10cSrcweir {
501cdf0e10cSrcweir     m_bIsCurrency = _bIsCurrency;
502cdf0e10cSrcweir }
503cdf0e10cSrcweir // -----------------------------------------------------------------------------
504cdf0e10cSrcweir 
505cdf0e10cSrcweir ::rtl::OUString             OFieldDescription::GetName()                const
506cdf0e10cSrcweir {
507cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_NAME) )
508cdf0e10cSrcweir         return ::comphelper::getString(m_xDest->getPropertyValue(PROPERTY_NAME));
509cdf0e10cSrcweir     else
510cdf0e10cSrcweir         return m_sName;
511cdf0e10cSrcweir }
512cdf0e10cSrcweir // -----------------------------------------------------------------------------
513cdf0e10cSrcweir ::rtl::OUString             OFieldDescription::GetDescription()         const
514cdf0e10cSrcweir {
515cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_DESCRIPTION) )
516cdf0e10cSrcweir         return ::comphelper::getString(m_xDest->getPropertyValue(PROPERTY_DESCRIPTION));
517cdf0e10cSrcweir     else
518cdf0e10cSrcweir         return m_sDescription;
519cdf0e10cSrcweir }
520cdf0e10cSrcweir // -----------------------------------------------------------------------------
521cdf0e10cSrcweir ::rtl::OUString             OFieldDescription::GetHelpText()            const
522cdf0e10cSrcweir {
523cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
524cdf0e10cSrcweir         return ::comphelper::getString(m_xDest->getPropertyValue(PROPERTY_HELPTEXT));
525cdf0e10cSrcweir     else
526cdf0e10cSrcweir         return m_sHelpText;
527cdf0e10cSrcweir }
528cdf0e10cSrcweir // -----------------------------------------------------------------------------
529cdf0e10cSrcweir ::com::sun::star::uno::Any  OFieldDescription::GetControlDefault()      const
530cdf0e10cSrcweir {
531cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT) )
532cdf0e10cSrcweir         return m_xDest->getPropertyValue(PROPERTY_CONTROLDEFAULT);
533cdf0e10cSrcweir     else
534cdf0e10cSrcweir         return m_aControlDefault;
535cdf0e10cSrcweir }
536cdf0e10cSrcweir // -----------------------------------------------------------------------------
537cdf0e10cSrcweir ::rtl::OUString             OFieldDescription::GetAutoIncrementValue()  const
538cdf0e10cSrcweir {
539cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION) )
540cdf0e10cSrcweir         return ::comphelper::getString(m_xDest->getPropertyValue(PROPERTY_AUTOINCREMENTCREATION));
541cdf0e10cSrcweir     else
542cdf0e10cSrcweir         return m_sAutoIncrementValue;
543cdf0e10cSrcweir }
544cdf0e10cSrcweir // -----------------------------------------------------------------------------
545cdf0e10cSrcweir sal_Int32                   OFieldDescription::GetType()                const
546cdf0e10cSrcweir {
547cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPE) )
548cdf0e10cSrcweir         return ::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_TYPE));
549cdf0e10cSrcweir     else
550cdf0e10cSrcweir         return m_pType.get() ? m_pType->nType : m_nType;
551cdf0e10cSrcweir }
552cdf0e10cSrcweir // -----------------------------------------------------------------------------
553cdf0e10cSrcweir ::rtl::OUString             OFieldDescription::GetTypeName()            const
554cdf0e10cSrcweir {
555cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPENAME) )
556cdf0e10cSrcweir         return ::comphelper::getString(m_xDest->getPropertyValue(PROPERTY_TYPENAME));
557cdf0e10cSrcweir     else
558cdf0e10cSrcweir         return m_pType.get() ? m_pType->aTypeName : m_sTypeName;
559cdf0e10cSrcweir }
560cdf0e10cSrcweir // -----------------------------------------------------------------------------
561cdf0e10cSrcweir sal_Int32                   OFieldDescription::GetPrecision()           const
562cdf0e10cSrcweir {
563cdf0e10cSrcweir     sal_Int32 nPrec = m_nPrecision;
564cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_PRECISION) )
565cdf0e10cSrcweir         nPrec = ::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_PRECISION));
566cdf0e10cSrcweir 
567cdf0e10cSrcweir     TOTypeInfoSP pTypeInfo = getTypeInfo();
568cdf0e10cSrcweir     if ( pTypeInfo )
569cdf0e10cSrcweir     {
570cdf0e10cSrcweir         switch ( pTypeInfo->nType )
571cdf0e10cSrcweir         {
572cdf0e10cSrcweir             case DataType::TINYINT:
573cdf0e10cSrcweir             case DataType::SMALLINT:
574cdf0e10cSrcweir             case DataType::INTEGER:
575cdf0e10cSrcweir             case DataType::BIGINT:
576cdf0e10cSrcweir                 if ( !nPrec )
577cdf0e10cSrcweir                     nPrec = pTypeInfo->nPrecision;
578cdf0e10cSrcweir                 break;
579cdf0e10cSrcweir         } // switch ( pTypeInfo->nType )
580cdf0e10cSrcweir     }
581cdf0e10cSrcweir 
582cdf0e10cSrcweir     return nPrec;
583cdf0e10cSrcweir }
584cdf0e10cSrcweir // -----------------------------------------------------------------------------
585cdf0e10cSrcweir sal_Int32                   OFieldDescription::GetScale()               const
586cdf0e10cSrcweir {
587cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_SCALE) )
588cdf0e10cSrcweir         return ::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_SCALE));
589cdf0e10cSrcweir     else
590cdf0e10cSrcweir         return m_nScale;
591cdf0e10cSrcweir }
592cdf0e10cSrcweir // -----------------------------------------------------------------------------
593cdf0e10cSrcweir sal_Int32                   OFieldDescription::GetIsNullable()          const
594cdf0e10cSrcweir {
595cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISNULLABLE) )
596cdf0e10cSrcweir         return ::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_ISNULLABLE));
597cdf0e10cSrcweir     else
598cdf0e10cSrcweir         return m_nIsNullable;
599cdf0e10cSrcweir }
600cdf0e10cSrcweir // -----------------------------------------------------------------------------
601cdf0e10cSrcweir sal_Int32                   OFieldDescription::GetFormatKey()           const
602cdf0e10cSrcweir {
603cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_FORMATKEY) )
604cdf0e10cSrcweir         return ::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_FORMATKEY));
605cdf0e10cSrcweir     else
606cdf0e10cSrcweir         return m_nFormatKey;
607cdf0e10cSrcweir }
608cdf0e10cSrcweir // -----------------------------------------------------------------------------
609cdf0e10cSrcweir SvxCellHorJustify           OFieldDescription::GetHorJustify()          const
610cdf0e10cSrcweir {
611cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ALIGN) )
612cdf0e10cSrcweir         return ::dbaui::mapTextJustify(::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_ALIGN)));
613cdf0e10cSrcweir     else
614cdf0e10cSrcweir         return m_eHorJustify;
615cdf0e10cSrcweir }
616cdf0e10cSrcweir // -----------------------------------------------------------------------------
617cdf0e10cSrcweir TOTypeInfoSP                OFieldDescription::getTypeInfo()            const
618cdf0e10cSrcweir {
619cdf0e10cSrcweir     return m_pType;
620cdf0e10cSrcweir }
621cdf0e10cSrcweir // -----------------------------------------------------------------------------
622cdf0e10cSrcweir TOTypeInfoSP                OFieldDescription::getSpecialTypeInfo() const
623cdf0e10cSrcweir {
624cdf0e10cSrcweir     TOTypeInfoSP pSpecialType( new OTypeInfo() );
625cdf0e10cSrcweir     *pSpecialType = *m_pType;
626cdf0e10cSrcweir     pSpecialType->nPrecision = GetPrecision();
627cdf0e10cSrcweir     pSpecialType->nMaximumScale = static_cast<sal_Int16>(GetScale());
628cdf0e10cSrcweir     pSpecialType->bAutoIncrement = IsAutoIncrement(); // http://dba.openoffice.org/issues/show_bug.cgi?id=115398 fixed by ludob
629cdf0e10cSrcweir     return pSpecialType;
630cdf0e10cSrcweir }
631cdf0e10cSrcweir // -----------------------------------------------------------------------------
632cdf0e10cSrcweir sal_Bool                    OFieldDescription::IsAutoIncrement()        const
633cdf0e10cSrcweir {
634cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISAUTOINCREMENT) )
635cdf0e10cSrcweir         return ::cppu::any2bool(m_xDest->getPropertyValue(PROPERTY_ISAUTOINCREMENT));
636cdf0e10cSrcweir     else
637cdf0e10cSrcweir         return m_bIsAutoIncrement;
638cdf0e10cSrcweir }
639cdf0e10cSrcweir // -----------------------------------------------------------------------------
640cdf0e10cSrcweir sal_Bool                    OFieldDescription::IsPrimaryKey()           const
641cdf0e10cSrcweir {
642cdf0e10cSrcweir     return m_bIsPrimaryKey;
643cdf0e10cSrcweir }
644cdf0e10cSrcweir // -----------------------------------------------------------------------------
645cdf0e10cSrcweir sal_Bool                    OFieldDescription::IsCurrency()             const
646cdf0e10cSrcweir {
647cdf0e10cSrcweir         return m_bIsCurrency;
648cdf0e10cSrcweir }
649cdf0e10cSrcweir // -----------------------------------------------------------------------------
650cdf0e10cSrcweir sal_Bool                    OFieldDescription::IsNullable()             const
651cdf0e10cSrcweir {
652cdf0e10cSrcweir     if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISNULLABLE) )
653cdf0e10cSrcweir         return ::comphelper::getINT32(m_xDest->getPropertyValue(PROPERTY_ISNULLABLE)) == ::com::sun::star::sdbc::ColumnValue::NULLABLE;
654cdf0e10cSrcweir     else
655cdf0e10cSrcweir         return m_nIsNullable == ::com::sun::star::sdbc::ColumnValue::NULLABLE;
656cdf0e10cSrcweir }
657cdf0e10cSrcweir // -----------------------------------------------------------------------------
658cdf0e10cSrcweir void OFieldDescription::SetTypeName(const ::rtl::OUString& _sTypeName)
659cdf0e10cSrcweir {
660cdf0e10cSrcweir     try
661cdf0e10cSrcweir     {
662cdf0e10cSrcweir         if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPENAME) )
663cdf0e10cSrcweir             m_xDest->setPropertyValue(PROPERTY_TYPENAME,makeAny(_sTypeName));
664cdf0e10cSrcweir         else
665cdf0e10cSrcweir             m_sTypeName = _sTypeName;
666cdf0e10cSrcweir     }
667cdf0e10cSrcweir     catch( const Exception& )
668cdf0e10cSrcweir     {
669cdf0e10cSrcweir         DBG_UNHANDLED_EXCEPTION();
670cdf0e10cSrcweir     }
671cdf0e10cSrcweir }
672cdf0e10cSrcweir // -----------------------------------------------------------------------------
673cdf0e10cSrcweir void OFieldDescription::copyColumnSettingsTo(const Reference< XPropertySet >& _rxColumn)
674cdf0e10cSrcweir {
675cdf0e10cSrcweir     if ( _rxColumn.is() )
676cdf0e10cSrcweir     {
677cdf0e10cSrcweir         Reference<XPropertySetInfo> xInfo = _rxColumn->getPropertySetInfo();
678cdf0e10cSrcweir 
679cdf0e10cSrcweir         if ( GetFormatKey() != NumberFormat::ALL && xInfo->hasPropertyByName(PROPERTY_FORMATKEY) )
680cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_FORMATKEY,makeAny(GetFormatKey()));
681cdf0e10cSrcweir         if ( GetHorJustify() != SVX_HOR_JUSTIFY_STANDARD && xInfo->hasPropertyByName(PROPERTY_ALIGN) )
682cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_ALIGN,makeAny(dbaui::mapTextAllign(GetHorJustify())));
683cdf0e10cSrcweir         if ( GetHelpText().getLength() && xInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
684cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(GetHelpText()));
685cdf0e10cSrcweir         if ( GetControlDefault().hasValue() && xInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT) )
686cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_CONTROLDEFAULT,GetControlDefault());
687cdf0e10cSrcweir 
688cdf0e10cSrcweir         if(xInfo->hasPropertyByName(PROPERTY_RELATIVEPOSITION))
689cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_RELATIVEPOSITION,m_aRelativePosition);
690cdf0e10cSrcweir         if(xInfo->hasPropertyByName(PROPERTY_WIDTH))
691cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_WIDTH,m_aWidth);
692cdf0e10cSrcweir         if(xInfo->hasPropertyByName(PROPERTY_HIDDEN))
693cdf0e10cSrcweir             _rxColumn->setPropertyValue(PROPERTY_HIDDEN,makeAny(m_bHidden));
694cdf0e10cSrcweir     }
695cdf0e10cSrcweir }
696cdf0e10cSrcweir // -----------------------------------------------------------------------------
697