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 
28 #ifndef EXTENSIONS_ABP_FIELDMAPPINGIMPL_HXX
29 #define EXTENSIONS_ABP_FIELDMAPPINGIMPL_HXX
30 
31 #include <rtl/ustring.hxx>
32 #include "abptypes.hxx"
33 #include <com/sun/star/uno/Reference.hxx>
34 #include "addresssettings.hxx"
35 
36 namespace com { namespace sun { namespace star {
37 	namespace lang {
38 		class XMultiServiceFactory;
39 	}
40     namespace beans {
41         class XPropertySet;
42     }
43 } } }
44 class Window;
45 
46 //.........................................................................
47 namespace abp
48 {
49 //.........................................................................
50 
51 	//.....................................................................
52 	namespace fieldmapping
53 	{
54 	//.....................................................................
55 
56 		//-----------------------------------------------------------------
57 		/** invokes the field mapping dialog
58 			@param _rxORB
59 				service factory to use for creating UNO services
60 			@param _pParent
61 				window to use as parent for the dialog and error messages
62 			@param _rSettings
63 				current settings. Upon return, the field mapping member of this
64                 structure will be filled with the settings the user did in the
65                 field mapping dialog.
66 		*/
67 		sal_Bool invokeDialog(
68 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
69 			class Window* _pParent,
70             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxDataSource,
71 			AddressSettings& _rSettings
72 		) SAL_THROW ( ( ) );
73 
74 		//-----------------------------------------------------------------
75 		/** creates a default field mapping for usage with the address book SDBC driver
76 			<p>The column names as used by the SDBC driver for address books is stored in the configuration,
77 			and this function creates a mapping which uses this configuration information.</p>
78 		*/
79 		void defaultMapping(
80 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
81 			MapString2String& /* [out] */ _rFieldAssignment
82 		) SAL_THROW ( ( ) );
83 
84 		//-----------------------------------------------------------------
85 		/** writes a field mapping for the template document address source
86 		*/
87 		void writeTemplateAddressFieldMapping(
88 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
89 			const MapString2String& _rFieldAssignment
90 		) SAL_THROW ( ( ) );
91 
92 	//.....................................................................
93 	}	// namespace fieldmapping
94 	//.....................................................................
95 
96 	//.....................................................................
97 	namespace addressconfig
98 	{
99 	//.....................................................................
100 
101 		//-----------------------------------------------------------------
102 		/** writes the data source / table name given into the configuration, to where the template documents
103 			expect it.
104 		*/
105 		void writeTemplateAddressSource(
106 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
107 			const ::rtl::OUString& _rDataSourceName,
108 			const ::rtl::OUString& _rTableName
109 		) SAL_THROW ( ( ) );
110 
111 		/** writes the configuration entry which states the the pilot has been completed successfully
112 		*/
113 		void markPilotSuccess(
114 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB
115 		) SAL_THROW ( ( ) );
116 
117 	//.....................................................................
118 	}	// namespace addressconfig
119 	//.....................................................................
120 
121 //.........................................................................
122 }	// namespace abp
123 //.........................................................................
124 
125 #endif // EXTENSIONS_ABP_FIELDMAPPINGIMPL_HXX
126 
127