xref: /trunk/main/dbaccess/source/ui/dlg/detailpages.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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 _DBAUI_DETAILPAGES_HXX_
29 #define _DBAUI_DETAILPAGES_HXX_
30 
31 #ifndef _DBAUI_ADMINPAGES_HXX_
32 #include "adminpages.hxx"
33 #endif
34 #ifndef _DBAUI_CHARSETS_HXX_
35 #include "charsets.hxx"
36 #endif
37 #ifndef CHARSETLISTBOX_HXX
38 #include "charsetlistbox.hxx"
39 #endif
40 #ifndef _SV_FIELD_HXX
41 #include <vcl/field.hxx>
42 #endif
43 #ifndef _SV_FIXED_HXX
44 #include <vcl/fixed.hxx>
45 #endif
46 #ifndef _SV_LSTBOX_HXX
47 #include <vcl/lstbox.hxx>
48 #endif
49 #ifndef _SV_EDIT_HXX
50 #include <vcl/edit.hxx>
51 #endif
52 #ifndef _SV_BUTTON_HXX
53 #include <vcl/button.hxx>
54 #endif
55 #ifndef DBAUI_TEXTCONNECTIONHELPER_HXX
56 #include "TextConnectionHelper.hxx"
57 #endif
58 #include "admincontrols.hxx"
59 
60 #include <svtools/dialogcontrolling.hxx>
61 
62 
63 //.........................................................................
64 namespace dbaui
65 {
66 //.........................................................................
67     //=========================================================================
68     //= OCommonBehaviourTabPage
69     //=========================================================================
70     #define     CBTP_NONE                           0x00000000
71     #define     CBTP_USE_CHARSET                    0x00000002
72     #define     CBTP_USE_OPTIONS                    0x00000004
73 
74     /** eases the implementation of tab pages handling user/password and/or character
75         set and/or generic options input
76         <BR>
77         The controls to be used habe to be defined within the resource, as usual, but
78         this class does all the handling necessary.
79     */
80     class OCommonBehaviourTabPage : public OGenericAdministrationPage
81     {
82     protected:
83 
84         FixedText*          m_pOptionsLabel;
85         Edit*               m_pOptions;
86 
87         FixedLine*          m_pDataConvertFixedLine;
88         FixedText*          m_pCharsetLabel;
89         CharSetListBox*     m_pCharset;
90 
91         FixedLine*          m_pAutoFixedLine;
92         CheckBox*           m_pAutoRetrievingEnabled;
93         FixedText*          m_pAutoIncrementLabel;
94         Edit*               m_pAutoIncrement;
95         FixedText*          m_pAutoRetrievingLabel;
96         Edit*               m_pAutoRetrieving;
97 
98         sal_uInt32          m_nControlFlags;
99 
100     public:
101         virtual sal_Bool        FillItemSet (SfxItemSet& _rCoreAttrs);
102 
103         OCommonBehaviourTabPage(Window* pParent, sal_uInt16 nResId, const SfxItemSet& _rCoreAttrs, sal_uInt32 nControlFlags,bool _bFreeResource = true);
104     protected:
105 
106             // nControlFlags ist eine Kombination der CBTP_xxx-Konstanten
107         virtual ~OCommonBehaviourTabPage();
108 
109         // must be overloaded by subclasses, but it isn't pure virtual
110         virtual void        implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
111 
112         // <method>OGenericAdministrationPage::fillControls</method>
113         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
114 
115         // <method>OGenericAdministrationPage::fillWindows</method>
116         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
117     };
118 
119     //========================================================================
120     //= ODbaseDetailsPage
121     //========================================================================
122     class ODbaseDetailsPage : public OCommonBehaviourTabPage
123     {
124     public:
125         virtual sal_Bool        FillItemSet ( SfxItemSet& _rCoreAttrs );
126 
127         ODbaseDetailsPage(Window* pParent, const SfxItemSet& _rCoreAttrs);
128     private:
129         // please add new controls also to <method>fillControls</method> or <method>fillWindows</method>
130         CheckBox            m_aShowDeleted;
131         FixedLine           m_aFL_1;
132         FixedText           m_aFT_Message;
133         PushButton          m_aIndexes;
134 
135         String              m_sDsn;
136 
137     protected:
138 
139         virtual ~ODbaseDetailsPage();
140 
141     protected:
142         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
143         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
144         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
145 
146     private:
147         DECL_LINK( OnButtonClicked, Button * );
148     };
149 
150     //========================================================================
151     //= OAdoDetailsPage
152     //========================================================================
153     class OAdoDetailsPage : public OCommonBehaviourTabPage
154     {
155     protected:
156         virtual ~OAdoDetailsPage();
157     public:
158 
159         OAdoDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
160     };
161 
162     //========================================================================
163     //= OOdbcDetailsPage
164     //========================================================================
165     class OOdbcDetailsPage : public OCommonBehaviourTabPage
166     {
167     public:
168         virtual sal_Bool        FillItemSet ( SfxItemSet& _rCoreAttrs );
169 
170         OOdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
171     protected:
172         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
173         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
174         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
175     private:
176         FixedLine           m_aFL_1;
177         CheckBox            m_aUseCatalog;
178     };
179 
180 
181     //========================================================================
182     //= OUserDriverDetailsPage
183     //========================================================================
184     class OUserDriverDetailsPage : public OCommonBehaviourTabPage
185     {
186     public:
187         virtual sal_Bool        FillItemSet ( SfxItemSet& _rCoreAttrs );
188 
189         OUserDriverDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
190     protected:
191         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
192         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
193         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
194     private:
195         FixedText           m_aFTHostname;
196         Edit                m_aEDHostname;
197         FixedText           m_aPortNumber;
198         NumericField        m_aNFPortNumber;
199         CheckBox            m_aUseCatalog;
200     };
201 
202     //========================================================================
203     //= OMySQLODBCDetailsPage
204     //========================================================================
205     class OMySQLODBCDetailsPage : public OCommonBehaviourTabPage
206     {
207     public:
208         OMySQLODBCDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
209     };
210 
211     //========================================================================
212     //= OGeneralSpecialJDBCDetailsPage
213     //========================================================================
214     class OGeneralSpecialJDBCDetailsPage : public OCommonBehaviourTabPage
215     {
216     public:
217         OGeneralSpecialJDBCDetailsPage(   Window* pParent
218                                         , sal_uInt16 _nResId
219                                         , const SfxItemSet& _rCoreAttrs
220                                         , sal_uInt16 _nPortId
221                                         );
222 
223     protected:
224 
225 
226         virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs );
227         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
228         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
229         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
230 
231         DECL_LINK(OnTestJavaClickHdl,PushButton*);
232         DECL_LINK(OnEditModified,Edit*);
233 
234         FixedLine           m_aFL_1;
235         FixedText           m_aFTHostname;
236         Edit                m_aEDHostname;
237         FixedText           m_aPortNumber;
238         NumericField        m_aNFPortNumber;
239         FixedText           m_aFTSocket;
240         Edit                m_aEDSocket;
241 
242         FixedText           m_aFTDriverClass;
243         Edit                m_aEDDriverClass;
244         PushButton          m_aTestJavaDriver;
245 
246         String              m_sDefaultJdbcDriverName;
247         sal_uInt16              m_nPortId;
248         bool                m_bUseClass;
249     };
250 
251     //========================================================================
252     //= MySQLNativePage
253     //========================================================================
254     class MySQLNativePage : public OCommonBehaviourTabPage
255     {
256     public:
257         MySQLNativePage(    Window* pParent,
258                             const SfxItemSet& _rCoreAttrs );
259 
260     private:
261         FixedLine           m_aSeparator1;
262         MySQLNativeSettings m_aMySQLSettings;
263 
264         FixedLine           m_aSeparator2;
265         FixedText           m_aUserNameLabel;
266         Edit                m_aUserName;
267         CheckBox            m_aPasswordRequired;
268 
269     protected:
270         virtual sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs );
271         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
272         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
273         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
274     };
275 
276     //========================================================================
277     //= OAdabasDetailsPage
278     //========================================================================
279     class OAdabasDetailsPage : public OCommonBehaviourTabPage
280     {
281     public:
282         virtual sal_Bool        FillItemSet (SfxItemSet& _rCoreAttrs);
283 
284         OAdabasDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
285     protected:
286         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
287         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
288         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
289 
290     private:
291         FixedText           m_aFTHostname;
292         Edit                m_aEDHostname;
293         FixedLine           m_aFL_1;
294         FixedText           m_FT_CACHE_SIZE;
295         NumericField        m_NF_CACHE_SIZE;
296 
297         FixedText           m_FT_DATA_INCREMENT;
298         NumericField        m_NF_DATA_INCREMENT;
299 
300         FixedLine           m_aFL_2;
301         FixedText           m_FT_CTRLUSERNAME;
302         Edit                m_ET_CTRLUSERNAME;
303         FixedText           m_FT_CTRLPASSWORD;
304         Edit                m_ET_CTRLPASSWORD;
305 
306         CheckBox            m_CB_SHUTDB;
307         PushButton          m_PB_STAT;
308         String              m_sUser;
309         sal_Bool                bAttrsChanged;
310 
311         DECL_LINK( AttributesChangedHdl,    void * );
312         DECL_LINK( UserSettingsHdl,         void * );
313         DECL_LINK( LoseFocusHdl,            Edit * );
314         DECL_LINK( PBClickHdl,              Button *);
315     };
316 
317     //========================================================================
318     //= OOdbcDetailsPage
319     //========================================================================
320     class OLDAPDetailsPage : public OCommonBehaviourTabPage
321     {
322     public:
323         virtual sal_Bool        FillItemSet ( SfxItemSet& _rCoreAttrs );
324 
325         OLDAPDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
326     protected:
327         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
328         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
329         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
330     private:
331         FixedLine           m_aFL_1;
332         FixedText           m_aBaseDN;
333         Edit                m_aETBaseDN;
334         CheckBox            m_aCBUseSSL;
335         FixedText           m_aPortNumber;
336         NumericField        m_aNFPortNumber;
337         FixedText           m_aFTRowCount;
338         NumericField        m_aNFRowCount;
339 
340         sal_Int32           m_iSSLPort;
341         sal_Int32           m_iNormalPort;
342         DECL_LINK( OnCheckBoxClick, CheckBox * );
343     };
344 
345     //========================================================================
346     //= OMozillaDetailsPage Detail page for Mozilla and Thunderbird addressbook
347     //========================================================================
348     class OMozillaDetailsPage : public OCommonBehaviourTabPage
349     {
350     protected:
351         virtual ~OMozillaDetailsPage();
352     public:
353 
354         OMozillaDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
355     };
356 
357     //========================================================================
358     //= OTextDetailsPage
359     //========================================================================
360     class OTextDetailsPage : public OCommonBehaviourTabPage
361     {
362     public:
363         virtual sal_Bool        FillItemSet ( SfxItemSet& _rCoreAttrs );
364 
365         OTextDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
366         OTextConnectionHelper*  m_pTextConnectionHelper;
367 
368     private:
369 
370         String      m_aFieldSeparatorList;
371         String      m_aTextSeparatorList;
372         String      m_aTextNone;
373     protected:
374         virtual ~OTextDetailsPage();
375         virtual sal_Bool prepareLeave();
376 
377         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
378         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
379         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
380 
381     private:
382     };
383 
384 //.........................................................................
385 }   // namespace dbaui
386 //.........................................................................
387 
388 #endif // _DBAUI_DETAILPAGES_HXX_
389