1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _BIBCONFIG_HXX
25*b1cdbd2cSJim Jagielski #define _BIBCONFIG_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <unotools/configitem.hxx>
28*b1cdbd2cSJim Jagielski class MappingArray;
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
31*b1cdbd2cSJim Jagielski #define COLUMN_COUNT 				31
32*b1cdbd2cSJim Jagielski #define IDENTIFIER_POS				0
33*b1cdbd2cSJim Jagielski #define AUTHORITYTYPE_POS			1
34*b1cdbd2cSJim Jagielski #define AUTHOR_POS                  2
35*b1cdbd2cSJim Jagielski #define TITLE_POS                   3
36*b1cdbd2cSJim Jagielski #define YEAR_POS                    4
37*b1cdbd2cSJim Jagielski #define ISBN_POS                    5
38*b1cdbd2cSJim Jagielski #define BOOKTITLE_POS               6
39*b1cdbd2cSJim Jagielski #define CHAPTER_POS                 7
40*b1cdbd2cSJim Jagielski #define EDITION_POS                 8
41*b1cdbd2cSJim Jagielski #define EDITOR_POS                  9
42*b1cdbd2cSJim Jagielski #define HOWPUBLISHED_POS            10
43*b1cdbd2cSJim Jagielski #define INSTITUTION_POS             11
44*b1cdbd2cSJim Jagielski #define JOURNAL_POS                 12
45*b1cdbd2cSJim Jagielski #define MONTH_POS                   13
46*b1cdbd2cSJim Jagielski #define NOTE_POS                    14
47*b1cdbd2cSJim Jagielski #define ANNOTE_POS                  15
48*b1cdbd2cSJim Jagielski #define NUMBER_POS                  16
49*b1cdbd2cSJim Jagielski #define ORGANIZATIONS_POS           17
50*b1cdbd2cSJim Jagielski #define PAGES_POS                   18
51*b1cdbd2cSJim Jagielski #define PUBLISHER_POS               19
52*b1cdbd2cSJim Jagielski #define ADDRESS_POS                 20
53*b1cdbd2cSJim Jagielski #define SCHOOL_POS                  21
54*b1cdbd2cSJim Jagielski #define SERIES_POS                  22
55*b1cdbd2cSJim Jagielski #define REPORTTYPE_POS              23
56*b1cdbd2cSJim Jagielski #define VOLUME_POS                  24
57*b1cdbd2cSJim Jagielski #define URL_POS                     25
58*b1cdbd2cSJim Jagielski #define CUSTOM1_POS                 26
59*b1cdbd2cSJim Jagielski #define CUSTOM2_POS                 27
60*b1cdbd2cSJim Jagielski #define CUSTOM3_POS                 28
61*b1cdbd2cSJim Jagielski #define CUSTOM4_POS                 29
62*b1cdbd2cSJim Jagielski #define CUSTOM5_POS                 30
63*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
64*b1cdbd2cSJim Jagielski struct StringPair
65*b1cdbd2cSJim Jagielski {
66*b1cdbd2cSJim Jagielski 	rtl::OUString 	sRealColumnName;
67*b1cdbd2cSJim Jagielski 	rtl::OUString  	sLogicalColumnName;
68*b1cdbd2cSJim Jagielski };
69*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
70*b1cdbd2cSJim Jagielski struct Mapping
71*b1cdbd2cSJim Jagielski {
72*b1cdbd2cSJim Jagielski 	rtl::OUString 		sTableName;
73*b1cdbd2cSJim Jagielski 	rtl::OUString		sURL;
74*b1cdbd2cSJim Jagielski 	sal_Int16			nCommandType;
75*b1cdbd2cSJim Jagielski 	StringPair 			aColumnPairs[COLUMN_COUNT];
76*b1cdbd2cSJim Jagielski 
MappingMapping77*b1cdbd2cSJim Jagielski 	Mapping() :
78*b1cdbd2cSJim Jagielski 		nCommandType(0){}
79*b1cdbd2cSJim Jagielski };
80*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
81*b1cdbd2cSJim Jagielski struct BibDBDescriptor
82*b1cdbd2cSJim Jagielski {
83*b1cdbd2cSJim Jagielski 	rtl::OUString 	sDataSource;
84*b1cdbd2cSJim Jagielski 	rtl::OUString  	sTableOrQuery;
85*b1cdbd2cSJim Jagielski 	sal_Int32 		nCommandType;
86*b1cdbd2cSJim Jagielski };
87*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------------
88*b1cdbd2cSJim Jagielski 
89*b1cdbd2cSJim Jagielski class BibConfig : public utl::ConfigItem
90*b1cdbd2cSJim Jagielski {
91*b1cdbd2cSJim Jagielski 	rtl::OUString 	sDataSource;
92*b1cdbd2cSJim Jagielski 	rtl::OUString 	sTableOrQuery;
93*b1cdbd2cSJim Jagielski 	sal_Int32 		nTblOrQuery;
94*b1cdbd2cSJim Jagielski 
95*b1cdbd2cSJim Jagielski 	rtl::OUString 	sQueryField;
96*b1cdbd2cSJim Jagielski 	rtl::OUString 	sQueryText;
97*b1cdbd2cSJim Jagielski 	MappingArray*				pMappingsArr;
98*b1cdbd2cSJim Jagielski     long 			nBeamerSize;
99*b1cdbd2cSJim Jagielski 	long 			nViewSize;
100*b1cdbd2cSJim Jagielski     sal_Bool        bShowColumnAssignmentWarning;
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski 	rtl::OUString 				aColumnDefaults[COLUMN_COUNT];
103*b1cdbd2cSJim Jagielski 
104*b1cdbd2cSJim Jagielski 	com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames();
105*b1cdbd2cSJim Jagielski public:
106*b1cdbd2cSJim Jagielski 	BibConfig();
107*b1cdbd2cSJim Jagielski 	~BibConfig();
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski 	virtual void	Commit();
110*b1cdbd2cSJim Jagielski     virtual void            Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
111*b1cdbd2cSJim Jagielski 
112*b1cdbd2cSJim Jagielski 	BibDBDescriptor			GetBibliographyURL();
113*b1cdbd2cSJim Jagielski 	void					SetBibliographyURL(const BibDBDescriptor& rDesc);
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski 	const Mapping* 			GetMapping(const BibDBDescriptor& rDesc) const;
116*b1cdbd2cSJim Jagielski 	void					SetMapping(const BibDBDescriptor& rDesc, const Mapping* pMapping);
117*b1cdbd2cSJim Jagielski 
GetDefColumnName(sal_uInt16 nIndex) const118*b1cdbd2cSJim Jagielski 	const rtl::OUString&	GetDefColumnName(sal_uInt16 nIndex) const
119*b1cdbd2cSJim Jagielski 											{return aColumnDefaults[nIndex];}
120*b1cdbd2cSJim Jagielski 
121*b1cdbd2cSJim Jagielski 
setBeamerSize(long nSize)122*b1cdbd2cSJim Jagielski 	void					setBeamerSize(long nSize) {SetModified(); nBeamerSize = nSize;}
getBeamerSize() const123*b1cdbd2cSJim Jagielski 	long					getBeamerSize()const {return nBeamerSize;}
setViewSize(long nSize)124*b1cdbd2cSJim Jagielski 	void					setViewSize(long nSize) {SetModified(); nViewSize = nSize;}
getViewSize()125*b1cdbd2cSJim Jagielski 	long					getViewSize() {return nViewSize;}
126*b1cdbd2cSJim Jagielski 
getQueryField() const127*b1cdbd2cSJim Jagielski 	const rtl::OUString&	getQueryField() const {return sQueryField;}
setQueryField(const rtl::OUString & rSet)128*b1cdbd2cSJim Jagielski 	void					setQueryField(const rtl::OUString& rSet) {SetModified(); sQueryField = rSet;}
129*b1cdbd2cSJim Jagielski 
getQueryText() const130*b1cdbd2cSJim Jagielski 	const rtl::OUString&	getQueryText() const {return sQueryText;}
setQueryText(const rtl::OUString & rSet)131*b1cdbd2cSJim Jagielski 	void					setQueryText(const rtl::OUString& rSet) {SetModified(); sQueryText = rSet;}
132*b1cdbd2cSJim Jagielski 
IsShowColumnAssignmentWarning() const133*b1cdbd2cSJim Jagielski     sal_Bool                IsShowColumnAssignmentWarning() const
134*b1cdbd2cSJim Jagielski                                 { return bShowColumnAssignmentWarning;}
SetShowColumnAssignmentWarning(sal_Bool bSet)135*b1cdbd2cSJim Jagielski     void                    SetShowColumnAssignmentWarning(sal_Bool bSet)
136*b1cdbd2cSJim Jagielski                                 { bShowColumnAssignmentWarning = bSet;}
137*b1cdbd2cSJim Jagielski };
138*b1cdbd2cSJim Jagielski /* -----------------------------20.11.00 11:47--------------------------------
139*b1cdbd2cSJim Jagielski 
140*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
141*b1cdbd2cSJim Jagielski class DBChangeDialogConfig_Impl
142*b1cdbd2cSJim Jagielski {
143*b1cdbd2cSJim Jagielski 	com::sun::star::uno::Sequence<rtl::OUString> aSourceNames;
144*b1cdbd2cSJim Jagielski public:
145*b1cdbd2cSJim Jagielski 	DBChangeDialogConfig_Impl();
146*b1cdbd2cSJim Jagielski 	~DBChangeDialogConfig_Impl();
147*b1cdbd2cSJim Jagielski 
148*b1cdbd2cSJim Jagielski     const com::sun::star::uno::Sequence<rtl::OUString>& GetDataSourceNames();
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski };
151*b1cdbd2cSJim Jagielski #endif
152