xref: /trunk/main/sw/source/ui/fldui/changedb.cxx (revision efeef26f81c84063fb0a91bde3856d4a51172d90)
1*efeef26fSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*efeef26fSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*efeef26fSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*efeef26fSAndrew Rist  * distributed with this work for additional information
6*efeef26fSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*efeef26fSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*efeef26fSAndrew Rist  * "License"); you may not use this file except in compliance
9*efeef26fSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*efeef26fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*efeef26fSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*efeef26fSAndrew Rist  * software distributed under the License is distributed on an
15*efeef26fSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*efeef26fSAndrew Rist  * KIND, either express or implied.  See the License for the
17*efeef26fSAndrew Rist  * specific language governing permissions and limitations
18*efeef26fSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*efeef26fSAndrew Rist  *************************************************************/
21*efeef26fSAndrew Rist 
22*efeef26fSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sw.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION
29cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION
30cdf0e10cSrcweir #endif
31cdf0e10cSrcweir 
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #define _CHANGEDB_CXX
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #include <svtools/stdctrl.hxx>
36cdf0e10cSrcweir #ifndef _MSGBOX_HXX //autogen
37cdf0e10cSrcweir #include <vcl/msgbox.hxx>
38cdf0e10cSrcweir #endif
39cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
40cdf0e10cSrcweir #include <com/sun/star/container/XNameAccess.hpp>
41cdf0e10cSrcweir #include <com/sun/star/sdb/XDatabaseAccess.hpp>
42cdf0e10cSrcweir #include <comphelper/processfactory.hxx>
43cdf0e10cSrcweir #include <sfx2/viewfrm.hxx>
44cdf0e10cSrcweir 
45cdf0e10cSrcweir #ifndef _VIEW_HXX
46cdf0e10cSrcweir #include <view.hxx>
47cdf0e10cSrcweir #endif
48cdf0e10cSrcweir #include <wrtsh.hxx>
49cdf0e10cSrcweir #ifndef _DBMGR_HXX
50cdf0e10cSrcweir #include <dbmgr.hxx>
51cdf0e10cSrcweir #endif
52cdf0e10cSrcweir #include <fldmgr.hxx>
53cdf0e10cSrcweir #include <expfld.hxx>
54cdf0e10cSrcweir #include <txtatr.hxx>
55cdf0e10cSrcweir #include <ndtxt.hxx>
56cdf0e10cSrcweir #include <fldbas.hxx>
57cdf0e10cSrcweir #include <dbfld.hxx>
58cdf0e10cSrcweir #include <changedb.hxx>
59cdf0e10cSrcweir 
60cdf0e10cSrcweir #ifndef _FLDUI_HRC
61cdf0e10cSrcweir #include <fldui.hrc>
62cdf0e10cSrcweir #endif
63cdf0e10cSrcweir #ifndef _UTLUI_HRC
64cdf0e10cSrcweir #include <utlui.hrc>
65cdf0e10cSrcweir #endif
66cdf0e10cSrcweir #ifndef _CHANGEDB_HRC
67cdf0e10cSrcweir #include <changedb.hrc>
68cdf0e10cSrcweir #endif
69cdf0e10cSrcweir 
70cdf0e10cSrcweir #include <unomid.h>
71cdf0e10cSrcweir 
72cdf0e10cSrcweir using namespace ::com::sun::star::uno;
73cdf0e10cSrcweir using namespace ::com::sun::star::container;
74cdf0e10cSrcweir using namespace ::com::sun::star::lang;
75cdf0e10cSrcweir 
76cdf0e10cSrcweir 
77cdf0e10cSrcweir /*--------------------------------------------------------------------
78cdf0e10cSrcweir     Beschreibung: Feldeinfuegen bearbeiten
79cdf0e10cSrcweir  --------------------------------------------------------------------*/
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 
82cdf0e10cSrcweir SwChangeDBDlg::SwChangeDBDlg(SwView& rVw) :
83cdf0e10cSrcweir     SvxStandardDialog(&rVw.GetViewFrame()->GetWindow(), SW_RES(DLG_CHANGE_DB)),
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     aDBListFL   (this, SW_RES(FL_DBLIST     )),
86cdf0e10cSrcweir     aUsedDBFT   (this, SW_RES(FT_USEDDB     )),
87cdf0e10cSrcweir     aAvailDBFT  (this, SW_RES(FT_AVAILDB    )),
88cdf0e10cSrcweir     aUsedDBTLB  (this, SW_RES(TLB_USEDDB    )),
89cdf0e10cSrcweir     aAvailDBTLB (this, SW_RES(TLB_AVAILDB   ), 0),
90cdf0e10cSrcweir     aAddDBPB    (this, SW_RES(PB_ADDDB)),
91cdf0e10cSrcweir     aDescFT     (this, SW_RES(FT_DESC       )),
92cdf0e10cSrcweir     aDocDBTextFT(this, SW_RES(FT_DOCDBTEXT  )),
93cdf0e10cSrcweir     aDocDBNameFT(this, SW_RES(FT_DOCDBNAME  )),
94cdf0e10cSrcweir     aOKBT       (this, SW_RES(BT_OK         )),
95cdf0e10cSrcweir     aCancelBT   (this, SW_RES(BT_CANCEL     )),
96cdf0e10cSrcweir     aHelpBT     (this, SW_RES(BT_HELP       )),
97cdf0e10cSrcweir //  aChangeBT   (this, SW_RES(BT_CHANGEDB    )),
98cdf0e10cSrcweir     aImageList      (SW_RES(ILIST_DB_DLG    )),
99cdf0e10cSrcweir     aImageListHC    (SW_RES(ILIST_DB_DLG_HC )),
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     pSh(rVw.GetWrtShellPtr()),
102cdf0e10cSrcweir     pMgr( new SwFldMgr() )
103cdf0e10cSrcweir {
104cdf0e10cSrcweir     aAvailDBTLB.SetWrtShell(*pSh);
105cdf0e10cSrcweir     FillDBPopup();
106cdf0e10cSrcweir 
107cdf0e10cSrcweir     FreeResource();
108cdf0e10cSrcweir 
109cdf0e10cSrcweir     ShowDBName(pSh->GetDBData());
110cdf0e10cSrcweir     aOKBT.SetClickHdl(LINK(this, SwChangeDBDlg, ButtonHdl));
111cdf0e10cSrcweir     aAddDBPB.SetClickHdl(LINK(this, SwChangeDBDlg, AddDBHdl));
112cdf0e10cSrcweir 
113cdf0e10cSrcweir     aUsedDBTLB.SetSelectionMode(MULTIPLE_SELECTION);
114cdf0e10cSrcweir     aUsedDBTLB.SetStyle(aUsedDBTLB.GetStyle()|WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
115cdf0e10cSrcweir     aUsedDBTLB.SetSpaceBetweenEntries(0);
116cdf0e10cSrcweir 
117cdf0e10cSrcweir     aUsedDBTLB.SetNodeBitmaps( aImageList.GetImage(IMG_COLLAPSE),
118cdf0e10cSrcweir                     aImageList.GetImage(IMG_EXPAND  ), BMP_COLOR_NORMAL );
119cdf0e10cSrcweir     aUsedDBTLB.SetNodeBitmaps( aImageListHC.GetImage(IMG_COLLAPSE),
120cdf0e10cSrcweir                     aImageListHC.GetImage(IMG_EXPAND  ), BMP_COLOR_HIGHCONTRAST );
121cdf0e10cSrcweir 
122cdf0e10cSrcweir     Link aLink = LINK(this, SwChangeDBDlg, TreeSelectHdl);
123cdf0e10cSrcweir 
124cdf0e10cSrcweir     aUsedDBTLB.SetSelectHdl(aLink);
125cdf0e10cSrcweir     aUsedDBTLB.SetDeselectHdl(aLink);
126cdf0e10cSrcweir     aAvailDBTLB.SetSelectHdl(aLink);
127cdf0e10cSrcweir     aAvailDBTLB.SetDeselectHdl(aLink);
128cdf0e10cSrcweir     TreeSelectHdl();
129cdf0e10cSrcweir }
130cdf0e10cSrcweir 
131cdf0e10cSrcweir /*--------------------------------------------------------------------
132cdf0e10cSrcweir     Beschreibung: Datenbank-Listboxen initialisieren
133cdf0e10cSrcweir  --------------------------------------------------------------------*/
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 
136cdf0e10cSrcweir void SwChangeDBDlg::FillDBPopup()
137cdf0e10cSrcweir {
138cdf0e10cSrcweir     Reference<XNameAccess> xDBContext;
139cdf0e10cSrcweir     Reference< XMultiServiceFactory > xMgr( ::comphelper::getProcessServiceFactory() );
140cdf0e10cSrcweir     if( xMgr.is() )
141cdf0e10cSrcweir     {
142cdf0e10cSrcweir         Reference<XInterface> xInstance = xMgr->createInstance( C2U( "com.sun.star.sdb.DatabaseContext" ));
143cdf0e10cSrcweir         xDBContext = Reference<XNameAccess>(xInstance, UNO_QUERY) ;
144cdf0e10cSrcweir     }
145cdf0e10cSrcweir     DBG_ASSERT(xDBContext.is(), "com.sun.star.sdb.DataBaseContext: service not available");
146cdf0e10cSrcweir 
147cdf0e10cSrcweir     const SwDBData& rDBData = pSh->GetDBData();
148cdf0e10cSrcweir     String sDBName(rDBData.sDataSource);
149cdf0e10cSrcweir     String sTableName(rDBData.sCommand);
150cdf0e10cSrcweir     aAvailDBTLB.Select(sDBName, sTableName, aEmptyStr);
151cdf0e10cSrcweir 
152cdf0e10cSrcweir     SvStringsDtor aAllDBNames(5, 5);
153cdf0e10cSrcweir 
154cdf0e10cSrcweir     Sequence< ::rtl::OUString > aDBNames = xDBContext->getElementNames();
155cdf0e10cSrcweir     const ::rtl::OUString* pDBNames = aDBNames.getConstArray();
156cdf0e10cSrcweir     sal_Int32 nDBCount = aDBNames.getLength();
157cdf0e10cSrcweir     for(sal_Int32 i = 0; i < nDBCount; i++)
158cdf0e10cSrcweir     {
159cdf0e10cSrcweir         aAllDBNames.Insert(new String(pDBNames[i]), aAllDBNames.Count());
160cdf0e10cSrcweir     }
161cdf0e10cSrcweir 
162cdf0e10cSrcweir     SvStringsDtor aDBNameList(5, 1);
163cdf0e10cSrcweir     pSh->GetAllUsedDB( aDBNameList, &aAllDBNames );
164cdf0e10cSrcweir 
165cdf0e10cSrcweir     sal_uInt16 nCount = aDBNameList.Count();
166cdf0e10cSrcweir     aUsedDBTLB.Clear();
167cdf0e10cSrcweir     SvLBoxEntry *pFirst = 0;
168cdf0e10cSrcweir     SvLBoxEntry *pLast = 0;
169cdf0e10cSrcweir 
170cdf0e10cSrcweir     for (sal_uInt16 k = 0; k < nCount; k++)
171cdf0e10cSrcweir     {
172cdf0e10cSrcweir         sDBName = *aDBNameList.GetObject(k);
173cdf0e10cSrcweir         sDBName = sDBName.GetToken(0);
174cdf0e10cSrcweir         pLast = Insert(sDBName);
175cdf0e10cSrcweir         if (!pFirst)
176cdf0e10cSrcweir             pFirst = pLast;
177cdf0e10cSrcweir     }
178cdf0e10cSrcweir 
179cdf0e10cSrcweir     if (pFirst)
180cdf0e10cSrcweir     {
181cdf0e10cSrcweir         aUsedDBTLB.MakeVisible(pFirst);
182cdf0e10cSrcweir         aUsedDBTLB.Select(pFirst);
183cdf0e10cSrcweir     }
184cdf0e10cSrcweir 
185cdf0e10cSrcweir }
186cdf0e10cSrcweir 
187cdf0e10cSrcweir /*--------------------------------------------------------------------
188cdf0e10cSrcweir     Beschreibung:
189cdf0e10cSrcweir  --------------------------------------------------------------------*/
190cdf0e10cSrcweir 
191cdf0e10cSrcweir 
192cdf0e10cSrcweir SvLBoxEntry* SwChangeDBDlg::Insert(const String& rDBName)
193cdf0e10cSrcweir {
194cdf0e10cSrcweir     String sDBName(rDBName.GetToken(0, DB_DELIM));
195cdf0e10cSrcweir     String sTableName(rDBName.GetToken(1, DB_DELIM));
196cdf0e10cSrcweir     int nCommandType = rDBName.GetToken(2, DB_DELIM).ToInt32();
197cdf0e10cSrcweir     SvLBoxEntry* pParent;
198cdf0e10cSrcweir     SvLBoxEntry* pChild;
199cdf0e10cSrcweir 
200cdf0e10cSrcweir     sal_uInt16 nParent = 0;
201cdf0e10cSrcweir     sal_uInt16 nChild = 0;
202cdf0e10cSrcweir 
203cdf0e10cSrcweir     Image aTableImg = aImageList.GetImage(IMG_DBTABLE);
204cdf0e10cSrcweir     Image aDBImg = aImageList.GetImage(IMG_DB);
205cdf0e10cSrcweir     Image aQueryImg = aImageList.GetImage(IMG_DBQUERY);
206cdf0e10cSrcweir     Image aHCTableImg = aImageListHC.GetImage(IMG_DBTABLE);
207cdf0e10cSrcweir     Image aHCDBImg = aImageListHC.GetImage(IMG_DB);
208cdf0e10cSrcweir     Image aHCQueryImg = aImageListHC.GetImage(IMG_DBQUERY);
209cdf0e10cSrcweir     Image& rToInsert = nCommandType ? aQueryImg : aTableImg;
210cdf0e10cSrcweir     Image& rHCToInsert = nCommandType ? aHCQueryImg : aHCTableImg;
211cdf0e10cSrcweir     while ((pParent = aUsedDBTLB.GetEntry(nParent++)) != NULL)
212cdf0e10cSrcweir     {
213cdf0e10cSrcweir         if (sDBName == aUsedDBTLB.GetEntryText(pParent))
214cdf0e10cSrcweir         {
215cdf0e10cSrcweir             while ((pChild = aUsedDBTLB.GetEntry(pParent, nChild++)) != NULL)
216cdf0e10cSrcweir             {
217cdf0e10cSrcweir                 if (sTableName == aUsedDBTLB.GetEntryText(pChild))
218cdf0e10cSrcweir                     return pChild;
219cdf0e10cSrcweir             }
220cdf0e10cSrcweir             SvLBoxEntry* pRet = aUsedDBTLB.InsertEntry(sTableName, rToInsert, rToInsert, pParent);
221cdf0e10cSrcweir             aUsedDBTLB.SetExpandedEntryBmp(pRet, rHCToInsert, BMP_COLOR_HIGHCONTRAST);
222cdf0e10cSrcweir             aUsedDBTLB.SetCollapsedEntryBmp(pRet, rHCToInsert, BMP_COLOR_HIGHCONTRAST);
223cdf0e10cSrcweir             pRet->SetUserData((void*)nCommandType);
224cdf0e10cSrcweir             return pRet;
225cdf0e10cSrcweir         }
226cdf0e10cSrcweir     }
227cdf0e10cSrcweir     pParent = aUsedDBTLB.InsertEntry(sDBName, aDBImg, aDBImg);
228cdf0e10cSrcweir     aUsedDBTLB.SetExpandedEntryBmp(pParent, aHCDBImg, BMP_COLOR_HIGHCONTRAST);
229cdf0e10cSrcweir     aUsedDBTLB.SetCollapsedEntryBmp(pParent, aHCDBImg, BMP_COLOR_HIGHCONTRAST);
230cdf0e10cSrcweir 
231cdf0e10cSrcweir     SvLBoxEntry* pRet = aUsedDBTLB.InsertEntry(sTableName, rToInsert, rToInsert, pParent);
232cdf0e10cSrcweir     aUsedDBTLB.SetExpandedEntryBmp(pRet, rHCToInsert, BMP_COLOR_HIGHCONTRAST);
233cdf0e10cSrcweir     aUsedDBTLB.SetCollapsedEntryBmp(pRet, rHCToInsert, BMP_COLOR_HIGHCONTRAST);
234cdf0e10cSrcweir     pRet->SetUserData((void*)nCommandType);
235cdf0e10cSrcweir     return pRet;
236cdf0e10cSrcweir }
237cdf0e10cSrcweir 
238cdf0e10cSrcweir /*--------------------------------------------------------------------
239cdf0e10cSrcweir     Beschreibung: Dialog zerstoeren
240cdf0e10cSrcweir  --------------------------------------------------------------------*/
241cdf0e10cSrcweir __EXPORT SwChangeDBDlg::~SwChangeDBDlg()
242cdf0e10cSrcweir {
243cdf0e10cSrcweir     delete pMgr;
244cdf0e10cSrcweir }
245cdf0e10cSrcweir 
246cdf0e10cSrcweir /*--------------------------------------------------------------------
247cdf0e10cSrcweir      Beschreibung:  Schliessen
248cdf0e10cSrcweir  --------------------------------------------------------------------*/
249cdf0e10cSrcweir void __EXPORT SwChangeDBDlg::Apply()
250cdf0e10cSrcweir {
251cdf0e10cSrcweir     UpdateFlds();
252cdf0e10cSrcweir }
253cdf0e10cSrcweir /*--------------------------------------------------------------------
254cdf0e10cSrcweir      Beschreibung:
255cdf0e10cSrcweir  --------------------------------------------------------------------*/
256cdf0e10cSrcweir void SwChangeDBDlg::UpdateFlds()
257cdf0e10cSrcweir {
258cdf0e10cSrcweir     SvStringsDtor aDBNames( (sal_uInt8)aUsedDBTLB.GetSelectionCount(), 1 );
259cdf0e10cSrcweir     SvLBoxEntry* pEntry = aUsedDBTLB.FirstSelected();
260cdf0e10cSrcweir 
261cdf0e10cSrcweir     while( pEntry )
262cdf0e10cSrcweir     {
263cdf0e10cSrcweir         if( aUsedDBTLB.GetParent( pEntry ))
264cdf0e10cSrcweir         {
265cdf0e10cSrcweir             String* pTmp = new String( aUsedDBTLB.GetEntryText(
266cdf0e10cSrcweir                                             aUsedDBTLB.GetParent( pEntry )));
267cdf0e10cSrcweir             *pTmp += DB_DELIM;
268cdf0e10cSrcweir             *pTmp += aUsedDBTLB.GetEntryText( pEntry );
269cdf0e10cSrcweir             *pTmp += DB_DELIM;
270cdf0e10cSrcweir             int nCommandType = (int)(sal_uLong)pEntry->GetUserData();
271cdf0e10cSrcweir             *pTmp += String::CreateFromInt32(nCommandType);
272cdf0e10cSrcweir             aDBNames.Insert(pTmp, aDBNames.Count() );
273cdf0e10cSrcweir         }
274cdf0e10cSrcweir         pEntry = aUsedDBTLB.NextSelected(pEntry);
275cdf0e10cSrcweir     }
276cdf0e10cSrcweir 
277cdf0e10cSrcweir     pSh->StartAllAction();
278cdf0e10cSrcweir     String sTableName, sColumnName;
279cdf0e10cSrcweir     sal_Bool bIsTable = sal_False;
280cdf0e10cSrcweir     String sTemp(aAvailDBTLB.GetDBName(sTableName, sColumnName, &bIsTable));
281cdf0e10cSrcweir     sTemp += DB_DELIM;
282cdf0e10cSrcweir     sTemp += sTableName;
283cdf0e10cSrcweir     sTemp += DB_DELIM;
284cdf0e10cSrcweir     sTemp += bIsTable ? '0' : '1';
285cdf0e10cSrcweir     pSh->ChangeDBFields( aDBNames, sTemp);
286cdf0e10cSrcweir     pSh->EndAllAction();
287cdf0e10cSrcweir }
288cdf0e10cSrcweir 
289cdf0e10cSrcweir /*------------------------------------------------------------------------
290cdf0e10cSrcweir  Beschreibung:
291cdf0e10cSrcweir ------------------------------------------------------------------------*/
292cdf0e10cSrcweir 
293cdf0e10cSrcweir 
294cdf0e10cSrcweir IMPL_LINK( SwChangeDBDlg, ButtonHdl, Button *, EMPTYARG )
295cdf0e10cSrcweir {
296cdf0e10cSrcweir     String sTableName, sColumnName;
297cdf0e10cSrcweir     SwDBData aData;
298cdf0e10cSrcweir     sal_Bool bIsTable = sal_False;
299cdf0e10cSrcweir     aData.sDataSource = aAvailDBTLB.GetDBName(sTableName, sColumnName, &bIsTable);
300cdf0e10cSrcweir     aData.sCommand = sTableName;
301cdf0e10cSrcweir     aData.nCommandType = bIsTable ? 0 : 1;;
302cdf0e10cSrcweir     pSh->ChgDBData(aData);
303cdf0e10cSrcweir     ShowDBName(pSh->GetDBData());
304cdf0e10cSrcweir     EndDialog(RET_OK);
305cdf0e10cSrcweir 
306cdf0e10cSrcweir     return 0;
307cdf0e10cSrcweir }
308cdf0e10cSrcweir 
309cdf0e10cSrcweir /*------------------------------------------------------------------------
310cdf0e10cSrcweir  Beschreibung:
311cdf0e10cSrcweir ------------------------------------------------------------------------*/
312cdf0e10cSrcweir 
313cdf0e10cSrcweir 
314cdf0e10cSrcweir IMPL_LINK( SwChangeDBDlg, TreeSelectHdl, SvTreeListBox *, EMPTYARG )
315cdf0e10cSrcweir {
316cdf0e10cSrcweir     sal_Bool bEnable = sal_False;
317cdf0e10cSrcweir 
318cdf0e10cSrcweir     SvLBoxEntry* pEntry = aAvailDBTLB.GetCurEntry();
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     if (pEntry)
321cdf0e10cSrcweir     {
322cdf0e10cSrcweir         if (aAvailDBTLB.GetParent(pEntry))
323cdf0e10cSrcweir             bEnable = sal_True;
324cdf0e10cSrcweir         aOKBT.Enable( bEnable );
325cdf0e10cSrcweir     }
326cdf0e10cSrcweir     return 0;
327cdf0e10cSrcweir }
328cdf0e10cSrcweir 
329cdf0e10cSrcweir /*--------------------------------------------------------------------
330cdf0e10cSrcweir     Beschreibung: Datenbankname fuer Anzeige wandeln
331cdf0e10cSrcweir  --------------------------------------------------------------------*/
332cdf0e10cSrcweir 
333cdf0e10cSrcweir void SwChangeDBDlg::ShowDBName(const SwDBData& rDBData)
334cdf0e10cSrcweir {
335cdf0e10cSrcweir     String sTmp(rDBData.sDataSource);
336cdf0e10cSrcweir     String sName;
337cdf0e10cSrcweir     sTmp += '.';
338cdf0e10cSrcweir     sTmp += (String)rDBData.sCommand;
339cdf0e10cSrcweir 
340cdf0e10cSrcweir     for (sal_uInt16 i = 0; i < sTmp.Len(); i++)
341cdf0e10cSrcweir     {
342cdf0e10cSrcweir         sName += sTmp.GetChar(i);
343cdf0e10cSrcweir         if (sTmp.GetChar(i) == '~')
344cdf0e10cSrcweir             sName += '~';
345cdf0e10cSrcweir     }
346cdf0e10cSrcweir 
347cdf0e10cSrcweir     aDocDBNameFT.SetText(sName);
348cdf0e10cSrcweir }
349cdf0e10cSrcweir /*-- 27.05.2004 09:14:01---------------------------------------------------
350cdf0e10cSrcweir 
351cdf0e10cSrcweir   -----------------------------------------------------------------------*/
352cdf0e10cSrcweir IMPL_LINK( SwChangeDBDlg, AddDBHdl, PushButton *, EMPTYARG )
353cdf0e10cSrcweir {
354cdf0e10cSrcweir     String sNewDB = SwNewDBMgr::LoadAndRegisterDataSource();
355cdf0e10cSrcweir     if(sNewDB.Len())
356cdf0e10cSrcweir         aAvailDBTLB.AddDataSource(sNewDB);
357cdf0e10cSrcweir     return 0;
358cdf0e10cSrcweir }
359cdf0e10cSrcweir 
360