1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef DBAUI_DBSETUPCONNECTIONPAGES_HXX
25 #define DBAUI_DBSETUPCONNECTIONPAGES_HXX
26 
27 #ifndef DBAUI_CONNECTIONPAGESETUP_HXX
28 #include "ConnectionPageSetup.hxx"
29 #endif
30 
31 #include "adminpages.hxx"
32 #include "admincontrols.hxx"
33 #include "curledit.hxx"
34 #include "TextConnectionHelper.hxx"
35 
36 #include <svtools/roadmapwizard.hxx>
37 #include <ucbhelper/content.hxx>
38 #include <vcl/field.hxx>
39 
40 
41 //.........................................................................
42 namespace dbaui
43 
44 {
45 //.........................................................................
46 
47 	class IDatabaseSettingsDialog;
48 //		static	OGenericAdministrationPage*	CreateDbaseTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
49 
50 
51    	//========================================================================
52 	//= OSpreadSheetConnectionPageSetup
53 	//========================================================================
54 	class OSpreadSheetConnectionPageSetup : public OConnectionTabPageSetup
55 	{
56 	public:
57 		virtual	sal_Bool		FillItemSet	( SfxItemSet& _rCoreAttrs );
58 		static	OGenericAdministrationPage*	CreateSpreadSheetTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
59 		OSpreadSheetConnectionPageSetup(Window* pParent, const SfxItemSet& _rCoreAttrs);
60 
61 	protected:
62         CheckBox m_aCBPasswordrequired;
63 		virtual ~OSpreadSheetConnectionPageSetup();
64 
65 	protected:
66 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
67 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
68 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
69 
70 	};
71 
72 	//========================================================================
73 	//= OTextConnectionPage
74 	//========================================================================
75 	class OTextConnectionPageSetup : public OConnectionTabPageSetup
76 	{
77 	public:
78 		virtual	sal_Bool		FillItemSet	( SfxItemSet& _rCoreAttrs );
79    		static	OGenericAdministrationPage*	CreateTextTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
80 		OTextConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs );
81         OTextConnectionHelper*  m_pTextConnectionHelper;
82 	private:
83 
84 	protected:
85 		virtual ~OTextConnectionPageSetup();
86 		virtual sal_Bool prepareLeave();
87 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
88 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
89 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
90         bool    checkTestConnection();
91 
92 	private:
93         DECL_LINK(ImplGetExtensionHdl, OTextConnectionHelper*);
94 	};
95 
96 	//========================================================================
97 	//= OLDAPConnectionPageSetup
98 	//========================================================================
99 	class OLDAPConnectionPageSetup : public OGenericAdministrationPage
100 	{
101 	public:
102 		virtual	sal_Bool		FillItemSet	( SfxItemSet& _rCoreAttrs );
103         static	OGenericAdministrationPage*	CreateLDAPTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
104 		OLDAPConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs );
getControlModifiedLink()105         virtual Link getControlModifiedLink() { return LINK(this, OLDAPConnectionPageSetup, OnEditModified); }
106 
107 	protected:
108 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
109 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
110 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
111 		DECL_LINK(OnEditModified,Edit*);
112 
113 	private:
114         FixedText           m_aFTHeaderText;
115         FixedText           m_aFTHelpText;
116         FixedText           m_aFTHostServer;
117         Edit                m_aETHostServer;
118         FixedText			m_aFTBaseDN;
119 		Edit				m_aETBaseDN;
120 		FixedText			m_aFTPortNumber;
121 		NumericField		m_aNFPortNumber;
122 		FixedText			m_aFTDefaultPortNumber;
123         CheckBox            m_aCBUseSSL;
124     };
125 
126 	//========================================================================
127 	//= MySQLNativeSetupPage
128 	//========================================================================
129     class MySQLNativeSetupPage : public OGenericAdministrationPage
130     {
131     private:
132 	    FixedText           m_aHeader;
133 	    FixedText           m_aHelpText;
134         MySQLNativeSettings m_aMySQLSettings;
135 
136     public:
137         MySQLNativeSetupPage( Window* _pParent, const SfxItemSet& _rCoreAttrs );
138 
139         static OGenericAdministrationPage* Create( Window* pParent, const SfxItemSet& _rAttrSet );
140 
141     protected:
142 		virtual void fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList );
143 		virtual void fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList );
144 
145         virtual	sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs );
146 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
147 
148         virtual Link getControlModifiedLink();
149 
150     private:
151 		DECL_LINK( OnModified, Edit* );
152     };
153 
154 	//========================================================================
155 	//= OGeneralSpecialJDBCConnectionPageSetup
156 	//========================================================================
157 	class OGeneralSpecialJDBCConnectionPageSetup : public OGenericAdministrationPage
158 	{
159 	public:
160 		OGeneralSpecialJDBCConnectionPageSetup(   Window* pParent
161 										, sal_uInt16 _nResId
162 										, const SfxItemSet& _rCoreAttrs
163 										, sal_uInt16 _nPortId
164                                         , sal_uInt16 _nDefaultPortResId
165                                         , sal_uInt16 _nHelpTextResId
166                                         , sal_uInt16 _nHeaderTextResId
167                                         , sal_uInt16 _nDriverClassId );
168     static	OGenericAdministrationPage*	CreateMySQLJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
169     static	OGenericAdministrationPage*	CreateOracleJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
170 
171     protected:
172 		virtual	sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs );
173 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
174 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
175 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
getControlModifiedLink()176         virtual Link getControlModifiedLink() { return LINK(this, OGeneralSpecialJDBCConnectionPageSetup, OnEditModified); }
177 
178 		DECL_LINK(OnTestJavaClickHdl,PushButton*);
179 		DECL_LINK(OnEditModified,Edit*);
180 	    FixedText           m_aFTHelpText;
181         FixedText           m_aFTDatabasename;
182         Edit                m_aETDatabasename;
183 		FixedText			m_aFTHostname;
184 		Edit				m_aETHostname;
185 		FixedText			m_aFTPortNumber;
186 		FixedText			m_aFTDefaultPortNumber;
187         NumericField		m_aNFPortNumber;
188 
189 
190 		FixedText			m_aFTDriverClass;
191 		Edit				m_aETDriverClass;
192 		PushButton			m_aPBTestJavaDriver;
193 
194 		String				m_sDefaultJdbcDriverName;
195 		sal_uInt16				m_nPortId;
196 	};
197 
198 
199 	//========================================================================
200 	//= OJDBCConnectionPageSetup
201 	//========================================================================
202 	class OJDBCConnectionPageSetup : public OConnectionTabPageSetup
203 	{
204 	public:
205 		        OJDBCConnectionPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs );
206         static	OGenericAdministrationPage*	CreateJDBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
207 
208 	protected:
209 		virtual bool checkTestConnection();
210 
211 		virtual	sal_Bool FillItemSet( SfxItemSet& _rCoreAttrs );
212 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
213 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
214 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
215 
216 		DECL_LINK(OnTestJavaClickHdl,PushButton*);
217 		DECL_LINK(OnEditModified,Edit*);
218 		FixedText			m_aFTDriverClass;
219 		Edit				m_aETDriverClass;
220 		PushButton			m_aPBTestJavaDriver;
221 	};
222 
223 
224 
225 	//========================================================================
226 	//= OJDBCConnectionPageSetup
227 	//========================================================================
228 	class OMySQLIntroPageSetup : public OGenericAdministrationPage
229 	{
230 	public:
231         enum ConnectionType
232         {
233             VIA_ODBC,
234             VIA_JDBC,
235             VIA_NATIVE
236         };
237 
238 		OMySQLIntroPageSetup( Window* pParent, const SfxItemSet& _rCoreAttrs);
239 
240 	    static OMySQLIntroPageSetup*	CreateMySQLIntroTabPage( Window* _pParent, const SfxItemSet& _rAttrSet );
241         ConnectionType      getMySQLMode();
242         Link                maClickHdl;
SetClickHdl(const Link & rLink)243         void                SetClickHdl( const Link& rLink ) { maClickHdl = rLink; }
GetClickHdl() const244         const Link&         GetClickHdl() const { return maClickHdl; }
245         DECL_LINK(ImplClickHdl, OMySQLIntroPageSetup*);
246 
247 
248 
249 
250 	protected:
251 		virtual sal_Bool FillItemSet(SfxItemSet& _rSet);
252         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
253 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
254 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
255 		virtual ~OMySQLIntroPageSetup();
256 
257     private:
258         RadioButton         m_aRB_ODBCDatabase;
259 		RadioButton         m_aRB_JDBCDatabase;
260         RadioButton         m_aRB_NATIVEDatabase;
261         FixedText           m_aFT_ConnectionMode;
262         FixedText           m_aFT_Helptext;
263         FixedText           m_aFT_Headertext;
264 
265         DECL_LINK(OnSetupModeSelected, RadioButton*);
266 
267     };
268 
269 
270 
271 
272    	//========================================================================
273 	//= OAuthentificationPageSetup
274 	//========================================================================
275 	class OAuthentificationPageSetup : public OGenericAdministrationPage
276 	{
277 	public:
278 		virtual	sal_Bool		FillItemSet	( SfxItemSet& _rCoreAttrs );
279 		static	OGenericAdministrationPage*	CreateAuthentificationTabPage( Window* pParent, const SfxItemSet& _rAttrSet );
280 		OAuthentificationPageSetup(Window* pParent, const SfxItemSet& _rCoreAttrs);
281 
282 	protected:
283         FixedText   m_aFTHelpText;
284         FixedText   m_aFTHeaderText;
285 		FixedText   m_aFTUserName;
286 		Edit        m_aETUserName;
287 		CheckBox    m_aCBPasswordRequired;
288         PushButton  m_aPBTestConnection;
289 		virtual ~OAuthentificationPageSetup();
290 
291 	protected:
292 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
293 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
294 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
295 	};
296 
297 
298 
299    	//========================================================================
300 	//= OFinalDBPageSetup
301 	//========================================================================
302 	class OFinalDBPageSetup : public OGenericAdministrationPage
303 	{
304 	public:
305 		virtual	sal_Bool		FillItemSet	( SfxItemSet& _rCoreAttrs );
306    		static	OGenericAdministrationPage*	CreateFinalDBTabPageSetup( Window* pParent, const SfxItemSet& _rAttrSet);
307 
308         FixedText   m_aFTFinalHeader;
309         FixedText   m_aFTFinalHelpText;
310         RadioButton m_aRBRegisterDataSource;
311         RadioButton m_aRBDontregisterDataSource;
312         FixedText   m_aFTAdditionalSettings;
313         CheckBox    m_aCBOpenAfterwards;
314         CheckBox    m_aCBStartTableWizard;
315         FixedText   m_aFTFinalText;
316 
317         OFinalDBPageSetup(Window* pParent, const SfxItemSet& _rCoreAttrs);
318         sal_Bool IsDatabaseDocumentToBeRegistered();
319         sal_Bool IsDatabaseDocumentToBeOpened();
320         sal_Bool IsTableWizardToBeStarted();
321         void enableTableWizardCheckBox( sal_Bool _bSupportsTableCreation);
322 
323 		/// may be used in SetXXXHdl calls to controls, is a link to <method>OnControlModified</method>
getControlModifiedLink()324 		Link getControlModifiedLink() { return LINK(this, OGenericAdministrationPage, OnControlModified); }
325 
326 		DECL_LINK(OnOpenSelected, CheckBox*);
327 	protected:
328 		virtual ~OFinalDBPageSetup();
329 
330 	protected:
331 		virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
332 		virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
333 		virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
334     };
335 
336 //.........................................................................
337 }	// namespace dbaui
338 //.........................................................................
339 
340 #endif
341