1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef _BIBCONFIG_HXX
29*cdf0e10cSrcweir #define _BIBCONFIG_HXX
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include <unotools/configitem.hxx>
32*cdf0e10cSrcweir class MappingArray;
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir //-----------------------------------------------------------------------------
35*cdf0e10cSrcweir #define COLUMN_COUNT 				31
36*cdf0e10cSrcweir #define IDENTIFIER_POS				0
37*cdf0e10cSrcweir #define AUTHORITYTYPE_POS			1
38*cdf0e10cSrcweir #define AUTHOR_POS                  2
39*cdf0e10cSrcweir #define TITLE_POS                   3
40*cdf0e10cSrcweir #define YEAR_POS                    4
41*cdf0e10cSrcweir #define ISBN_POS                    5
42*cdf0e10cSrcweir #define BOOKTITLE_POS               6
43*cdf0e10cSrcweir #define CHAPTER_POS                 7
44*cdf0e10cSrcweir #define EDITION_POS                 8
45*cdf0e10cSrcweir #define EDITOR_POS                  9
46*cdf0e10cSrcweir #define HOWPUBLISHED_POS            10
47*cdf0e10cSrcweir #define INSTITUTION_POS             11
48*cdf0e10cSrcweir #define JOURNAL_POS                 12
49*cdf0e10cSrcweir #define MONTH_POS                   13
50*cdf0e10cSrcweir #define NOTE_POS                    14
51*cdf0e10cSrcweir #define ANNOTE_POS                  15
52*cdf0e10cSrcweir #define NUMBER_POS                  16
53*cdf0e10cSrcweir #define ORGANIZATIONS_POS           17
54*cdf0e10cSrcweir #define PAGES_POS                   18
55*cdf0e10cSrcweir #define PUBLISHER_POS               19
56*cdf0e10cSrcweir #define ADDRESS_POS                 20
57*cdf0e10cSrcweir #define SCHOOL_POS                  21
58*cdf0e10cSrcweir #define SERIES_POS                  22
59*cdf0e10cSrcweir #define REPORTTYPE_POS              23
60*cdf0e10cSrcweir #define VOLUME_POS                  24
61*cdf0e10cSrcweir #define URL_POS                     25
62*cdf0e10cSrcweir #define CUSTOM1_POS                 26
63*cdf0e10cSrcweir #define CUSTOM2_POS                 27
64*cdf0e10cSrcweir #define CUSTOM3_POS                 28
65*cdf0e10cSrcweir #define CUSTOM4_POS                 29
66*cdf0e10cSrcweir #define CUSTOM5_POS                 30
67*cdf0e10cSrcweir //-----------------------------------------------------------------------------
68*cdf0e10cSrcweir struct StringPair
69*cdf0e10cSrcweir {
70*cdf0e10cSrcweir 	rtl::OUString 	sRealColumnName;
71*cdf0e10cSrcweir 	rtl::OUString  	sLogicalColumnName;
72*cdf0e10cSrcweir };
73*cdf0e10cSrcweir //-----------------------------------------------------------------------------
74*cdf0e10cSrcweir struct Mapping
75*cdf0e10cSrcweir {
76*cdf0e10cSrcweir 	rtl::OUString 		sTableName;
77*cdf0e10cSrcweir 	rtl::OUString		sURL;
78*cdf0e10cSrcweir 	sal_Int16			nCommandType;
79*cdf0e10cSrcweir 	StringPair 			aColumnPairs[COLUMN_COUNT];
80*cdf0e10cSrcweir 
81*cdf0e10cSrcweir 	Mapping() :
82*cdf0e10cSrcweir 		nCommandType(0){}
83*cdf0e10cSrcweir };
84*cdf0e10cSrcweir //-----------------------------------------------------------------------------
85*cdf0e10cSrcweir struct BibDBDescriptor
86*cdf0e10cSrcweir {
87*cdf0e10cSrcweir 	rtl::OUString 	sDataSource;
88*cdf0e10cSrcweir 	rtl::OUString  	sTableOrQuery;
89*cdf0e10cSrcweir 	sal_Int32 		nCommandType;
90*cdf0e10cSrcweir };
91*cdf0e10cSrcweir //-----------------------------------------------------------------------------
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir class BibConfig : public utl::ConfigItem
94*cdf0e10cSrcweir {
95*cdf0e10cSrcweir 	rtl::OUString 	sDataSource;
96*cdf0e10cSrcweir 	rtl::OUString 	sTableOrQuery;
97*cdf0e10cSrcweir 	sal_Int32 		nTblOrQuery;
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir 	rtl::OUString 	sQueryField;
100*cdf0e10cSrcweir 	rtl::OUString 	sQueryText;
101*cdf0e10cSrcweir 	MappingArray*				pMappingsArr;
102*cdf0e10cSrcweir     long 			nBeamerSize;
103*cdf0e10cSrcweir 	long 			nViewSize;
104*cdf0e10cSrcweir     sal_Bool        bShowColumnAssignmentWarning;
105*cdf0e10cSrcweir 
106*cdf0e10cSrcweir 	rtl::OUString 				aColumnDefaults[COLUMN_COUNT];
107*cdf0e10cSrcweir 
108*cdf0e10cSrcweir 	com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames();
109*cdf0e10cSrcweir public:
110*cdf0e10cSrcweir 	BibConfig();
111*cdf0e10cSrcweir 	~BibConfig();
112*cdf0e10cSrcweir 
113*cdf0e10cSrcweir 	virtual void	Commit();
114*cdf0e10cSrcweir     virtual void            Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
115*cdf0e10cSrcweir 
116*cdf0e10cSrcweir 	BibDBDescriptor			GetBibliographyURL();
117*cdf0e10cSrcweir 	void					SetBibliographyURL(const BibDBDescriptor& rDesc);
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir 	const Mapping* 			GetMapping(const BibDBDescriptor& rDesc) const;
120*cdf0e10cSrcweir 	void					SetMapping(const BibDBDescriptor& rDesc, const Mapping* pMapping);
121*cdf0e10cSrcweir 
122*cdf0e10cSrcweir 	const rtl::OUString&	GetDefColumnName(sal_uInt16 nIndex) const
123*cdf0e10cSrcweir 											{return aColumnDefaults[nIndex];}
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir 
126*cdf0e10cSrcweir 	void					setBeamerSize(long nSize) {SetModified(); nBeamerSize = nSize;}
127*cdf0e10cSrcweir 	long					getBeamerSize()const {return nBeamerSize;}
128*cdf0e10cSrcweir 	void					setViewSize(long nSize) {SetModified(); nViewSize = nSize;}
129*cdf0e10cSrcweir 	long					getViewSize() {return nViewSize;}
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir 	const rtl::OUString&	getQueryField() const {return sQueryField;}
132*cdf0e10cSrcweir 	void					setQueryField(const rtl::OUString& rSet) {SetModified(); sQueryField = rSet;}
133*cdf0e10cSrcweir 
134*cdf0e10cSrcweir 	const rtl::OUString&	getQueryText() const {return sQueryText;}
135*cdf0e10cSrcweir 	void					setQueryText(const rtl::OUString& rSet) {SetModified(); sQueryText = rSet;}
136*cdf0e10cSrcweir 
137*cdf0e10cSrcweir     sal_Bool                IsShowColumnAssignmentWarning() const
138*cdf0e10cSrcweir                                 { return bShowColumnAssignmentWarning;}
139*cdf0e10cSrcweir     void                    SetShowColumnAssignmentWarning(sal_Bool bSet)
140*cdf0e10cSrcweir                                 { bShowColumnAssignmentWarning = bSet;}
141*cdf0e10cSrcweir };
142*cdf0e10cSrcweir /* -----------------------------20.11.00 11:47--------------------------------
143*cdf0e10cSrcweir 
144*cdf0e10cSrcweir  ---------------------------------------------------------------------------*/
145*cdf0e10cSrcweir class DBChangeDialogConfig_Impl
146*cdf0e10cSrcweir {
147*cdf0e10cSrcweir 	com::sun::star::uno::Sequence<rtl::OUString> aSourceNames;
148*cdf0e10cSrcweir public:
149*cdf0e10cSrcweir 	DBChangeDialogConfig_Impl();
150*cdf0e10cSrcweir 	~DBChangeDialogConfig_Impl();
151*cdf0e10cSrcweir 
152*cdf0e10cSrcweir     const com::sun::star::uno::Sequence<rtl::OUString>& GetDataSourceNames();
153*cdf0e10cSrcweir 
154*cdf0e10cSrcweir };
155*cdf0e10cSrcweir #endif
156