1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef DBAUI_COLUMNCONTROLWINDOW_HXX
28 #define DBAUI_COLUMNCONTROLWINDOW_HXX
29 
30 #ifndef DBAUI_FIELDDESCRIPTIONCONTROL_HXX
31 #include "FieldDescControl.hxx"
32 #endif
33 #ifndef DBAUI_TYPEINFO_HXX
34 #include "TypeInfo.hxx"
35 #endif
36 #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
37 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
38 #endif
39 #ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_
40 #include <com/sun/star/util/XNumberFormatter.hpp>
41 #endif
42 
43 //.........................................................................
44 namespace dbaui
45 {
46 //.........................................................................
47 	// =============================================================================================
48 	// OColumnControlWindow
49 	// =============================================================================================
50 	class OColumnControlWindow : public OFieldDescControl
51 	{
52 		::com::sun::star::lang::Locale		m_aLocale;
53 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>	m_xORB;
54 		::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>			m_xConnection;
55 		mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > 	m_xFormatter;	// a number formatter working with the connection's NumberFormatsSupplier
56 
57 		OTypeInfoMap				m_aDestTypeInfo;
58 		::std::vector<OTypeInfoMap::iterator> m_aDestTypeInfoIndex;
59 
60 		mutable TOTypeInfoSP		m_pTypeInfo; // default type
61 		String						m_sTypeNames;		// these type names are the ones out of the resource file
62 		::rtl::OUString				m_sAutoIncrementValue;
63 		sal_Bool					m_bAutoIncrementEnabled;
64 	protected:
65 		virtual void		ActivateAggregate( EControlType eType );
66 		virtual void		DeactivateAggregate( EControlType eType );
67 
68 		virtual ::com::sun::star::lang::Locale	GetLocale() const;
69 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > GetFormatter() const;
70 		virtual TOTypeInfoSP		getTypeInfo(sal_Int32 _nPos);
71 		virtual sal_Bool			isAutoIncrementValueEnabled() const;
72 		virtual ::rtl::OUString		getAutoIncrementValue() const;
73 		virtual void				CellModified(long nRow, sal_uInt16 nColId );
74 
75 	public:
76 		OColumnControlWindow(Window* pParent
77 							,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
78 		virtual ~OColumnControlWindow();
79 
80 		void setConnection(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xCon);
81 
82 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData> getMetaData();
83 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection();
84 		virtual const OTypeInfoMap*	getTypeInfo() const;
85 		TOTypeInfoSP getDefaultTyp() const;
86 	};
87 //.........................................................................
88 }	// namespace dbaui
89 //.........................................................................
90 #endif // DBAUI_COLUMNCONTROLWINDOW_HXX
91