xref: /trunk/main/dbaccess/source/ui/dlg/detailpages.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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 // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_dbaccess.hxx"
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include "detailpages.hxx"
32*cdf0e10cSrcweir #include "sqlmessage.hxx"
33*cdf0e10cSrcweir #include "dsmeta.hxx"
34*cdf0e10cSrcweir #include "advancedsettings.hxx"
35*cdf0e10cSrcweir #include "DbAdminImpl.hxx"
36*cdf0e10cSrcweir #include "dsitems.hxx"
37*cdf0e10cSrcweir #include "dbfindex.hxx"
38*cdf0e10cSrcweir #include "localresaccess.hxx"
39*cdf0e10cSrcweir #include "dsnItem.hxx"
40*cdf0e10cSrcweir 
41*cdf0e10cSrcweir #include "dbaccess_helpid.hrc"
42*cdf0e10cSrcweir #include "dbu_dlg.hrc"
43*cdf0e10cSrcweir #include "dbadmin.hrc"
44*cdf0e10cSrcweir 
45*cdf0e10cSrcweir #ifndef _SFXITEMSET_HXX
46*cdf0e10cSrcweir #include <svl/itemset.hxx>
47*cdf0e10cSrcweir #endif
48*cdf0e10cSrcweir #ifndef _SFXSTRITEM_HXX
49*cdf0e10cSrcweir #include <svl/stritem.hxx>
50*cdf0e10cSrcweir #endif
51*cdf0e10cSrcweir #ifndef _SFXENUMITEM_HXX
52*cdf0e10cSrcweir #include <svl/eitem.hxx>
53*cdf0e10cSrcweir #endif
54*cdf0e10cSrcweir #ifndef _SFXINTITEM_HXX
55*cdf0e10cSrcweir #include <svl/intitem.hxx>
56*cdf0e10cSrcweir #endif
57*cdf0e10cSrcweir #ifndef _SV_MSGBOX_HXX
58*cdf0e10cSrcweir #include <vcl/msgbox.hxx>
59*cdf0e10cSrcweir #endif
60*cdf0e10cSrcweir #ifndef _SV_MNEMONIC_HXX
61*cdf0e10cSrcweir #include <vcl/mnemonic.hxx>
62*cdf0e10cSrcweir #endif
63*cdf0e10cSrcweir #ifndef _SVTOOLS_CJKOPTIONS_HXX
64*cdf0e10cSrcweir #include <svl/cjkoptions.hxx>
65*cdf0e10cSrcweir #endif
66*cdf0e10cSrcweir #include <jvmaccess/virtualmachine.hxx>
67*cdf0e10cSrcweir #ifndef DBAUI_ADABASPAGE_HRC
68*cdf0e10cSrcweir #include "AdabasPage.hrc"
69*cdf0e10cSrcweir #endif
70*cdf0e10cSrcweir #ifndef _DBAUI_ADASTAT_HXX_
71*cdf0e10cSrcweir #include "AdabasStat.hxx"
72*cdf0e10cSrcweir #endif
73*cdf0e10cSrcweir #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
74*cdf0e10cSrcweir #include <connectivity/CommonTools.hxx>
75*cdf0e10cSrcweir #endif
76*cdf0e10cSrcweir #ifndef DBAUI_DRIVERSETTINGS_HXX
77*cdf0e10cSrcweir #include "DriverSettings.hxx"
78*cdf0e10cSrcweir #endif
79*cdf0e10cSrcweir #ifndef _DBAUI_DBADMIN_HXX_
80*cdf0e10cSrcweir #include "dbadmin.hxx"
81*cdf0e10cSrcweir #endif
82*cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_
83*cdf0e10cSrcweir #include <comphelper/types.hxx>
84*cdf0e10cSrcweir #endif
85*cdf0e10cSrcweir #include "AutoControls.hrc"
86*cdf0e10cSrcweir 
87*cdf0e10cSrcweir //.........................................................................
88*cdf0e10cSrcweir namespace dbaui
89*cdf0e10cSrcweir {
90*cdf0e10cSrcweir //.........................................................................
91*cdf0e10cSrcweir 
92*cdf0e10cSrcweir     using namespace ::com::sun::star::uno;
93*cdf0e10cSrcweir     using namespace ::com::sun::star::sdbc;
94*cdf0e10cSrcweir     using namespace ::com::sun::star::beans;
95*cdf0e10cSrcweir     using namespace ::com::sun::star::lang;
96*cdf0e10cSrcweir     using namespace ::com::sun::star::container;
97*cdf0e10cSrcweir     using namespace ::dbtools;
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir     //========================================================================
100*cdf0e10cSrcweir     //= OCommonBehaviourTabPage
101*cdf0e10cSrcweir     //========================================================================
102*cdf0e10cSrcweir     DBG_NAME(OCommonBehaviourTabPage)
103*cdf0e10cSrcweir     //------------------------------------------------------------------------
104*cdf0e10cSrcweir     OCommonBehaviourTabPage::OCommonBehaviourTabPage(Window* pParent, sal_uInt16 nResId, const SfxItemSet& _rCoreAttrs,
105*cdf0e10cSrcweir         sal_uInt32 nControlFlags,bool _bFreeResource)
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir         :OGenericAdministrationPage(pParent, ModuleRes(nResId), _rCoreAttrs)
108*cdf0e10cSrcweir         ,m_pOptionsLabel(NULL)
109*cdf0e10cSrcweir         ,m_pOptions(NULL)
110*cdf0e10cSrcweir         ,m_pDataConvertFixedLine(NULL)
111*cdf0e10cSrcweir         ,m_pCharsetLabel(NULL)
112*cdf0e10cSrcweir         ,m_pCharset(NULL)
113*cdf0e10cSrcweir         ,m_pAutoFixedLine(NULL)
114*cdf0e10cSrcweir         ,m_pAutoRetrievingEnabled(NULL)
115*cdf0e10cSrcweir         ,m_pAutoIncrementLabel(NULL)
116*cdf0e10cSrcweir         ,m_pAutoIncrement(NULL)
117*cdf0e10cSrcweir         ,m_pAutoRetrievingLabel(NULL)
118*cdf0e10cSrcweir         ,m_pAutoRetrieving(NULL)
119*cdf0e10cSrcweir         ,m_nControlFlags(nControlFlags)
120*cdf0e10cSrcweir     {
121*cdf0e10cSrcweir         DBG_CTOR(OCommonBehaviourTabPage,NULL);
122*cdf0e10cSrcweir 
123*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
124*cdf0e10cSrcweir         {
125*cdf0e10cSrcweir             m_pOptionsLabel = new FixedText(this, ModuleRes(FT_OPTIONS));
126*cdf0e10cSrcweir             m_pOptions = new Edit(this, ModuleRes(ET_OPTIONS));
127*cdf0e10cSrcweir             m_pOptions->SetModifyHdl(getControlModifiedLink());
128*cdf0e10cSrcweir         }
129*cdf0e10cSrcweir 
130*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
131*cdf0e10cSrcweir         {
132*cdf0e10cSrcweir             m_pDataConvertFixedLine = new FixedLine(this, ModuleRes(FL_DATACONVERT));
133*cdf0e10cSrcweir             m_pCharsetLabel = new FixedText(this, ModuleRes(FT_CHARSET));
134*cdf0e10cSrcweir             m_pCharset = new CharSetListBox(this, ModuleRes(LB_CHARSET));
135*cdf0e10cSrcweir             m_pCharset->SetSelectHdl(getControlModifiedLink());
136*cdf0e10cSrcweir         }
137*cdf0e10cSrcweir 
138*cdf0e10cSrcweir         Window* pWindows[] = {  m_pAutoRetrievingEnabled, m_pAutoFixedLine,
139*cdf0e10cSrcweir                                 m_pAutoIncrementLabel, m_pAutoIncrement,
140*cdf0e10cSrcweir                                 m_pAutoRetrievingLabel, m_pAutoRetrieving };
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir         sal_Int32 nCount = sizeof(pWindows) / sizeof(pWindows[0]);
143*cdf0e10cSrcweir         for (sal_Int32 i=1; i < nCount; ++i)
144*cdf0e10cSrcweir         {
145*cdf0e10cSrcweir             if ( pWindows[i] )
146*cdf0e10cSrcweir             {
147*cdf0e10cSrcweir                 Window* pPrev = pWindows[i-1];
148*cdf0e10cSrcweir                 for (sal_Int32 j = i-1; pPrev == NULL && j >= 0 ; --j)
149*cdf0e10cSrcweir                 {
150*cdf0e10cSrcweir                     pPrev = pWindows[j];
151*cdf0e10cSrcweir                 }
152*cdf0e10cSrcweir                 if ( pPrev )
153*cdf0e10cSrcweir                     pWindows[i]->SetZOrder(pPrev, WINDOW_ZORDER_BEHIND);
154*cdf0e10cSrcweir             }
155*cdf0e10cSrcweir         }
156*cdf0e10cSrcweir 
157*cdf0e10cSrcweir         if ( _bFreeResource )
158*cdf0e10cSrcweir             FreeResource();
159*cdf0e10cSrcweir     }
160*cdf0e10cSrcweir 
161*cdf0e10cSrcweir     // -----------------------------------------------------------------------
162*cdf0e10cSrcweir     OCommonBehaviourTabPage::~OCommonBehaviourTabPage()
163*cdf0e10cSrcweir     {
164*cdf0e10cSrcweir         DELETEZ(m_pOptionsLabel);
165*cdf0e10cSrcweir         DELETEZ(m_pOptions);
166*cdf0e10cSrcweir 
167*cdf0e10cSrcweir         DELETEZ(m_pDataConvertFixedLine);
168*cdf0e10cSrcweir         DELETEZ(m_pCharsetLabel);
169*cdf0e10cSrcweir         DELETEZ(m_pCharset);
170*cdf0e10cSrcweir 
171*cdf0e10cSrcweir         DELETEZ(m_pAutoFixedLine);
172*cdf0e10cSrcweir         DELETEZ(m_pAutoIncrementLabel);
173*cdf0e10cSrcweir         DELETEZ(m_pAutoIncrement);
174*cdf0e10cSrcweir 
175*cdf0e10cSrcweir         DELETEZ(m_pAutoRetrievingEnabled);
176*cdf0e10cSrcweir         DELETEZ(m_pAutoRetrievingLabel);
177*cdf0e10cSrcweir         DELETEZ(m_pAutoRetrieving);
178*cdf0e10cSrcweir 
179*cdf0e10cSrcweir         DBG_DTOR(OCommonBehaviourTabPage,NULL);
180*cdf0e10cSrcweir     }
181*cdf0e10cSrcweir 
182*cdf0e10cSrcweir     // -----------------------------------------------------------------------
183*cdf0e10cSrcweir     void OCommonBehaviourTabPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
184*cdf0e10cSrcweir     {
185*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
186*cdf0e10cSrcweir         {
187*cdf0e10cSrcweir             _rControlList.push_back(new ODisableWrapper<FixedText>(m_pOptionsLabel));
188*cdf0e10cSrcweir         }
189*cdf0e10cSrcweir 
190*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
191*cdf0e10cSrcweir         {
192*cdf0e10cSrcweir             _rControlList.push_back(new ODisableWrapper<FixedLine>(m_pDataConvertFixedLine));
193*cdf0e10cSrcweir             _rControlList.push_back(new ODisableWrapper<FixedText>(m_pCharsetLabel));
194*cdf0e10cSrcweir         }
195*cdf0e10cSrcweir     }
196*cdf0e10cSrcweir     // -----------------------------------------------------------------------
197*cdf0e10cSrcweir     void OCommonBehaviourTabPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
198*cdf0e10cSrcweir     {
199*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
200*cdf0e10cSrcweir             _rControlList.push_back(new OSaveValueWrapper<Edit>(m_pOptions));
201*cdf0e10cSrcweir 
202*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
203*cdf0e10cSrcweir             _rControlList.push_back(new OSaveValueWrapper<ListBox>(m_pCharset));
204*cdf0e10cSrcweir     }
205*cdf0e10cSrcweir 
206*cdf0e10cSrcweir     // -----------------------------------------------------------------------
207*cdf0e10cSrcweir     void OCommonBehaviourTabPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
208*cdf0e10cSrcweir     {
209*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
210*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
211*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
212*cdf0e10cSrcweir 
213*cdf0e10cSrcweir         // collect the items
214*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pOptionsItem, SfxStringItem, DSID_ADDITIONALOPTIONS, sal_True);
215*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pCharsetItem, SfxStringItem, DSID_CHARSET, sal_True);
216*cdf0e10cSrcweir 
217*cdf0e10cSrcweir         // forward the values to the controls
218*cdf0e10cSrcweir         if (bValid)
219*cdf0e10cSrcweir         {
220*cdf0e10cSrcweir             if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
221*cdf0e10cSrcweir             {
222*cdf0e10cSrcweir                 m_pOptions->SetText(pOptionsItem->GetValue());
223*cdf0e10cSrcweir                 m_pOptions->ClearModifyFlag();
224*cdf0e10cSrcweir             }
225*cdf0e10cSrcweir 
226*cdf0e10cSrcweir             if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
227*cdf0e10cSrcweir             {
228*cdf0e10cSrcweir                 m_pCharset->SelectEntryByIanaName( pCharsetItem->GetValue() );
229*cdf0e10cSrcweir             }
230*cdf0e10cSrcweir         }
231*cdf0e10cSrcweir         OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue);
232*cdf0e10cSrcweir     }
233*cdf0e10cSrcweir     // -----------------------------------------------------------------------
234*cdf0e10cSrcweir     sal_Bool OCommonBehaviourTabPage::FillItemSet(SfxItemSet& _rSet)
235*cdf0e10cSrcweir     {
236*cdf0e10cSrcweir         sal_Bool bChangedSomething = sal_False;
237*cdf0e10cSrcweir 
238*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
239*cdf0e10cSrcweir         {
240*cdf0e10cSrcweir             fillString(_rSet,m_pOptions,DSID_ADDITIONALOPTIONS,bChangedSomething);
241*cdf0e10cSrcweir         }
242*cdf0e10cSrcweir 
243*cdf0e10cSrcweir         if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
244*cdf0e10cSrcweir         {
245*cdf0e10cSrcweir             if ( m_pCharset->StoreSelectedCharSet( _rSet, DSID_CHARSET ) )
246*cdf0e10cSrcweir                 bChangedSomething = sal_True;
247*cdf0e10cSrcweir         }
248*cdf0e10cSrcweir 
249*cdf0e10cSrcweir         return bChangedSomething;
250*cdf0e10cSrcweir     }
251*cdf0e10cSrcweir 
252*cdf0e10cSrcweir     //========================================================================
253*cdf0e10cSrcweir     //= ODbaseDetailsPage
254*cdf0e10cSrcweir     //========================================================================
255*cdf0e10cSrcweir     DBG_NAME(ODbaseDetailsPage)
256*cdf0e10cSrcweir     //------------------------------------------------------------------------
257*cdf0e10cSrcweir     ODbaseDetailsPage::ODbaseDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
258*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_DBASE, _rCoreAttrs, CBTP_USE_CHARSET ,false)
259*cdf0e10cSrcweir         ,m_aShowDeleted     (this, ModuleRes(CB_SHOWDELETEDROWS))
260*cdf0e10cSrcweir         ,m_aFL_1            (this, ModuleRes( FL_SEPARATOR1) )
261*cdf0e10cSrcweir         ,m_aFT_Message      (this, ModuleRes( FT_SPECIAL_MESSAGE) )
262*cdf0e10cSrcweir         ,m_aIndexes         (this, ModuleRes(PB_INDICIES))
263*cdf0e10cSrcweir     {
264*cdf0e10cSrcweir         DBG_CTOR(ODbaseDetailsPage,NULL);
265*cdf0e10cSrcweir 
266*cdf0e10cSrcweir         m_aIndexes.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked));
267*cdf0e10cSrcweir         m_aShowDeleted.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked));
268*cdf0e10cSrcweir 
269*cdf0e10cSrcweir         // correct the z-order which is mixed-up because the base class constructed some controls before we did
270*cdf0e10cSrcweir         m_pCharset->SetZOrder(&m_aShowDeleted, WINDOW_ZORDER_BEFOR);
271*cdf0e10cSrcweir 
272*cdf0e10cSrcweir         FreeResource();
273*cdf0e10cSrcweir     }
274*cdf0e10cSrcweir 
275*cdf0e10cSrcweir     // -----------------------------------------------------------------------
276*cdf0e10cSrcweir     ODbaseDetailsPage::~ODbaseDetailsPage()
277*cdf0e10cSrcweir     {
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir         DBG_DTOR(ODbaseDetailsPage,NULL);
280*cdf0e10cSrcweir     }
281*cdf0e10cSrcweir 
282*cdf0e10cSrcweir     // -----------------------------------------------------------------------
283*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateDbase( Window* pParent, const SfxItemSet& _rAttrSet )
284*cdf0e10cSrcweir     {
285*cdf0e10cSrcweir         return ( new ODbaseDetailsPage( pParent, _rAttrSet ) );
286*cdf0e10cSrcweir     }
287*cdf0e10cSrcweir 
288*cdf0e10cSrcweir     // -----------------------------------------------------------------------
289*cdf0e10cSrcweir     void ODbaseDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
290*cdf0e10cSrcweir     {
291*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
292*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aShowDeleted));
293*cdf0e10cSrcweir     }
294*cdf0e10cSrcweir     // -----------------------------------------------------------------------
295*cdf0e10cSrcweir     void ODbaseDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
296*cdf0e10cSrcweir     {
297*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
298*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1));
299*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFT_Message));
300*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<PushButton>(&m_aIndexes));
301*cdf0e10cSrcweir     }
302*cdf0e10cSrcweir     // -----------------------------------------------------------------------
303*cdf0e10cSrcweir     void ODbaseDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
304*cdf0e10cSrcweir     {
305*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
306*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
307*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
308*cdf0e10cSrcweir 
309*cdf0e10cSrcweir         // get the DSN string (needed for the index dialog)
310*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
311*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pTypesItem, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True);
312*cdf0e10cSrcweir         ::dbaccess::ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : NULL;
313*cdf0e10cSrcweir         if (pTypeCollection && pUrlItem && pUrlItem->GetValue().Len())
314*cdf0e10cSrcweir             m_sDsn = pTypeCollection->cutPrefix(pUrlItem->GetValue());
315*cdf0e10cSrcweir 
316*cdf0e10cSrcweir         // get the other relevant items
317*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pDeletedItem, SfxBoolItem, DSID_SHOWDELETEDROWS, sal_True);
318*cdf0e10cSrcweir 
319*cdf0e10cSrcweir         if ( bValid )
320*cdf0e10cSrcweir         {
321*cdf0e10cSrcweir             m_aShowDeleted.Check( pDeletedItem->GetValue() );
322*cdf0e10cSrcweir             m_aFT_Message.Show(m_aShowDeleted.IsChecked());
323*cdf0e10cSrcweir         }
324*cdf0e10cSrcweir 
325*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
326*cdf0e10cSrcweir     }
327*cdf0e10cSrcweir 
328*cdf0e10cSrcweir     // -----------------------------------------------------------------------
329*cdf0e10cSrcweir     sal_Bool ODbaseDetailsPage::FillItemSet( SfxItemSet& _rSet )
330*cdf0e10cSrcweir     {
331*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
332*cdf0e10cSrcweir 
333*cdf0e10cSrcweir         fillBool(_rSet,&m_aShowDeleted,DSID_SHOWDELETEDROWS,bChangedSomething);
334*cdf0e10cSrcweir         return bChangedSomething;
335*cdf0e10cSrcweir     }
336*cdf0e10cSrcweir 
337*cdf0e10cSrcweir     //------------------------------------------------------------------------
338*cdf0e10cSrcweir     IMPL_LINK( ODbaseDetailsPage, OnButtonClicked, Button*, pButton )
339*cdf0e10cSrcweir     {
340*cdf0e10cSrcweir         if (&m_aIndexes == pButton)
341*cdf0e10cSrcweir         {
342*cdf0e10cSrcweir             ODbaseIndexDialog aIndexDialog(this, m_sDsn);
343*cdf0e10cSrcweir             aIndexDialog.Execute();
344*cdf0e10cSrcweir         }
345*cdf0e10cSrcweir         else
346*cdf0e10cSrcweir         {
347*cdf0e10cSrcweir             m_aFT_Message.Show(m_aShowDeleted.IsChecked());
348*cdf0e10cSrcweir             // it was one of the checkboxes -> we count as modified from now on
349*cdf0e10cSrcweir             callModifiedHdl();
350*cdf0e10cSrcweir         }
351*cdf0e10cSrcweir 
352*cdf0e10cSrcweir         return 0;
353*cdf0e10cSrcweir     }
354*cdf0e10cSrcweir 
355*cdf0e10cSrcweir     //========================================================================
356*cdf0e10cSrcweir     //= OAdoDetailsPage
357*cdf0e10cSrcweir     //========================================================================
358*cdf0e10cSrcweir     DBG_NAME(OAdoDetailsPage)
359*cdf0e10cSrcweir     // -----------------------------------------------------------------------
360*cdf0e10cSrcweir     OAdoDetailsPage::OAdoDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
361*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_ADO, _rCoreAttrs, CBTP_USE_CHARSET )
362*cdf0e10cSrcweir     {
363*cdf0e10cSrcweir         DBG_CTOR(OAdoDetailsPage,NULL);
364*cdf0e10cSrcweir 
365*cdf0e10cSrcweir     }
366*cdf0e10cSrcweir 
367*cdf0e10cSrcweir     // -----------------------------------------------------------------------
368*cdf0e10cSrcweir     OAdoDetailsPage::~OAdoDetailsPage()
369*cdf0e10cSrcweir     {
370*cdf0e10cSrcweir 
371*cdf0e10cSrcweir         DBG_DTOR(OAdoDetailsPage,NULL);
372*cdf0e10cSrcweir     }
373*cdf0e10cSrcweir     // -----------------------------------------------------------------------
374*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateAdo( Window* pParent,   const SfxItemSet& _rAttrSet )
375*cdf0e10cSrcweir     {
376*cdf0e10cSrcweir         return ( new OAdoDetailsPage( pParent, _rAttrSet ) );
377*cdf0e10cSrcweir     }
378*cdf0e10cSrcweir 
379*cdf0e10cSrcweir     // -----------------------------------------------------------------------
380*cdf0e10cSrcweir     //========================================================================
381*cdf0e10cSrcweir     //= OOdbcDetailsPage
382*cdf0e10cSrcweir     //========================================================================
383*cdf0e10cSrcweir     OOdbcDetailsPage::OOdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
384*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_ODBC, _rCoreAttrs, CBTP_USE_CHARSET | CBTP_USE_OPTIONS,false)
385*cdf0e10cSrcweir         ,m_aFL_1        (this, ModuleRes(FL_SEPARATOR1))
386*cdf0e10cSrcweir         ,m_aUseCatalog  (this, ModuleRes(CB_USECATALOG))
387*cdf0e10cSrcweir     {
388*cdf0e10cSrcweir         m_aUseCatalog.SetToggleHdl(getControlModifiedLink());
389*cdf0e10cSrcweir         FreeResource();
390*cdf0e10cSrcweir 
391*cdf0e10cSrcweir         Window* pWindows[] = {  m_pCharsetLabel, m_pCharset
392*cdf0e10cSrcweir                                 ,m_pOptionsLabel,m_pOptions,&m_aUseCatalog
393*cdf0e10cSrcweir                                 };
394*cdf0e10cSrcweir 
395*cdf0e10cSrcweir         sal_Int32 nCount = sizeof(pWindows) / sizeof(pWindows[0]);
396*cdf0e10cSrcweir         for (sal_Int32 i=1; i < nCount; ++i)
397*cdf0e10cSrcweir             pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND);
398*cdf0e10cSrcweir     }
399*cdf0e10cSrcweir 
400*cdf0e10cSrcweir     // -----------------------------------------------------------------------
401*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateODBC( Window* pParent, const SfxItemSet& _rAttrSet )
402*cdf0e10cSrcweir     {
403*cdf0e10cSrcweir         return ( new OOdbcDetailsPage( pParent, _rAttrSet ) );
404*cdf0e10cSrcweir     }
405*cdf0e10cSrcweir 
406*cdf0e10cSrcweir     // -----------------------------------------------------------------------
407*cdf0e10cSrcweir     sal_Bool OOdbcDetailsPage::FillItemSet( SfxItemSet& _rSet )
408*cdf0e10cSrcweir     {
409*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
410*cdf0e10cSrcweir         fillBool(_rSet,&m_aUseCatalog,DSID_USECATALOG,bChangedSomething);
411*cdf0e10cSrcweir         return bChangedSomething;
412*cdf0e10cSrcweir     }
413*cdf0e10cSrcweir     // -----------------------------------------------------------------------
414*cdf0e10cSrcweir     void OOdbcDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
415*cdf0e10cSrcweir     {
416*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
417*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aUseCatalog));
418*cdf0e10cSrcweir     }
419*cdf0e10cSrcweir     // -----------------------------------------------------------------------
420*cdf0e10cSrcweir     void OOdbcDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
421*cdf0e10cSrcweir     {
422*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
423*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1));
424*cdf0e10cSrcweir     }
425*cdf0e10cSrcweir     // -----------------------------------------------------------------------
426*cdf0e10cSrcweir     void OOdbcDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
427*cdf0e10cSrcweir     {
428*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
429*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
430*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
431*cdf0e10cSrcweir 
432*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pUseCatalogItem, SfxBoolItem, DSID_USECATALOG, sal_True);
433*cdf0e10cSrcweir 
434*cdf0e10cSrcweir         if ( bValid )
435*cdf0e10cSrcweir             m_aUseCatalog.Check(pUseCatalogItem->GetValue());
436*cdf0e10cSrcweir 
437*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
438*cdf0e10cSrcweir     }
439*cdf0e10cSrcweir     //========================================================================
440*cdf0e10cSrcweir     //= OOdbcDetailsPage
441*cdf0e10cSrcweir     //========================================================================
442*cdf0e10cSrcweir     OUserDriverDetailsPage::OUserDriverDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
443*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_USERDRIVER, _rCoreAttrs,
444*cdf0e10cSrcweir         CBTP_USE_CHARSET | CBTP_USE_OPTIONS ,false)
445*cdf0e10cSrcweir         ,m_aFTHostname      (this, ModuleRes(FT_HOSTNAME))
446*cdf0e10cSrcweir         ,m_aEDHostname      (this, ModuleRes(ET_HOSTNAME))
447*cdf0e10cSrcweir         ,m_aPortNumber      (this, ModuleRes(FT_PORTNUMBER))
448*cdf0e10cSrcweir         ,m_aNFPortNumber    (this, ModuleRes(NF_PORTNUMBER))
449*cdf0e10cSrcweir         ,m_aUseCatalog      (this, ModuleRes(CB_USECATALOG))
450*cdf0e10cSrcweir     {
451*cdf0e10cSrcweir         m_aUseCatalog.SetToggleHdl(getControlModifiedLink());
452*cdf0e10cSrcweir         FreeResource();
453*cdf0e10cSrcweir     }
454*cdf0e10cSrcweir 
455*cdf0e10cSrcweir     // -----------------------------------------------------------------------
456*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateUser( Window* pParent, const SfxItemSet& _rAttrSet )
457*cdf0e10cSrcweir     {
458*cdf0e10cSrcweir         return ( new OUserDriverDetailsPage( pParent, _rAttrSet ) );
459*cdf0e10cSrcweir     }
460*cdf0e10cSrcweir 
461*cdf0e10cSrcweir     // -----------------------------------------------------------------------
462*cdf0e10cSrcweir     sal_Bool OUserDriverDetailsPage::FillItemSet( SfxItemSet& _rSet )
463*cdf0e10cSrcweir     {
464*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
465*cdf0e10cSrcweir 
466*cdf0e10cSrcweir         fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_PORTNUMBER,bChangedSomething);
467*cdf0e10cSrcweir         fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething);
468*cdf0e10cSrcweir         fillBool(_rSet,&m_aUseCatalog,DSID_USECATALOG,bChangedSomething);
469*cdf0e10cSrcweir 
470*cdf0e10cSrcweir         return bChangedSomething;
471*cdf0e10cSrcweir     }
472*cdf0e10cSrcweir     // -----------------------------------------------------------------------
473*cdf0e10cSrcweir     void OUserDriverDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
474*cdf0e10cSrcweir     {
475*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
476*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname));
477*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aUseCatalog));
478*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber));
479*cdf0e10cSrcweir     }
480*cdf0e10cSrcweir     // -----------------------------------------------------------------------
481*cdf0e10cSrcweir     void OUserDriverDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
482*cdf0e10cSrcweir     {
483*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
484*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname));
485*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber));
486*cdf0e10cSrcweir     }
487*cdf0e10cSrcweir     // -----------------------------------------------------------------------
488*cdf0e10cSrcweir     void OUserDriverDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
489*cdf0e10cSrcweir     {
490*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
491*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
492*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
493*cdf0e10cSrcweir 
494*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pUseCatalogItem, SfxBoolItem, DSID_USECATALOG, sal_True);
495*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True);
496*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_PORTNUMBER, sal_True);
497*cdf0e10cSrcweir 
498*cdf0e10cSrcweir         if ( bValid )
499*cdf0e10cSrcweir         {
500*cdf0e10cSrcweir             m_aEDHostname.SetText(pHostName->GetValue());
501*cdf0e10cSrcweir             m_aEDHostname.ClearModifyFlag();
502*cdf0e10cSrcweir 
503*cdf0e10cSrcweir             m_aNFPortNumber.SetValue(pPortNumber->GetValue());
504*cdf0e10cSrcweir             m_aNFPortNumber.ClearModifyFlag();
505*cdf0e10cSrcweir 
506*cdf0e10cSrcweir             m_aUseCatalog.Check(pUseCatalogItem->GetValue());
507*cdf0e10cSrcweir         }
508*cdf0e10cSrcweir 
509*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
510*cdf0e10cSrcweir     }
511*cdf0e10cSrcweir     //========================================================================
512*cdf0e10cSrcweir     //= OMySQLODBCDetailsPage
513*cdf0e10cSrcweir     //========================================================================
514*cdf0e10cSrcweir     OMySQLODBCDetailsPage::OMySQLODBCDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
515*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_MYSQL_ODBC, _rCoreAttrs, CBTP_USE_CHARSET )
516*cdf0e10cSrcweir     {
517*cdf0e10cSrcweir     }
518*cdf0e10cSrcweir 
519*cdf0e10cSrcweir     // -----------------------------------------------------------------------
520*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateMySQLODBC( Window* pParent, const SfxItemSet& _rAttrSet )
521*cdf0e10cSrcweir     {
522*cdf0e10cSrcweir         return ( new OMySQLODBCDetailsPage( pParent, _rAttrSet ) );
523*cdf0e10cSrcweir     }
524*cdf0e10cSrcweir 
525*cdf0e10cSrcweir     //========================================================================
526*cdf0e10cSrcweir     //= OMySQLJDBCDetailsPage
527*cdf0e10cSrcweir     //========================================================================
528*cdf0e10cSrcweir     OGeneralSpecialJDBCDetailsPage::OGeneralSpecialJDBCDetailsPage( Window* pParent,sal_uInt16 _nResId, const SfxItemSet& _rCoreAttrs ,sal_uInt16 _nPortId)
529*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, _nResId, _rCoreAttrs, CBTP_USE_CHARSET ,false)
530*cdf0e10cSrcweir         ,m_aFL_1            (this, ModuleRes( FL_SEPARATOR1) )
531*cdf0e10cSrcweir         ,m_aFTHostname      (this, ModuleRes(FT_HOSTNAME))
532*cdf0e10cSrcweir         ,m_aEDHostname      (this, ModuleRes(ET_HOSTNAME))
533*cdf0e10cSrcweir         ,m_aPortNumber      (this, ModuleRes(FT_PORTNUMBER))
534*cdf0e10cSrcweir         ,m_aNFPortNumber    (this, ModuleRes(NF_PORTNUMBER))
535*cdf0e10cSrcweir         ,m_aFTSocket        (this, ModuleRes(FT_SOCKET))
536*cdf0e10cSrcweir         ,m_aEDSocket        (this, ModuleRes(ET_SOCKET))
537*cdf0e10cSrcweir         ,m_aFTDriverClass   (this, ModuleRes(FT_JDBCDRIVERCLASS))
538*cdf0e10cSrcweir         ,m_aEDDriverClass   (this, ModuleRes(ET_JDBCDRIVERCLASS))
539*cdf0e10cSrcweir         ,m_aTestJavaDriver  (this, ModuleRes(PB_TESTDRIVERCLASS))
540*cdf0e10cSrcweir         ,m_nPortId(_nPortId)
541*cdf0e10cSrcweir         ,m_bUseClass(true)
542*cdf0e10cSrcweir     {
543*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rCoreAttrs, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
544*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rCoreAttrs, pTypesItem, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True);
545*cdf0e10cSrcweir         ::dbaccess::ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : NULL;
546*cdf0e10cSrcweir         if (pTypeCollection && pUrlItem && pUrlItem->GetValue().Len() )
547*cdf0e10cSrcweir         {
548*cdf0e10cSrcweir             m_sDefaultJdbcDriverName = pTypeCollection->getJavaDriverClass(pUrlItem->GetValue());
549*cdf0e10cSrcweir         }
550*cdf0e10cSrcweir         if ( m_sDefaultJdbcDriverName.Len() )
551*cdf0e10cSrcweir         {
552*cdf0e10cSrcweir             m_aEDDriverClass.SetModifyHdl(getControlModifiedLink());
553*cdf0e10cSrcweir             m_aEDDriverClass.SetModifyHdl(LINK(this, OGeneralSpecialJDBCDetailsPage, OnEditModified));
554*cdf0e10cSrcweir             m_aTestJavaDriver.SetClickHdl(LINK(this,OGeneralSpecialJDBCDetailsPage,OnTestJavaClickHdl));
555*cdf0e10cSrcweir         }
556*cdf0e10cSrcweir         else
557*cdf0e10cSrcweir         {
558*cdf0e10cSrcweir             m_bUseClass = false;
559*cdf0e10cSrcweir             m_aFTDriverClass.Show(sal_False);
560*cdf0e10cSrcweir             m_aEDDriverClass.Show(sal_False);
561*cdf0e10cSrcweir             m_aTestJavaDriver.Show(sal_False);
562*cdf0e10cSrcweir         }
563*cdf0e10cSrcweir 
564*cdf0e10cSrcweir         m_aFTSocket.Show(PAGE_MYSQL_JDBC == _nResId && !m_bUseClass);
565*cdf0e10cSrcweir         m_aEDSocket.Show(PAGE_MYSQL_JDBC == _nResId && !m_bUseClass);
566*cdf0e10cSrcweir 
567*cdf0e10cSrcweir         m_aEDHostname.SetModifyHdl(getControlModifiedLink());
568*cdf0e10cSrcweir         m_aNFPortNumber.SetModifyHdl(getControlModifiedLink());
569*cdf0e10cSrcweir         m_aEDSocket.SetModifyHdl(getControlModifiedLink());
570*cdf0e10cSrcweir 
571*cdf0e10cSrcweir         Window* pWindows[] = {  &m_aFTHostname,&m_aEDHostname,
572*cdf0e10cSrcweir                                 &m_aPortNumber,&m_aNFPortNumber,&m_aFTSocket,&m_aEDSocket,
573*cdf0e10cSrcweir                                 &m_aFTDriverClass, &m_aEDDriverClass,&m_aTestJavaDriver,
574*cdf0e10cSrcweir                                 m_pCharsetLabel, m_pCharset};
575*cdf0e10cSrcweir 
576*cdf0e10cSrcweir         sal_Int32 nCount = sizeof(pWindows) / sizeof(pWindows[0]);
577*cdf0e10cSrcweir         for (sal_Int32 i=1; i < nCount; ++i)
578*cdf0e10cSrcweir             pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND);
579*cdf0e10cSrcweir 
580*cdf0e10cSrcweir         FreeResource();
581*cdf0e10cSrcweir     }
582*cdf0e10cSrcweir 
583*cdf0e10cSrcweir     // -----------------------------------------------------------------------
584*cdf0e10cSrcweir     void OGeneralSpecialJDBCDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
585*cdf0e10cSrcweir     {
586*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
587*cdf0e10cSrcweir         if ( m_bUseClass )
588*cdf0e10cSrcweir             _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDDriverClass));
589*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname));
590*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber));
591*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDSocket));
592*cdf0e10cSrcweir     }
593*cdf0e10cSrcweir     // -----------------------------------------------------------------------
594*cdf0e10cSrcweir     void OGeneralSpecialJDBCDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
595*cdf0e10cSrcweir     {
596*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
597*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname));
598*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber));
599*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTSocket));
600*cdf0e10cSrcweir         if ( m_bUseClass )
601*cdf0e10cSrcweir             _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTDriverClass));
602*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1));
603*cdf0e10cSrcweir     }
604*cdf0e10cSrcweir 
605*cdf0e10cSrcweir     // -----------------------------------------------------------------------
606*cdf0e10cSrcweir     sal_Bool OGeneralSpecialJDBCDetailsPage::FillItemSet( SfxItemSet& _rSet )
607*cdf0e10cSrcweir     {
608*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
609*cdf0e10cSrcweir         if ( m_bUseClass )
610*cdf0e10cSrcweir             fillString(_rSet,&m_aEDDriverClass,DSID_JDBCDRIVERCLASS,bChangedSomething);
611*cdf0e10cSrcweir         fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething);
612*cdf0e10cSrcweir         fillString(_rSet,&m_aEDSocket,DSID_CONN_SOCKET,bChangedSomething);
613*cdf0e10cSrcweir         fillInt32(_rSet,&m_aNFPortNumber,m_nPortId,bChangedSomething );
614*cdf0e10cSrcweir 
615*cdf0e10cSrcweir         return bChangedSomething;
616*cdf0e10cSrcweir     }
617*cdf0e10cSrcweir     // -----------------------------------------------------------------------
618*cdf0e10cSrcweir     void OGeneralSpecialJDBCDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
619*cdf0e10cSrcweir     {
620*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
621*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
622*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
623*cdf0e10cSrcweir 
624*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True);
625*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True);
626*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, m_nPortId, sal_True);
627*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pSocket, SfxStringItem, DSID_CONN_SOCKET, sal_True);
628*cdf0e10cSrcweir 
629*cdf0e10cSrcweir         if ( bValid )
630*cdf0e10cSrcweir         {
631*cdf0e10cSrcweir             if ( m_bUseClass )
632*cdf0e10cSrcweir             {
633*cdf0e10cSrcweir                 m_aEDDriverClass.SetText(pDrvItem->GetValue());
634*cdf0e10cSrcweir                 m_aEDDriverClass.ClearModifyFlag();
635*cdf0e10cSrcweir             }
636*cdf0e10cSrcweir 
637*cdf0e10cSrcweir             m_aEDHostname.SetText(pHostName->GetValue());
638*cdf0e10cSrcweir             m_aEDHostname.ClearModifyFlag();
639*cdf0e10cSrcweir 
640*cdf0e10cSrcweir             m_aNFPortNumber.SetValue(pPortNumber->GetValue());
641*cdf0e10cSrcweir             m_aNFPortNumber.ClearModifyFlag();
642*cdf0e10cSrcweir 
643*cdf0e10cSrcweir             m_aEDSocket.SetText(pSocket->GetValue());
644*cdf0e10cSrcweir             m_aEDSocket.ClearModifyFlag();
645*cdf0e10cSrcweir         }
646*cdf0e10cSrcweir 
647*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
648*cdf0e10cSrcweir 
649*cdf0e10cSrcweir         // to get the correcxt value when saveValue was called by base class
650*cdf0e10cSrcweir         if ( m_bUseClass && !m_aEDDriverClass.GetText().Len() )
651*cdf0e10cSrcweir         {
652*cdf0e10cSrcweir             m_aEDDriverClass.SetText(m_sDefaultJdbcDriverName);
653*cdf0e10cSrcweir             m_aEDDriverClass.SetModifyFlag();
654*cdf0e10cSrcweir         }
655*cdf0e10cSrcweir     }
656*cdf0e10cSrcweir     // -----------------------------------------------------------------------
657*cdf0e10cSrcweir     IMPL_LINK(OGeneralSpecialJDBCDetailsPage, OnTestJavaClickHdl, PushButton*, /*_pButton*/)
658*cdf0e10cSrcweir     {
659*cdf0e10cSrcweir         OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
660*cdf0e10cSrcweir         OSL_ENSURE(m_bUseClass,"Who called me?");
661*cdf0e10cSrcweir 
662*cdf0e10cSrcweir         sal_Bool bSuccess = sal_False;
663*cdf0e10cSrcweir         try
664*cdf0e10cSrcweir         {
665*cdf0e10cSrcweir             if ( m_aEDDriverClass.GetText().Len() )
666*cdf0e10cSrcweir             {
667*cdf0e10cSrcweir // TODO chage jvmaccess
668*cdf0e10cSrcweir                 ::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM(m_pAdminDialog->getORB());
669*cdf0e10cSrcweir                 bSuccess = ::connectivity::existsJavaClassByName(xJVM,m_aEDDriverClass.GetText());
670*cdf0e10cSrcweir             }
671*cdf0e10cSrcweir         }
672*cdf0e10cSrcweir         catch(Exception&)
673*cdf0e10cSrcweir         {
674*cdf0e10cSrcweir         }
675*cdf0e10cSrcweir 
676*cdf0e10cSrcweir         sal_uInt16 nMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
677*cdf0e10cSrcweir         OSQLMessageBox aMsg( this, String( ModuleRes( nMessage ) ), String() );
678*cdf0e10cSrcweir         aMsg.Execute();
679*cdf0e10cSrcweir         return 0L;
680*cdf0e10cSrcweir     }
681*cdf0e10cSrcweir     // -----------------------------------------------------------------------
682*cdf0e10cSrcweir     IMPL_LINK(OGeneralSpecialJDBCDetailsPage, OnEditModified, Edit*, _pEdit)
683*cdf0e10cSrcweir     {
684*cdf0e10cSrcweir         if ( m_bUseClass && _pEdit == &m_aEDDriverClass )
685*cdf0e10cSrcweir             m_aTestJavaDriver.Enable( m_aEDDriverClass.GetText().Len() != 0 );
686*cdf0e10cSrcweir 
687*cdf0e10cSrcweir         // tell the listener we were modified
688*cdf0e10cSrcweir         callModifiedHdl();
689*cdf0e10cSrcweir         return 0L;
690*cdf0e10cSrcweir     }
691*cdf0e10cSrcweir 
692*cdf0e10cSrcweir     //========================================================================
693*cdf0e10cSrcweir     //= MySQLNativePage
694*cdf0e10cSrcweir     //========================================================================
695*cdf0e10cSrcweir     MySQLNativePage::MySQLNativePage( Window* pParent, const SfxItemSet& _rCoreAttrs )
696*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_MYSQL_NATIVE, _rCoreAttrs, CBTP_USE_CHARSET, false )
697*cdf0e10cSrcweir         ,m_aSeparator1          ( this, ModuleRes( FL_SEPARATOR1) )
698*cdf0e10cSrcweir         ,m_aMySQLSettings       ( *this, getControlModifiedLink() )
699*cdf0e10cSrcweir         ,m_aSeparator2          ( this, ModuleRes(FL_SEPARATOR2))
700*cdf0e10cSrcweir         ,m_aUserNameLabel       ( this, ModuleRes(FT_USERNAME))
701*cdf0e10cSrcweir         ,m_aUserName            ( this, ModuleRes(ET_USERNAME))
702*cdf0e10cSrcweir         ,m_aPasswordRequired    ( this, ModuleRes(CB_PASSWORD_REQUIRED))
703*cdf0e10cSrcweir     {
704*cdf0e10cSrcweir         m_aUserName.SetModifyHdl(getControlModifiedLink());
705*cdf0e10cSrcweir 
706*cdf0e10cSrcweir         Window* pWindows[] = {  &m_aMySQLSettings, &m_aSeparator2, &m_aUserNameLabel, &m_aUserName,
707*cdf0e10cSrcweir                                 &m_aPasswordRequired, m_pCharsetLabel, m_pCharset};
708*cdf0e10cSrcweir         sal_Int32 nCount = sizeof(pWindows) / sizeof(pWindows[0]);
709*cdf0e10cSrcweir         for (sal_Int32 i=1; i < nCount; ++i)
710*cdf0e10cSrcweir             pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND);
711*cdf0e10cSrcweir 
712*cdf0e10cSrcweir         LayoutHelper::positionBelow( m_aSeparator1, m_aMySQLSettings, RelatedControls, 3 );
713*cdf0e10cSrcweir         m_aMySQLSettings.Show();
714*cdf0e10cSrcweir 
715*cdf0e10cSrcweir         FreeResource();
716*cdf0e10cSrcweir     }
717*cdf0e10cSrcweir 
718*cdf0e10cSrcweir     // -----------------------------------------------------------------------
719*cdf0e10cSrcweir     void MySQLNativePage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
720*cdf0e10cSrcweir     {
721*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls( _rControlList );
722*cdf0e10cSrcweir         m_aMySQLSettings.fillControls( _rControlList );
723*cdf0e10cSrcweir 
724*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aUserName));
725*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aPasswordRequired));
726*cdf0e10cSrcweir     }
727*cdf0e10cSrcweir     // -----------------------------------------------------------------------
728*cdf0e10cSrcweir     void MySQLNativePage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
729*cdf0e10cSrcweir     {
730*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows( _rControlList );
731*cdf0e10cSrcweir         m_aMySQLSettings.fillWindows( _rControlList);
732*cdf0e10cSrcweir 
733*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aSeparator1));
734*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aSeparator2));
735*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aUserNameLabel));
736*cdf0e10cSrcweir     }
737*cdf0e10cSrcweir 
738*cdf0e10cSrcweir     // -----------------------------------------------------------------------
739*cdf0e10cSrcweir     sal_Bool MySQLNativePage::FillItemSet( SfxItemSet& _rSet )
740*cdf0e10cSrcweir     {
741*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet( _rSet );
742*cdf0e10cSrcweir 
743*cdf0e10cSrcweir         bChangedSomething |= m_aMySQLSettings.FillItemSet( _rSet );
744*cdf0e10cSrcweir 
745*cdf0e10cSrcweir         if ( m_aUserName.GetText() != m_aUserName.GetSavedValue() )
746*cdf0e10cSrcweir         {
747*cdf0e10cSrcweir             _rSet.Put( SfxStringItem( DSID_USER, m_aUserName.GetText() ) );
748*cdf0e10cSrcweir             _rSet.Put( SfxStringItem( DSID_PASSWORD, String()));
749*cdf0e10cSrcweir             bChangedSomething = sal_True;
750*cdf0e10cSrcweir         }
751*cdf0e10cSrcweir         fillBool(_rSet,&m_aPasswordRequired,DSID_PASSWORDREQUIRED,bChangedSomething);
752*cdf0e10cSrcweir 
753*cdf0e10cSrcweir         return bChangedSomething;
754*cdf0e10cSrcweir     }
755*cdf0e10cSrcweir     // -----------------------------------------------------------------------
756*cdf0e10cSrcweir     void MySQLNativePage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
757*cdf0e10cSrcweir     {
758*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
759*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
760*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
761*cdf0e10cSrcweir 
762*cdf0e10cSrcweir         m_aMySQLSettings.implInitControls( _rSet );
763*cdf0e10cSrcweir 
764*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pUidItem, SfxStringItem, DSID_USER, sal_True);
765*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pAllowEmptyPwd, SfxBoolItem, DSID_PASSWORDREQUIRED, sal_True);
766*cdf0e10cSrcweir 
767*cdf0e10cSrcweir         if ( bValid )
768*cdf0e10cSrcweir         {
769*cdf0e10cSrcweir             m_aUserName.SetText(pUidItem->GetValue());
770*cdf0e10cSrcweir             m_aUserName.ClearModifyFlag();
771*cdf0e10cSrcweir             m_aPasswordRequired.Check(pAllowEmptyPwd->GetValue());
772*cdf0e10cSrcweir         }
773*cdf0e10cSrcweir 
774*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
775*cdf0e10cSrcweir     }
776*cdf0e10cSrcweir 
777*cdf0e10cSrcweir     // -----------------------------------------------------------------------
778*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateMySQLJDBC( Window* pParent, const SfxItemSet& _rAttrSet )
779*cdf0e10cSrcweir     {
780*cdf0e10cSrcweir         return ( new OGeneralSpecialJDBCDetailsPage( pParent,PAGE_MYSQL_JDBC, _rAttrSet,DSID_MYSQL_PORTNUMBER ) );
781*cdf0e10cSrcweir     }
782*cdf0e10cSrcweir     // -----------------------------------------------------------------------
783*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateMySQLNATIVE( Window* pParent, const SfxItemSet& _rAttrSet )
784*cdf0e10cSrcweir     {
785*cdf0e10cSrcweir         return ( new MySQLNativePage( pParent, _rAttrSet ) );
786*cdf0e10cSrcweir     }
787*cdf0e10cSrcweir 
788*cdf0e10cSrcweir     // -----------------------------------------------------------------------
789*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateOracleJDBC( Window* pParent, const SfxItemSet& _rAttrSet )
790*cdf0e10cSrcweir     {
791*cdf0e10cSrcweir         return ( new OGeneralSpecialJDBCDetailsPage( pParent,PAGE_ORACLE_JDBC, _rAttrSet,DSID_ORACLE_PORTNUMBER) );
792*cdf0e10cSrcweir     }
793*cdf0e10cSrcweir 
794*cdf0e10cSrcweir 
795*cdf0e10cSrcweir     //========================================================================
796*cdf0e10cSrcweir     //= OAdabasDetailsPage
797*cdf0e10cSrcweir     //========================================================================
798*cdf0e10cSrcweir     OAdabasDetailsPage::OAdabasDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
799*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_ADABAS, _rCoreAttrs, CBTP_USE_CHARSET ,false)
800*cdf0e10cSrcweir         ,m_aFTHostname      (this, ModuleRes(FT_HOSTNAME))
801*cdf0e10cSrcweir         ,m_aEDHostname      (this, ModuleRes(ET_HOSTNAME))
802*cdf0e10cSrcweir         ,m_aFL_1            (this, ModuleRes( FL_SEPARATOR1) )
803*cdf0e10cSrcweir         ,m_FT_CACHE_SIZE(       this, ModuleRes( FT_CACHE_SIZE      ) )
804*cdf0e10cSrcweir         ,m_NF_CACHE_SIZE(       this, ModuleRes( NF_CACHE_SIZE      ) )
805*cdf0e10cSrcweir         ,m_FT_DATA_INCREMENT(   this, ModuleRes( FT_DATA_INCREMENT  ) )
806*cdf0e10cSrcweir         ,m_NF_DATA_INCREMENT(   this, ModuleRes( NF_DATA_INCREMENT  ) )
807*cdf0e10cSrcweir         ,m_aFL_2(               this, ModuleRes( FL_SEPARATOR2      ) )
808*cdf0e10cSrcweir         ,m_FT_CTRLUSERNAME(     this, ModuleRes( FT_CTRLUSERNAME    ) )
809*cdf0e10cSrcweir         ,m_ET_CTRLUSERNAME(     this, ModuleRes( ET_CTRLUSERNAME    ) )
810*cdf0e10cSrcweir         ,m_FT_CTRLPASSWORD(     this, ModuleRes( FT_CTRLPASSWORD    ) )
811*cdf0e10cSrcweir         ,m_ET_CTRLPASSWORD(     this, ModuleRes( ET_CTRLPASSWORD    ) )
812*cdf0e10cSrcweir         ,m_CB_SHUTDB(           this, ModuleRes( CB_SHUTDB          ) )
813*cdf0e10cSrcweir         ,m_PB_STAT(             this, ModuleRes( PB_STAT            ) )
814*cdf0e10cSrcweir     {
815*cdf0e10cSrcweir         m_aEDHostname.SetModifyHdl(getControlModifiedLink());
816*cdf0e10cSrcweir 
817*cdf0e10cSrcweir         FreeResource();
818*cdf0e10cSrcweir 
819*cdf0e10cSrcweir         m_PB_STAT.SetClickHdl(              LINK(this,OAdabasDetailsPage,PBClickHdl));
820*cdf0e10cSrcweir 
821*cdf0e10cSrcweir         m_CB_SHUTDB.SetClickHdl(            LINK(this,OAdabasDetailsPage,AttributesChangedHdl));
822*cdf0e10cSrcweir         m_NF_CACHE_SIZE.SetModifyHdl(       LINK(this,OAdabasDetailsPage,AttributesChangedHdl));
823*cdf0e10cSrcweir         m_NF_DATA_INCREMENT.SetModifyHdl(   LINK(this,OAdabasDetailsPage,AttributesChangedHdl));
824*cdf0e10cSrcweir         m_ET_CTRLUSERNAME.SetModifyHdl(     LINK(this,OAdabasDetailsPage,AttributesChangedHdl));
825*cdf0e10cSrcweir         m_ET_CTRLPASSWORD.SetModifyHdl(     LINK(this,OAdabasDetailsPage,AttributesChangedHdl));
826*cdf0e10cSrcweir 
827*cdf0e10cSrcweir         m_ET_CTRLUSERNAME.SetLoseFocusHdl(  LINK(this,OAdabasDetailsPage,LoseFocusHdl));
828*cdf0e10cSrcweir         m_ET_CTRLPASSWORD.SetLoseFocusHdl(  LINK(this,OAdabasDetailsPage,LoseFocusHdl));
829*cdf0e10cSrcweir 
830*cdf0e10cSrcweir         m_NF_DATA_INCREMENT.SetMin(20);
831*cdf0e10cSrcweir         m_NF_DATA_INCREMENT.SetMax(LONG_MAX);
832*cdf0e10cSrcweir         m_NF_DATA_INCREMENT.SetValue(20);
833*cdf0e10cSrcweir         m_NF_DATA_INCREMENT.SetDecimalDigits(0);
834*cdf0e10cSrcweir 
835*cdf0e10cSrcweir         m_NF_CACHE_SIZE.SetMin(4);
836*cdf0e10cSrcweir         m_NF_CACHE_SIZE.SetMax(LONG_MAX);
837*cdf0e10cSrcweir         m_NF_CACHE_SIZE.SetValue(4);
838*cdf0e10cSrcweir         m_NF_CACHE_SIZE.SetDecimalDigits(0);
839*cdf0e10cSrcweir 
840*cdf0e10cSrcweir         Window* pWindows[] = {  &m_aFTHostname,&m_aEDHostname
841*cdf0e10cSrcweir                                 ,&m_FT_CACHE_SIZE,&m_NF_CACHE_SIZE
842*cdf0e10cSrcweir                                 ,&m_FT_DATA_INCREMENT,&m_NF_DATA_INCREMENT
843*cdf0e10cSrcweir                                 ,&m_FT_CTRLUSERNAME,&m_ET_CTRLUSERNAME
844*cdf0e10cSrcweir                                 ,&m_FT_CTRLPASSWORD,&m_ET_CTRLPASSWORD
845*cdf0e10cSrcweir                                 ,&m_CB_SHUTDB
846*cdf0e10cSrcweir                                 ,m_pCharsetLabel, m_pCharset,&m_PB_STAT};
847*cdf0e10cSrcweir 
848*cdf0e10cSrcweir         sal_Int32 nCount = sizeof(pWindows) / sizeof(pWindows[0]);
849*cdf0e10cSrcweir         for (sal_Int32 i=1; i < nCount; ++i)
850*cdf0e10cSrcweir             pWindows[i]->SetZOrder(pWindows[i-1], WINDOW_ZORDER_BEHIND);
851*cdf0e10cSrcweir     }
852*cdf0e10cSrcweir 
853*cdf0e10cSrcweir     // -----------------------------------------------------------------------
854*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateAdabas( Window* pParent, const SfxItemSet& _rAttrSet )
855*cdf0e10cSrcweir     {
856*cdf0e10cSrcweir         return ( new OAdabasDetailsPage( pParent, _rAttrSet ) );
857*cdf0e10cSrcweir     }
858*cdf0e10cSrcweir 
859*cdf0e10cSrcweir     // -----------------------------------------------------------------------
860*cdf0e10cSrcweir     void OAdabasDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
861*cdf0e10cSrcweir     {
862*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
863*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname));
864*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_NF_CACHE_SIZE));
865*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_NF_DATA_INCREMENT));
866*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_ET_CTRLUSERNAME));
867*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_ET_CTRLPASSWORD));
868*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_CB_SHUTDB));
869*cdf0e10cSrcweir     }
870*cdf0e10cSrcweir     // -----------------------------------------------------------------------
871*cdf0e10cSrcweir     void OAdabasDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
872*cdf0e10cSrcweir     {
873*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
874*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname));
875*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1));
876*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_CACHE_SIZE));
877*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_DATA_INCREMENT));
878*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_2));
879*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_CTRLUSERNAME));
880*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_FT_CTRLPASSWORD));
881*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<PushButton>(&m_PB_STAT));
882*cdf0e10cSrcweir     }
883*cdf0e10cSrcweir     // -----------------------------------------------------------------------
884*cdf0e10cSrcweir     void OAdabasDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
885*cdf0e10cSrcweir     {
886*cdf0e10cSrcweir         // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
887*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
888*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
889*cdf0e10cSrcweir 
890*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True);
891*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pCtrlUserItem, SfxStringItem, DSID_CONN_CTRLUSER, sal_True);
892*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pCtrlPwdItem, SfxStringItem, DSID_CONN_CTRLPWD, sal_True);
893*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pShutItem, SfxBoolItem, DSID_CONN_SHUTSERVICE, sal_True);
894*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pIncItem, SfxInt32Item, DSID_CONN_DATAINC, sal_True);
895*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pCacheItem, SfxInt32Item, DSID_CONN_CACHESIZE, sal_True);
896*cdf0e10cSrcweir         if ( bValid )
897*cdf0e10cSrcweir         {
898*cdf0e10cSrcweir             m_aEDHostname.SetText(pHostName->GetValue());
899*cdf0e10cSrcweir             m_aEDHostname.ClearModifyFlag();
900*cdf0e10cSrcweir             m_CB_SHUTDB.Check( pShutItem->GetValue() );
901*cdf0e10cSrcweir             m_NF_DATA_INCREMENT.SetValue( pIncItem->GetValue() );
902*cdf0e10cSrcweir             m_NF_CACHE_SIZE.SetValue( pCacheItem->GetValue() );
903*cdf0e10cSrcweir             m_ET_CTRLUSERNAME.SetText(pCtrlUserItem->GetValue());
904*cdf0e10cSrcweir             m_ET_CTRLPASSWORD.SetText(pCtrlPwdItem->GetValue());
905*cdf0e10cSrcweir             m_CB_SHUTDB.Enable(m_ET_CTRLUSERNAME.GetText().Len() && m_ET_CTRLPASSWORD.GetText().Len());
906*cdf0e10cSrcweir         }
907*cdf0e10cSrcweir 
908*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
909*cdf0e10cSrcweir     }
910*cdf0e10cSrcweir     // -----------------------------------------------------------------------
911*cdf0e10cSrcweir     sal_Bool OAdabasDetailsPage::FillItemSet( SfxItemSet& _rSet )
912*cdf0e10cSrcweir     {
913*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
914*cdf0e10cSrcweir 
915*cdf0e10cSrcweir         fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething);
916*cdf0e10cSrcweir         fillBool(_rSet,&m_CB_SHUTDB,DSID_CONN_SHUTSERVICE,bChangedSomething);
917*cdf0e10cSrcweir         fillInt32(_rSet,&m_NF_DATA_INCREMENT,DSID_CONN_DATAINC,bChangedSomething );
918*cdf0e10cSrcweir         fillInt32(_rSet,&m_NF_CACHE_SIZE,DSID_CONN_CACHESIZE,bChangedSomething );
919*cdf0e10cSrcweir         fillString(_rSet,&m_ET_CTRLUSERNAME,DSID_CONN_CTRLUSER,bChangedSomething );
920*cdf0e10cSrcweir         fillString(_rSet,&m_ET_CTRLPASSWORD,DSID_CONN_CTRLPWD,bChangedSomething );
921*cdf0e10cSrcweir 
922*cdf0e10cSrcweir         return bChangedSomething;
923*cdf0e10cSrcweir     }
924*cdf0e10cSrcweir     //------------------------------------------------------------------------
925*cdf0e10cSrcweir     IMPL_LINK( OAdabasDetailsPage, AttributesChangedHdl, void *, EMPTYARG )
926*cdf0e10cSrcweir     {
927*cdf0e10cSrcweir         m_CB_SHUTDB.Enable(m_ET_CTRLUSERNAME.GetText().Len() && m_ET_CTRLPASSWORD.GetText().Len());
928*cdf0e10cSrcweir         bAttrsChanged = sal_True;
929*cdf0e10cSrcweir         callModifiedHdl();
930*cdf0e10cSrcweir         return 0;
931*cdf0e10cSrcweir     }
932*cdf0e10cSrcweir     //------------------------------------------------------------------------
933*cdf0e10cSrcweir     IMPL_LINK( OAdabasDetailsPage, LoseFocusHdl, Edit *, /*pEdit*/ )
934*cdf0e10cSrcweir     {
935*cdf0e10cSrcweir         m_CB_SHUTDB.Enable(m_ET_CTRLUSERNAME.GetText().Len() && m_ET_CTRLPASSWORD.GetText().Len());
936*cdf0e10cSrcweir         return 0;
937*cdf0e10cSrcweir     }
938*cdf0e10cSrcweir     //------------------------------------------------------------------------
939*cdf0e10cSrcweir     IMPL_LINK( OAdabasDetailsPage, PBClickHdl, Button *, /*pButton*/ )
940*cdf0e10cSrcweir     {
941*cdf0e10cSrcweir         OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
942*cdf0e10cSrcweir         if ( m_pAdminDialog )
943*cdf0e10cSrcweir         {
944*cdf0e10cSrcweir             m_pAdminDialog->saveDatasource();
945*cdf0e10cSrcweir             try
946*cdf0e10cSrcweir             {
947*cdf0e10cSrcweir                 Reference< XConnection > xConnection = m_pAdminDialog->createConnection().first;
948*cdf0e10cSrcweir                 if ( xConnection.is() )
949*cdf0e10cSrcweir                 {
950*cdf0e10cSrcweir                     OAdabasStatistics aDlg(this,m_sUser,xConnection,m_pAdminDialog->getORB());
951*cdf0e10cSrcweir                     aDlg.Execute();
952*cdf0e10cSrcweir                     ::comphelper::disposeComponent(xConnection);
953*cdf0e10cSrcweir                 }
954*cdf0e10cSrcweir             }
955*cdf0e10cSrcweir             catch(Exception&)
956*cdf0e10cSrcweir             {
957*cdf0e10cSrcweir             }
958*cdf0e10cSrcweir         }
959*cdf0e10cSrcweir 
960*cdf0e10cSrcweir         return 0;
961*cdf0e10cSrcweir     }
962*cdf0e10cSrcweir 
963*cdf0e10cSrcweir 
964*cdf0e10cSrcweir     //========================================================================
965*cdf0e10cSrcweir     //= OLDAPDetailsPage
966*cdf0e10cSrcweir     //========================================================================
967*cdf0e10cSrcweir     OLDAPDetailsPage::OLDAPDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
968*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_LDAP, _rCoreAttrs,0,false)
969*cdf0e10cSrcweir         ,m_aFL_1            (this, ModuleRes( FL_SEPARATOR1) )
970*cdf0e10cSrcweir         ,m_aBaseDN          (this, ModuleRes(FT_BASEDN))
971*cdf0e10cSrcweir         ,m_aETBaseDN        (this, ModuleRes(ET_BASEDN))
972*cdf0e10cSrcweir         ,m_aCBUseSSL        (this, ModuleRes(CB_USESSL))
973*cdf0e10cSrcweir         ,m_aPortNumber      (this, ModuleRes(FT_PORTNUMBER))
974*cdf0e10cSrcweir         ,m_aNFPortNumber    (this, ModuleRes(NF_PORTNUMBER))
975*cdf0e10cSrcweir         ,m_aFTRowCount      (this, ModuleRes(FT_LDAPROWCOUNT))
976*cdf0e10cSrcweir         ,m_aNFRowCount      (this, ModuleRes(NF_LDAPROWCOUNT))
977*cdf0e10cSrcweir     {
978*cdf0e10cSrcweir         m_aETBaseDN.SetModifyHdl(getControlModifiedLink());
979*cdf0e10cSrcweir         m_aCBUseSSL.SetToggleHdl(getControlModifiedLink());
980*cdf0e10cSrcweir         m_aNFPortNumber.SetModifyHdl(getControlModifiedLink());
981*cdf0e10cSrcweir         m_aNFRowCount.SetModifyHdl(getControlModifiedLink());
982*cdf0e10cSrcweir 
983*cdf0e10cSrcweir         m_aNFRowCount.SetUseThousandSep(sal_False);
984*cdf0e10cSrcweir         m_iNormalPort = 389;
985*cdf0e10cSrcweir         m_iSSLPort    = 636;
986*cdf0e10cSrcweir         m_aCBUseSSL.SetClickHdl(LINK(this, OLDAPDetailsPage,OnCheckBoxClick));
987*cdf0e10cSrcweir         FreeResource();
988*cdf0e10cSrcweir     }
989*cdf0e10cSrcweir 
990*cdf0e10cSrcweir     // -----------------------------------------------------------------------
991*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateLDAP( Window* pParent, const SfxItemSet& _rAttrSet )
992*cdf0e10cSrcweir     {
993*cdf0e10cSrcweir         return ( new OLDAPDetailsPage( pParent, _rAttrSet ) );
994*cdf0e10cSrcweir     }
995*cdf0e10cSrcweir 
996*cdf0e10cSrcweir     // -----------------------------------------------------------------------
997*cdf0e10cSrcweir     sal_Bool OLDAPDetailsPage::FillItemSet( SfxItemSet& _rSet )
998*cdf0e10cSrcweir     {
999*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
1000*cdf0e10cSrcweir 
1001*cdf0e10cSrcweir         fillString(_rSet,&m_aETBaseDN,DSID_CONN_LDAP_BASEDN,bChangedSomething);
1002*cdf0e10cSrcweir         fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_LDAP_PORTNUMBER,bChangedSomething);
1003*cdf0e10cSrcweir         fillInt32(_rSet,&m_aNFRowCount,DSID_CONN_LDAP_ROWCOUNT,bChangedSomething);
1004*cdf0e10cSrcweir         fillBool(_rSet,&m_aCBUseSSL,DSID_CONN_LDAP_USESSL,bChangedSomething);
1005*cdf0e10cSrcweir         return bChangedSomething;
1006*cdf0e10cSrcweir     }
1007*cdf0e10cSrcweir     //------------------------------------------------------------------------
1008*cdf0e10cSrcweir     IMPL_LINK( OLDAPDetailsPage, OnCheckBoxClick, CheckBox*, pCheckBox )
1009*cdf0e10cSrcweir     {
1010*cdf0e10cSrcweir         callModifiedHdl();
1011*cdf0e10cSrcweir         if ( pCheckBox == &m_aCBUseSSL)
1012*cdf0e10cSrcweir         {
1013*cdf0e10cSrcweir             if ( m_aCBUseSSL.IsChecked() )
1014*cdf0e10cSrcweir             {
1015*cdf0e10cSrcweir                 m_iNormalPort = static_cast<sal_Int32>(m_aNFPortNumber.GetValue());
1016*cdf0e10cSrcweir                 m_aNFPortNumber.SetValue(m_iSSLPort);
1017*cdf0e10cSrcweir             }
1018*cdf0e10cSrcweir             else
1019*cdf0e10cSrcweir             {
1020*cdf0e10cSrcweir                 m_iSSLPort = static_cast<sal_Int32>(m_aNFPortNumber.GetValue());
1021*cdf0e10cSrcweir                 m_aNFPortNumber.SetValue(m_iNormalPort);
1022*cdf0e10cSrcweir             }
1023*cdf0e10cSrcweir         }
1024*cdf0e10cSrcweir         return 0;
1025*cdf0e10cSrcweir     }
1026*cdf0e10cSrcweir 
1027*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1028*cdf0e10cSrcweir     void OLDAPDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
1029*cdf0e10cSrcweir     {
1030*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
1031*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aETBaseDN));
1032*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aCBUseSSL));
1033*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber));
1034*cdf0e10cSrcweir         _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFRowCount));
1035*cdf0e10cSrcweir     }
1036*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1037*cdf0e10cSrcweir     void OLDAPDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
1038*cdf0e10cSrcweir     {
1039*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
1040*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aBaseDN));
1041*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber));
1042*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTRowCount));
1043*cdf0e10cSrcweir         _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL_1));
1044*cdf0e10cSrcweir     }
1045*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1046*cdf0e10cSrcweir     void OLDAPDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
1047*cdf0e10cSrcweir     {
1048*cdf0e10cSrcweir         // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
1049*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
1050*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
1051*cdf0e10cSrcweir 
1052*cdf0e10cSrcweir 
1053*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pBaseDN, SfxStringItem, DSID_CONN_LDAP_BASEDN, sal_True);
1054*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pUseSSL, SfxBoolItem, DSID_CONN_LDAP_USESSL, sal_True);
1055*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_LDAP_PORTNUMBER, sal_True);
1056*cdf0e10cSrcweir         SFX_ITEMSET_GET(_rSet, pRowCount, SfxInt32Item, DSID_CONN_LDAP_ROWCOUNT, sal_True);
1057*cdf0e10cSrcweir 
1058*cdf0e10cSrcweir         if ( bValid )
1059*cdf0e10cSrcweir         {
1060*cdf0e10cSrcweir             m_aETBaseDN.SetText(pBaseDN->GetValue());
1061*cdf0e10cSrcweir             m_aNFPortNumber.SetValue(pPortNumber->GetValue());
1062*cdf0e10cSrcweir             m_aNFRowCount.SetValue(pRowCount->GetValue());
1063*cdf0e10cSrcweir             m_aCBUseSSL.Check(pUseSSL->GetValue());
1064*cdf0e10cSrcweir         }
1065*cdf0e10cSrcweir 
1066*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
1067*cdf0e10cSrcweir     }
1068*cdf0e10cSrcweir 
1069*cdf0e10cSrcweir 
1070*cdf0e10cSrcweir     //========================================================================
1071*cdf0e10cSrcweir     //= OTextDetailsPage
1072*cdf0e10cSrcweir     //========================================================================
1073*cdf0e10cSrcweir     DBG_NAME(OTextDetailsPage)
1074*cdf0e10cSrcweir     //------------------------------------------------------------------------
1075*cdf0e10cSrcweir     OTextDetailsPage::OTextDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
1076*cdf0e10cSrcweir         :OCommonBehaviourTabPage(pParent, PAGE_TEXT, _rCoreAttrs, 0, false )
1077*cdf0e10cSrcweir     {
1078*cdf0e10cSrcweir         DBG_CTOR(OTextDetailsPage,NULL);
1079*cdf0e10cSrcweir 
1080*cdf0e10cSrcweir         m_pTextConnectionHelper = new OTextConnectionHelper( this, TC_EXTENSION | TC_HEADER | TC_SEPARATORS | TC_CHARSET );
1081*cdf0e10cSrcweir         FreeResource();
1082*cdf0e10cSrcweir     }
1083*cdf0e10cSrcweir 
1084*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1085*cdf0e10cSrcweir     OTextDetailsPage::~OTextDetailsPage()
1086*cdf0e10cSrcweir     {
1087*cdf0e10cSrcweir         DELETEZ(m_pTextConnectionHelper);
1088*cdf0e10cSrcweir 
1089*cdf0e10cSrcweir         DBG_DTOR(OTextDetailsPage,NULL);
1090*cdf0e10cSrcweir     }
1091*cdf0e10cSrcweir 
1092*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1093*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateText( Window* pParent,  const SfxItemSet& _rAttrSet )
1094*cdf0e10cSrcweir     {
1095*cdf0e10cSrcweir         return ( new OTextDetailsPage( pParent, _rAttrSet ) );
1096*cdf0e10cSrcweir     }
1097*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1098*cdf0e10cSrcweir     void OTextDetailsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
1099*cdf0e10cSrcweir     {
1100*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillControls(_rControlList);
1101*cdf0e10cSrcweir         m_pTextConnectionHelper->fillControls(_rControlList);
1102*cdf0e10cSrcweir 
1103*cdf0e10cSrcweir     }
1104*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1105*cdf0e10cSrcweir     void OTextDetailsPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
1106*cdf0e10cSrcweir     {
1107*cdf0e10cSrcweir         OCommonBehaviourTabPage::fillWindows(_rControlList);
1108*cdf0e10cSrcweir         m_pTextConnectionHelper->fillWindows(_rControlList);
1109*cdf0e10cSrcweir 
1110*cdf0e10cSrcweir     }
1111*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1112*cdf0e10cSrcweir     void OTextDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
1113*cdf0e10cSrcweir     {
1114*cdf0e10cSrcweir         // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
1115*cdf0e10cSrcweir         sal_Bool bValid, bReadonly;
1116*cdf0e10cSrcweir         getFlags(_rSet, bValid, bReadonly);
1117*cdf0e10cSrcweir 
1118*cdf0e10cSrcweir         m_pTextConnectionHelper->implInitControls(_rSet, bValid);
1119*cdf0e10cSrcweir         OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
1120*cdf0e10cSrcweir     }
1121*cdf0e10cSrcweir 
1122*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1123*cdf0e10cSrcweir     sal_Bool OTextDetailsPage::FillItemSet( SfxItemSet& rSet )
1124*cdf0e10cSrcweir     {
1125*cdf0e10cSrcweir         sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(rSet);
1126*cdf0e10cSrcweir         bChangedSomething = m_pTextConnectionHelper->FillItemSet(rSet, bChangedSomething);
1127*cdf0e10cSrcweir         return bChangedSomething;
1128*cdf0e10cSrcweir     }
1129*cdf0e10cSrcweir 
1130*cdf0e10cSrcweir     // -----------------------------------------------------------------------
1131*cdf0e10cSrcweir     sal_Bool OTextDetailsPage::prepareLeave()
1132*cdf0e10cSrcweir     {
1133*cdf0e10cSrcweir         return m_pTextConnectionHelper->prepareLeave();
1134*cdf0e10cSrcweir     }
1135*cdf0e10cSrcweir 
1136*cdf0e10cSrcweir     //------------------------------------------------------------------------
1137*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateGeneratedValuesPage( Window* _pParent, const SfxItemSet& _rAttrSet )
1138*cdf0e10cSrcweir     {
1139*cdf0e10cSrcweir         return new GeneratedValuesPage( _pParent, _rAttrSet );
1140*cdf0e10cSrcweir     }
1141*cdf0e10cSrcweir 
1142*cdf0e10cSrcweir     //------------------------------------------------------------------------
1143*cdf0e10cSrcweir     SfxTabPage* ODriversSettings::CreateSpecialSettingsPage( Window* _pParent, const SfxItemSet& _rAttrSet )
1144*cdf0e10cSrcweir     {
1145*cdf0e10cSrcweir         ::rtl::OUString eType = ODbDataSourceAdministrationHelper::getDatasourceType( _rAttrSet );
1146*cdf0e10cSrcweir         DataSourceMetaData aMetaData( eType );
1147*cdf0e10cSrcweir         return new SpecialSettingsPage( _pParent, _rAttrSet, aMetaData );
1148*cdf0e10cSrcweir     }
1149*cdf0e10cSrcweir //.........................................................................
1150*cdf0e10cSrcweir }   // namespace dbaui
1151*cdf0e10cSrcweir //.........................................................................
1152