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