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
10*efeef26fSAndrew Rist  *
11*efeef26fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*efeef26fSAndrew Rist  *
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.
19*efeef26fSAndrew Rist  *
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 #ifdef SW_DLLIMPLEMENTATION
28cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION
29cdf0e10cSrcweir #endif
30cdf0e10cSrcweir #include <mmgreetingspage.hxx>
31cdf0e10cSrcweir #include <mailmergewizard.hxx>
32cdf0e10cSrcweir #include <mmconfigitem.hxx>
33cdf0e10cSrcweir #include <mmaddressblockpage.hxx>
34cdf0e10cSrcweir #include <swtypes.hxx>
35cdf0e10cSrcweir #include <vcl/msgbox.hxx>
36cdf0e10cSrcweir #include <mmgreetingspage.hrc>
37cdf0e10cSrcweir #include <dbui.hrc>
38cdf0e10cSrcweir #include <com/sun/star/sdb/XColumn.hpp>
39cdf0e10cSrcweir #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
40cdf0e10cSrcweir #include <com/sun/star/container/XNameAccess.hpp>
41cdf0e10cSrcweir #include <helpid.h>
42cdf0e10cSrcweir 
43cdf0e10cSrcweir using namespace svt;
44cdf0e10cSrcweir using namespace ::com::sun::star;
45cdf0e10cSrcweir using namespace ::com::sun::star::uno;
46cdf0e10cSrcweir // -----------------------------------------------------------------------
lcl_FillGreetingsBox(ListBox & rBox,SwMailMergeConfigItem & rConfig,SwMailMergeConfigItem::Gender eType)47cdf0e10cSrcweir void lcl_FillGreetingsBox(ListBox& rBox,
48cdf0e10cSrcweir                         SwMailMergeConfigItem& rConfig,
49cdf0e10cSrcweir                         SwMailMergeConfigItem::Gender eType)
50cdf0e10cSrcweir {
51cdf0e10cSrcweir     const Sequence< ::rtl::OUString> rEntries = rConfig.GetGreetings(eType);
52cdf0e10cSrcweir     for(sal_Int32 nEntry = 0; nEntry < rEntries.getLength(); ++nEntry)
53cdf0e10cSrcweir         rBox.InsertEntry(rEntries[nEntry]);
54cdf0e10cSrcweir     rBox.SelectEntryPos((sal_uInt16)rConfig.GetCurrentGreeting(eType));
55cdf0e10cSrcweir }
56cdf0e10cSrcweir // -----------------------------------------------------------------------
lcl_FillGreetingsBox(ComboBox & rBox,SwMailMergeConfigItem & rConfig,SwMailMergeConfigItem::Gender eType)57cdf0e10cSrcweir void lcl_FillGreetingsBox(ComboBox& rBox,
58cdf0e10cSrcweir                         SwMailMergeConfigItem& rConfig,
59cdf0e10cSrcweir                         SwMailMergeConfigItem::Gender eType)
60cdf0e10cSrcweir {
61cdf0e10cSrcweir     const Sequence< ::rtl::OUString> rEntries = rConfig.GetGreetings(eType);
62cdf0e10cSrcweir     for(sal_Int32 nEntry = 0; nEntry < rEntries.getLength(); ++nEntry)
63cdf0e10cSrcweir         rBox.InsertEntry(rEntries[nEntry]);
64cdf0e10cSrcweir     rBox.SelectEntryPos((sal_uInt16)rConfig.GetCurrentGreeting(eType));
65cdf0e10cSrcweir }
66cdf0e10cSrcweir // -----------------------------------------------------------------------
lcl_StoreGreetingsBox(ListBox & rBox,SwMailMergeConfigItem & rConfig,SwMailMergeConfigItem::Gender eType)67cdf0e10cSrcweir void lcl_StoreGreetingsBox(ListBox& rBox,
68cdf0e10cSrcweir                         SwMailMergeConfigItem& rConfig,
69cdf0e10cSrcweir                         SwMailMergeConfigItem::Gender eType)
70cdf0e10cSrcweir {
71cdf0e10cSrcweir     Sequence< ::rtl::OUString> aEntries(rBox.GetEntryCount());
72cdf0e10cSrcweir     ::rtl::OUString* pEntries = aEntries.getArray();
73cdf0e10cSrcweir     for(sal_uInt16 nEntry = 0; nEntry < rBox.GetEntryCount(); ++nEntry)
74cdf0e10cSrcweir         pEntries[nEntry] = rBox.GetEntry(nEntry);
75cdf0e10cSrcweir     rConfig.SetGreetings(eType, aEntries);
76cdf0e10cSrcweir     rConfig.SetCurrentGreeting(eType, rBox.GetSelectEntryPos());
77cdf0e10cSrcweir }
78cdf0e10cSrcweir // -----------------------------------------------------------------------
lcl_StoreGreetingsBox(ComboBox & rBox,SwMailMergeConfigItem & rConfig,SwMailMergeConfigItem::Gender eType)79cdf0e10cSrcweir void lcl_StoreGreetingsBox(ComboBox& rBox,
80cdf0e10cSrcweir                         SwMailMergeConfigItem& rConfig,
81cdf0e10cSrcweir                         SwMailMergeConfigItem::Gender eType)
82cdf0e10cSrcweir {
83cdf0e10cSrcweir     Sequence< ::rtl::OUString> aEntries(rBox.GetEntryCount());
84cdf0e10cSrcweir     ::rtl::OUString* pEntries = aEntries.getArray();
85cdf0e10cSrcweir     for(sal_uInt16 nEntry = 0; nEntry < rBox.GetEntryCount(); ++nEntry)
86cdf0e10cSrcweir         pEntries[nEntry] = rBox.GetEntry(nEntry);
87cdf0e10cSrcweir     rConfig.SetGreetings(eType, aEntries);
88cdf0e10cSrcweir     rConfig.SetCurrentGreeting(eType, rBox.GetSelectEntryPos());
89cdf0e10cSrcweir }
90cdf0e10cSrcweir /*-- 30.04.2004 10:42:57---------------------------------------------------
91cdf0e10cSrcweir 
92cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwGreetingsHandler,IndividualHdl_Impl,CheckBox *,EMPTYARG)93cdf0e10cSrcweir IMPL_LINK(SwGreetingsHandler, IndividualHdl_Impl, CheckBox*, EMPTYARG)
94cdf0e10cSrcweir {
95cdf0e10cSrcweir     sal_Bool bIndividual = m_pPersonalizedCB->IsEnabled() && m_pPersonalizedCB->IsChecked();
96cdf0e10cSrcweir     m_pFemaleFT->Enable(bIndividual);
97cdf0e10cSrcweir     m_pFemaleLB->Enable(bIndividual);
98cdf0e10cSrcweir     m_pFemalePB->Enable(bIndividual);
99cdf0e10cSrcweir     m_pMaleFT->Enable(bIndividual);
100cdf0e10cSrcweir     m_pMaleLB->Enable(bIndividual);
101cdf0e10cSrcweir     m_pMalePB->Enable(bIndividual);
102cdf0e10cSrcweir     m_pFemaleFI->Enable(bIndividual);
103cdf0e10cSrcweir     m_pFemaleColumnFT->Enable(bIndividual);
104cdf0e10cSrcweir     m_pFemaleColumnLB->Enable(bIndividual);
105cdf0e10cSrcweir     m_pFemaleFieldFT->Enable(bIndividual);
106cdf0e10cSrcweir     m_pFemaleFieldCB->Enable(bIndividual);
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     if( m_bIsTabPage )
109cdf0e10cSrcweir     {
110cdf0e10cSrcweir         m_pWizard->GetConfigItem().SetIndividualGreeting(bIndividual, sal_False);
111cdf0e10cSrcweir         m_pWizard->UpdateRoadmap();
112cdf0e10cSrcweir         m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
113cdf0e10cSrcweir     }
114cdf0e10cSrcweir     UpdatePreview();
115cdf0e10cSrcweir     return 0;
116cdf0e10cSrcweir }
117cdf0e10cSrcweir /*-- 30.04.2004 10:42:57---------------------------------------------------
118cdf0e10cSrcweir 
119cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwGreetingsHandler,GreetingHdl_Impl,PushButton *,pButton)120cdf0e10cSrcweir IMPL_LINK(SwGreetingsHandler, GreetingHdl_Impl, PushButton*, pButton)
121cdf0e10cSrcweir {
122cdf0e10cSrcweir     SwCustomizeAddressBlockDialog* pDlg =
123cdf0e10cSrcweir             new SwCustomizeAddressBlockDialog(pButton, m_pWizard->GetConfigItem(),
124cdf0e10cSrcweir                         pButton == m_pMalePB ?
125cdf0e10cSrcweir                         SwCustomizeAddressBlockDialog::GREETING_MALE :
126cdf0e10cSrcweir                         SwCustomizeAddressBlockDialog::GREETING_FEMALE );
127cdf0e10cSrcweir     if(RET_OK == pDlg->Execute())
128cdf0e10cSrcweir     {
129cdf0e10cSrcweir         ListBox* pToInsert = pButton == m_pMalePB ? m_pMaleLB : m_pFemaleLB;
130cdf0e10cSrcweir         pToInsert->SelectEntryPos(pToInsert->InsertEntry(pDlg->GetAddress()));
131cdf0e10cSrcweir         if(m_bIsTabPage)
132cdf0e10cSrcweir         {
133cdf0e10cSrcweir             m_pWizard->UpdateRoadmap();
134cdf0e10cSrcweir             m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
135cdf0e10cSrcweir         }
136cdf0e10cSrcweir         UpdatePreview();
137cdf0e10cSrcweir     }
138cdf0e10cSrcweir     delete pDlg;
139cdf0e10cSrcweir     return 0;
140cdf0e10cSrcweir }
141cdf0e10cSrcweir /*-- 16.06.2004 10:56:21---------------------------------------------------
142cdf0e10cSrcweir 
143cdf0e10cSrcweir   -----------------------------------------------------------------------*/
UpdatePreview()144cdf0e10cSrcweir void    SwGreetingsHandler::UpdatePreview()
145cdf0e10cSrcweir {
146cdf0e10cSrcweir     //the base class does nothing
147cdf0e10cSrcweir }
148cdf0e10cSrcweir /*-- 30.04.2004 10:42:59---------------------------------------------------
149cdf0e10cSrcweir 
150cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwMailMergeGreetingsPage,AssignHdl_Impl,PushButton *,pButton)151cdf0e10cSrcweir IMPL_LINK(SwMailMergeGreetingsPage, AssignHdl_Impl, PushButton*, pButton)
152cdf0e10cSrcweir {
153cdf0e10cSrcweir     String sPreview = m_aFemaleLB.GetSelectEntry();
154cdf0e10cSrcweir     sPreview += '\n';
155cdf0e10cSrcweir     sPreview += m_aMaleLB.GetSelectEntry();
156cdf0e10cSrcweir     SwAssignFieldsDialog* pDlg =
157cdf0e10cSrcweir             new SwAssignFieldsDialog(pButton, m_pWizard->GetConfigItem(), sPreview, false);
158cdf0e10cSrcweir     if(RET_OK == pDlg->Execute())
159cdf0e10cSrcweir     {
160cdf0e10cSrcweir         UpdatePreview();
161cdf0e10cSrcweir         m_pWizard->UpdateRoadmap();
162cdf0e10cSrcweir         m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
163cdf0e10cSrcweir     }
164cdf0e10cSrcweir     delete pDlg;
165cdf0e10cSrcweir     return 0;
166cdf0e10cSrcweir }
167cdf0e10cSrcweir /*-- 05.05.2004 15:25:56---------------------------------------------------
168cdf0e10cSrcweir 
169cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwMailMergeGreetingsPage,GreetingSelectHdl_Impl,ListBox *,EMPTYARG)170cdf0e10cSrcweir IMPL_LINK(SwMailMergeGreetingsPage, GreetingSelectHdl_Impl, ListBox*, EMPTYARG)
171cdf0e10cSrcweir {
172cdf0e10cSrcweir     UpdatePreview();
173cdf0e10cSrcweir     return 0;
174cdf0e10cSrcweir }
175cdf0e10cSrcweir /*-- 05.05.2004 15:23:43---------------------------------------------------
176cdf0e10cSrcweir 
177cdf0e10cSrcweir   -----------------------------------------------------------------------*/
UpdatePreview()178cdf0e10cSrcweir void SwMailMergeGreetingsPage::UpdatePreview()
179cdf0e10cSrcweir {
180cdf0e10cSrcweir     //find out which type of greeting should be selected:
181cdf0e10cSrcweir     bool bFemale = false;
182cdf0e10cSrcweir     bool bNoValue = !m_pFemaleColumnLB->IsEnabled();
183cdf0e10cSrcweir     if( !bNoValue )
184cdf0e10cSrcweir     {
185cdf0e10cSrcweir         ::rtl::OUString sFemaleValue = m_aFemaleFieldCB.GetText();
186cdf0e10cSrcweir         ::rtl::OUString sFemaleColumn = m_aFemaleColumnLB.GetSelectEntry();
187cdf0e10cSrcweir         Reference< sdbcx::XColumnsSupplier > xColsSupp( m_pWizard->GetConfigItem().GetResultSet(), UNO_QUERY);
188cdf0e10cSrcweir         Reference < container::XNameAccess> xColAccess = xColsSupp.is() ? xColsSupp->getColumns() : 0;
189cdf0e10cSrcweir         if(sFemaleValue.getLength() && sFemaleColumn.getLength() &&
190cdf0e10cSrcweir                 xColAccess.is() &&
191cdf0e10cSrcweir                 xColAccess->hasByName(sFemaleColumn))
192cdf0e10cSrcweir         {
193cdf0e10cSrcweir             //get the content and exchange it in the address string
194cdf0e10cSrcweir             Any aCol = xColAccess->getByName(sFemaleColumn);
195cdf0e10cSrcweir             Reference< sdb::XColumn > xColumn;
196cdf0e10cSrcweir             aCol >>= xColumn;
197cdf0e10cSrcweir             if(xColumn.is())
198cdf0e10cSrcweir             {
199cdf0e10cSrcweir                 try
200cdf0e10cSrcweir                 {
201cdf0e10cSrcweir                     ::rtl::OUString sFemaleColumnValue = xColumn->getString();
202cdf0e10cSrcweir                     bFemale = sFemaleColumnValue == sFemaleValue;
203cdf0e10cSrcweir                     //bNoValue = !sFemaleColumnValue.getLength();
204cdf0e10cSrcweir                     if( !bNoValue )
205cdf0e10cSrcweir                     {
206cdf0e10cSrcweir                         //no last name value marks the greeting also als neutral
207cdf0e10cSrcweir                         SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
208cdf0e10cSrcweir                         ::rtl::OUString sLastNameColumn = rConfig.GetAssignedColumn(MM_PART_LASTNAME);
209cdf0e10cSrcweir                         if ( xColAccess->hasByName(sLastNameColumn) )
210cdf0e10cSrcweir                         {
211cdf0e10cSrcweir                             aCol = xColAccess->getByName(sLastNameColumn);
212cdf0e10cSrcweir                             aCol >>= xColumn;
213cdf0e10cSrcweir                             ::rtl::OUString sLastNameColumnValue = xColumn->getString();
214cdf0e10cSrcweir                             bNoValue = !sLastNameColumnValue.getLength();
215cdf0e10cSrcweir                         }
216cdf0e10cSrcweir                     }
217cdf0e10cSrcweir                 }
218cdf0e10cSrcweir                 catch( sdbc::SQLException& )
219cdf0e10cSrcweir                 {
220cdf0e10cSrcweir                     DBG_ERROR("SQLException caught");
221cdf0e10cSrcweir                 }
222cdf0e10cSrcweir             }
223cdf0e10cSrcweir         }
224cdf0e10cSrcweir     }
225cdf0e10cSrcweir 
226cdf0e10cSrcweir     String sPreview = bFemale ? m_aFemaleLB.GetSelectEntry() :
227cdf0e10cSrcweir         bNoValue ? m_aNeutralCB.GetText() : m_aMaleLB.GetSelectEntry();
228cdf0e10cSrcweir 
229cdf0e10cSrcweir     sPreview = SwAddressPreview::FillData(sPreview, m_pWizard->GetConfigItem());
230cdf0e10cSrcweir     m_aPreviewWIN.SetAddress(sPreview);
231cdf0e10cSrcweir }
232cdf0e10cSrcweir /*-- 17.05.2004 15:44:53---------------------------------------------------
233cdf0e10cSrcweir 
234cdf0e10cSrcweir   -----------------------------------------------------------------------*/
Contains(sal_Bool bContainsGreeting)235cdf0e10cSrcweir void    SwGreetingsHandler::Contains(sal_Bool bContainsGreeting)
236cdf0e10cSrcweir {
237cdf0e10cSrcweir     m_pPersonalizedCB->Enable(bContainsGreeting);
238cdf0e10cSrcweir     sal_Bool bEnablePersonal = bContainsGreeting && m_pPersonalizedCB->IsChecked();
239cdf0e10cSrcweir     m_pFemaleFT->Enable(bEnablePersonal);
240cdf0e10cSrcweir     m_pFemaleLB->Enable(bEnablePersonal);
241cdf0e10cSrcweir     m_pFemalePB->Enable(bEnablePersonal);
242cdf0e10cSrcweir     m_pMaleFT->Enable(bEnablePersonal);
243cdf0e10cSrcweir     m_pMaleLB->Enable(bEnablePersonal);
244cdf0e10cSrcweir     m_pMalePB->Enable(bEnablePersonal);
245cdf0e10cSrcweir     m_pFemaleFI->Enable(bEnablePersonal);
246cdf0e10cSrcweir     m_pFemaleColumnFT->Enable(bEnablePersonal);
247cdf0e10cSrcweir     m_pFemaleColumnLB->Enable(bEnablePersonal);
248cdf0e10cSrcweir     m_pFemaleFieldFT->Enable(bEnablePersonal);
249cdf0e10cSrcweir     m_pFemaleFieldCB->Enable(bEnablePersonal);
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     m_pNeutralFT->Enable(bContainsGreeting);
252cdf0e10cSrcweir     m_pNeutralCB->Enable(bContainsGreeting);
253cdf0e10cSrcweir }
254cdf0e10cSrcweir /*-- 02.04.2004 14:17:52---------------------------------------------------
255cdf0e10cSrcweir 
256cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwMailMergeGreetingsPage(SwMailMergeWizard * _pParent)257cdf0e10cSrcweir SwMailMergeGreetingsPage::SwMailMergeGreetingsPage( SwMailMergeWizard* _pParent) :
258cdf0e10cSrcweir     svt::OWizardPage(_pParent, SW_RES(DLG_MM_GREETINGS_PAGE)),
259cdf0e10cSrcweir #ifdef MSC
260cdf0e10cSrcweir #pragma warning (disable : 4355)
261cdf0e10cSrcweir #endif
262cdf0e10cSrcweir     m_aHeaderFI(this, SW_RES(          FI_HEADER     ) ),
263cdf0e10cSrcweir     m_aGreetingLineCB(this, SW_RES(    CB_GREETINGLINE ) ),
264cdf0e10cSrcweir     m_aPersonalizedCB(this, SW_RES(      CB_PERSONALIZED ) ),
265cdf0e10cSrcweir     m_aFemaleFT(this, SW_RES(            FT_FEMALE   ) ),
266cdf0e10cSrcweir     m_aFemaleLB(this, SW_RES(            LB_FEMALE   ) ),
267cdf0e10cSrcweir     m_aFemalePB(this, SW_RES(            PB_FEMALE   ) ),
268cdf0e10cSrcweir     m_aMaleFT(this, SW_RES(              FT_MALE     ) ),
269cdf0e10cSrcweir     m_aMaleLB(this, SW_RES(              LB_MALE     ) ),
270cdf0e10cSrcweir     m_aMalePB(this, SW_RES(              PB_MALE     ) ),
271cdf0e10cSrcweir     m_aFemaleFI(this, SW_RES(            FI_FEMALE      ) ),
272cdf0e10cSrcweir     m_aFemaleColumnFT(this, SW_RES(      FT_FEMALECOLUMN ) ),
273cdf0e10cSrcweir     m_aFemaleColumnLB(this, SW_RES(      LB_FEMALECOLUMN ) ),
274cdf0e10cSrcweir     m_aFemaleFieldFT(this, SW_RES(       FT_FEMALEFIELD  ) ),
275cdf0e10cSrcweir     m_aFemaleFieldCB(this, SW_RES(       CB_FEMALEFIELD  ) ),
276cdf0e10cSrcweir     m_aNeutralFT(this, SW_RES(           FT_NEUTRAL      ) ),
277cdf0e10cSrcweir     m_aNeutralCB(this, SW_RES(         CB_NEUTRAL      ) ),
278cdf0e10cSrcweir     m_aPreviewFI(       this, SW_RES( FI_PREVIEW     ) ),
279cdf0e10cSrcweir     m_aPreviewWIN(      this, SW_RES( WIN_PREVIEW    ) ),
280cdf0e10cSrcweir     m_aAssignPB(        this, SW_RES( PB_ASSIGN      ) ),
281cdf0e10cSrcweir     m_aDocumentIndexFI( this, SW_RES( FI_DOCINDEX    ) ),
282cdf0e10cSrcweir     m_aPrevSetIB(       this, SW_RES( IB_PREVSET     ) ),
283cdf0e10cSrcweir     m_aNextSetIB(       this, SW_RES( IB_NEXTSET     ) ),
284cdf0e10cSrcweir     m_sDocument(        SW_RES(       STR_DOCUMENT  ) )
285cdf0e10cSrcweir #ifdef MSC
286cdf0e10cSrcweir #pragma warning (default : 4355)
287cdf0e10cSrcweir #endif
288cdf0e10cSrcweir {
289cdf0e10cSrcweir     m_pWizard = _pParent;
290cdf0e10cSrcweir     m_pGreetingLineCB = &m_aGreetingLineCB;
291cdf0e10cSrcweir     m_pPersonalizedCB = &m_aPersonalizedCB;
292cdf0e10cSrcweir     m_pFemaleFT = &      m_aFemaleFT;
293cdf0e10cSrcweir     m_pFemaleLB = &      m_aFemaleLB;
294cdf0e10cSrcweir     m_pFemalePB = &      m_aFemalePB;
295cdf0e10cSrcweir     m_pMaleFT = &        m_aMaleFT;
296cdf0e10cSrcweir     m_pMaleLB = &        m_aMaleLB;
297cdf0e10cSrcweir     m_pMalePB = &        m_aMalePB;
298cdf0e10cSrcweir     m_pFemaleFI = &      m_aFemaleFI;
299cdf0e10cSrcweir     m_pFemaleColumnFT = &m_aFemaleColumnFT;
300cdf0e10cSrcweir     m_pFemaleColumnLB = &m_aFemaleColumnLB;
301cdf0e10cSrcweir     m_pFemaleFieldFT = & m_aFemaleFieldFT;
302cdf0e10cSrcweir     m_pFemaleFieldCB = & m_aFemaleFieldCB;
303cdf0e10cSrcweir     m_pNeutralFT = &     m_aNeutralFT;
304cdf0e10cSrcweir     m_pNeutralCB    = &m_aNeutralCB;
305cdf0e10cSrcweir     m_bIsTabPage = true;
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     m_pPersonalizedCB->SetHelpId(   HID_MM_GREETINGS_CB_PERSONALIZED);
308cdf0e10cSrcweir     m_pFemaleLB->SetHelpId(         HID_MM_GREETINGS_LB_FEMALE      );
309cdf0e10cSrcweir     m_pFemalePB->SetHelpId(         HID_MM_GREETINGS_PB_FEMALE      );
310cdf0e10cSrcweir     m_pMaleLB->SetHelpId(           HID_MM_GREETINGS_LB_MALE        );
311cdf0e10cSrcweir     m_pMalePB->SetHelpId(           HID_MM_GREETINGS_PB_MALE        );
312cdf0e10cSrcweir     m_pFemaleColumnLB->SetHelpId(   HID_MM_GREETINGS_LB_FEMALECOLUMN);
313cdf0e10cSrcweir     m_pFemaleFieldCB->SetHelpId(    HID_MM_GREETINGS_CB_FEMALEFIELD );
314cdf0e10cSrcweir     m_pNeutralCB->SetHelpId(        HID_MM_GREETINGS_CB_NEUTRAL     );
315cdf0e10cSrcweir 
316cdf0e10cSrcweir     FreeResource();
317cdf0e10cSrcweir     m_aGreetingLineCB.SetClickHdl(LINK(this, SwMailMergeGreetingsPage, ContainsHdl_Impl));
318cdf0e10cSrcweir     Link aIndividualLink = LINK(this, SwGreetingsHandler, IndividualHdl_Impl);
319cdf0e10cSrcweir     m_aPersonalizedCB.SetClickHdl(aIndividualLink);
320cdf0e10cSrcweir     Link aGreetingLink = LINK(this, SwGreetingsHandler, GreetingHdl_Impl);
321cdf0e10cSrcweir     m_aFemalePB.SetClickHdl(aGreetingLink);
322cdf0e10cSrcweir     m_aMalePB.SetClickHdl(aGreetingLink);
323cdf0e10cSrcweir     m_aAssignPB.SetClickHdl(LINK(this, SwMailMergeGreetingsPage, AssignHdl_Impl));
324cdf0e10cSrcweir     Link aLBoxLink = LINK(this, SwMailMergeGreetingsPage, GreetingSelectHdl_Impl);
325cdf0e10cSrcweir     m_aFemaleLB.SetSelectHdl(aLBoxLink);
326cdf0e10cSrcweir     m_aMaleLB.SetSelectHdl(aLBoxLink);
327cdf0e10cSrcweir     m_aFemaleColumnLB.SetSelectHdl(aLBoxLink);
328cdf0e10cSrcweir     m_aFemaleFieldCB.SetSelectHdl(aLBoxLink);
329cdf0e10cSrcweir     m_aFemaleFieldCB.SetModifyHdl(aLBoxLink);
330cdf0e10cSrcweir     m_aNeutralCB.SetSelectHdl(aLBoxLink);
331cdf0e10cSrcweir     m_aNeutralCB.SetModifyHdl(aLBoxLink);
332cdf0e10cSrcweir 
333cdf0e10cSrcweir     Link aDataLink = LINK(this, SwMailMergeGreetingsPage, InsertDataHdl_Impl);
334cdf0e10cSrcweir     m_aPrevSetIB.SetClickHdl(aDataLink);
335cdf0e10cSrcweir     m_aNextSetIB.SetClickHdl(aDataLink);
336cdf0e10cSrcweir 
337cdf0e10cSrcweir 
338cdf0e10cSrcweir     SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
339cdf0e10cSrcweir     m_aGreetingLineCB.Check(rConfig.IsGreetingLine(sal_False));
340cdf0e10cSrcweir     m_aPersonalizedCB.Check(rConfig.IsIndividualGreeting(sal_False));
341cdf0e10cSrcweir     ContainsHdl_Impl(&m_aGreetingLineCB);
342cdf0e10cSrcweir     aIndividualLink.Call(0);
343cdf0e10cSrcweir 
344cdf0e10cSrcweir     lcl_FillGreetingsBox(m_aFemaleLB, rConfig, SwMailMergeConfigItem::FEMALE);
345cdf0e10cSrcweir     lcl_FillGreetingsBox(m_aMaleLB, rConfig, SwMailMergeConfigItem::MALE);
346cdf0e10cSrcweir     lcl_FillGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
347cdf0e10cSrcweir 
348cdf0e10cSrcweir     String sTemp(m_sDocument);
349cdf0e10cSrcweir     sTemp.SearchAndReplaceAscii("%1", String::CreateFromInt32(1));
350cdf0e10cSrcweir     m_aDocumentIndexFI.SetText(sTemp);
351cdf0e10cSrcweir }
352cdf0e10cSrcweir /*-- 02.04.2004 14:17:52---------------------------------------------------
353cdf0e10cSrcweir 
354cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwMailMergeGreetingsPage()355cdf0e10cSrcweir SwMailMergeGreetingsPage::~SwMailMergeGreetingsPage()
356cdf0e10cSrcweir {
357cdf0e10cSrcweir }
358cdf0e10cSrcweir /*-- 18.06.2004 12:13:53---------------------------------------------------
359cdf0e10cSrcweir 
360cdf0e10cSrcweir   -----------------------------------------------------------------------*/
ActivatePage()361cdf0e10cSrcweir void SwMailMergeGreetingsPage::ActivatePage()
362cdf0e10cSrcweir {
363cdf0e10cSrcweir     SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
364cdf0e10cSrcweir 
365cdf0e10cSrcweir     //try to find the gender setting
366cdf0e10cSrcweir     m_aFemaleColumnLB.Clear();
367cdf0e10cSrcweir     Reference< sdbcx::XColumnsSupplier > xColsSupp = rConfig.GetColumnsSupplier();
368cdf0e10cSrcweir     if(xColsSupp.is())
369cdf0e10cSrcweir     {
370cdf0e10cSrcweir         Reference < container::XNameAccess> xColAccess = xColsSupp->getColumns();
371cdf0e10cSrcweir         Sequence< ::rtl::OUString > aColumns = xColAccess->getElementNames();
372cdf0e10cSrcweir         for(sal_Int32 nName = 0; nName < aColumns.getLength(); ++nName)
373cdf0e10cSrcweir             m_aFemaleColumnLB.InsertEntry(aColumns[nName]);
374cdf0e10cSrcweir     }
375cdf0e10cSrcweir 
376cdf0e10cSrcweir     ::rtl::OUString sGenderColumn = rConfig.GetAssignedColumn(MM_PART_GENDER);
377cdf0e10cSrcweir     m_aFemaleColumnLB.SelectEntry(sGenderColumn);
378cdf0e10cSrcweir     m_aFemaleColumnLB.SaveValue();
379cdf0e10cSrcweir 
380cdf0e10cSrcweir     m_aFemaleFieldCB.SetText(rConfig.GetFemaleGenderValue());
381cdf0e10cSrcweir     m_aFemaleFieldCB.SaveValue();
382cdf0e10cSrcweir 
383cdf0e10cSrcweir     UpdatePreview();
384cdf0e10cSrcweir     m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
385cdf0e10cSrcweir }
386cdf0e10cSrcweir /*-- 11.05.2004 14:47:10---------------------------------------------------
387cdf0e10cSrcweir 
388cdf0e10cSrcweir   -----------------------------------------------------------------------*/
commitPage(::svt::WizardTypes::CommitPageReason)389cdf0e10cSrcweir sal_Bool    SwMailMergeGreetingsPage::commitPage( ::svt::WizardTypes::CommitPageReason )
390cdf0e10cSrcweir {
391cdf0e10cSrcweir     SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     if(m_aFemaleColumnLB.GetSelectEntryPos() != m_aFemaleColumnLB.GetSavedValue())
394cdf0e10cSrcweir     {
395cdf0e10cSrcweir         const SwDBData& rDBData = rConfig.GetCurrentDBData();
396cdf0e10cSrcweir         Sequence< ::rtl::OUString> aAssignment = rConfig.GetColumnAssignment( rDBData );
397cdf0e10cSrcweir         if(aAssignment.getLength() <= MM_PART_GENDER)
398cdf0e10cSrcweir             aAssignment.realloc(MM_PART_GENDER + 1);
399cdf0e10cSrcweir         aAssignment[MM_PART_GENDER] = m_aFemaleColumnLB.GetSelectEntry();
400cdf0e10cSrcweir         rConfig.SetColumnAssignment( rDBData, aAssignment );
401cdf0e10cSrcweir     }
402cdf0e10cSrcweir     if(m_aFemaleFieldCB.GetText() != m_aFemaleFieldCB.GetSavedValue())
403cdf0e10cSrcweir         rConfig.SetFemaleGenderValue(m_aFemaleFieldCB.GetText());
404cdf0e10cSrcweir 
405cdf0e10cSrcweir     lcl_StoreGreetingsBox(m_aFemaleLB, rConfig, SwMailMergeConfigItem::FEMALE);
406cdf0e10cSrcweir     lcl_StoreGreetingsBox(m_aMaleLB, rConfig, SwMailMergeConfigItem::MALE);
407cdf0e10cSrcweir 
408cdf0e10cSrcweir     sal_uInt16 nCurrentTextPos = m_aNeutralCB.GetEntryPos( m_aNeutralCB.GetText() );
409cdf0e10cSrcweir     if(LISTBOX_ENTRY_NOTFOUND == nCurrentTextPos)
410cdf0e10cSrcweir     {
411cdf0e10cSrcweir         sal_uInt16 nCount = m_aNeutralCB.GetEntryCount();
412cdf0e10cSrcweir         m_aNeutralCB.InsertEntry( m_aNeutralCB.GetText(), nCount );
413cdf0e10cSrcweir         m_aNeutralCB.SelectEntryPos(nCount);
414cdf0e10cSrcweir     }
415cdf0e10cSrcweir     lcl_StoreGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
416cdf0e10cSrcweir     rConfig.SetGreetingLine(m_aGreetingLineCB.IsChecked(), sal_False);
417cdf0e10cSrcweir     rConfig.SetIndividualGreeting(m_aPersonalizedCB.IsChecked(), sal_False);
418cdf0e10cSrcweir     return sal_True;
419cdf0e10cSrcweir }
420cdf0e10cSrcweir /*-- 30.04.2004 10:42:57---------------------------------------------------
421cdf0e10cSrcweir 
422cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwMailMergeGreetingsPage,ContainsHdl_Impl,CheckBox *,pBox)423cdf0e10cSrcweir IMPL_LINK(SwMailMergeGreetingsPage, ContainsHdl_Impl, CheckBox*, pBox)
424cdf0e10cSrcweir {
425cdf0e10cSrcweir     sal_Bool bContainsGreeting = pBox->IsChecked();
426cdf0e10cSrcweir     SwGreetingsHandler::Contains(bContainsGreeting);
427cdf0e10cSrcweir     m_aPreviewFI. Enable(bContainsGreeting);
428cdf0e10cSrcweir     m_aPreviewWIN.Enable(bContainsGreeting);
429cdf0e10cSrcweir     m_aAssignPB.  Enable(bContainsGreeting);
430cdf0e10cSrcweir     m_aDocumentIndexFI.  Enable(bContainsGreeting);
431cdf0e10cSrcweir     m_aPrevSetIB.Enable(bContainsGreeting);
432cdf0e10cSrcweir     m_aNextSetIB.Enable(bContainsGreeting);
433cdf0e10cSrcweir     SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
434cdf0e10cSrcweir     rConfig.SetGreetingLine(m_aGreetingLineCB.IsChecked(), sal_False);
435cdf0e10cSrcweir     m_pWizard->UpdateRoadmap();
436cdf0e10cSrcweir     return 0;
437cdf0e10cSrcweir }
438cdf0e10cSrcweir /*-- 07.05.2004 12:56:42---------------------------------------------------
439cdf0e10cSrcweir 
440cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwMailMergeGreetingsPage,InsertDataHdl_Impl,ImageButton *,pButton)441cdf0e10cSrcweir IMPL_LINK(SwMailMergeGreetingsPage, InsertDataHdl_Impl, ImageButton*, pButton)
442cdf0e10cSrcweir {
443cdf0e10cSrcweir     //if no pButton is given, the first set has to be pre-set
444cdf0e10cSrcweir     SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
445cdf0e10cSrcweir     if(!pButton)
446cdf0e10cSrcweir     {
447cdf0e10cSrcweir         rConfig.GetResultSet();
448cdf0e10cSrcweir     }
449cdf0e10cSrcweir     else
450cdf0e10cSrcweir     {
451cdf0e10cSrcweir         sal_Bool bNext = pButton == &m_aNextSetIB;
452cdf0e10cSrcweir         sal_Int32 nPos = rConfig.GetResultSetPosition();
453cdf0e10cSrcweir         rConfig.MoveResultSet( bNext ? ++nPos : --nPos);
454cdf0e10cSrcweir     }
455cdf0e10cSrcweir     sal_Int32 nPos = rConfig.GetResultSetPosition();
456cdf0e10cSrcweir     sal_Bool bEnable = sal_True;
457cdf0e10cSrcweir     if(nPos < 1)
458cdf0e10cSrcweir     {
459cdf0e10cSrcweir         bEnable = sal_False;
460cdf0e10cSrcweir         nPos = 1;
461cdf0e10cSrcweir     }
462cdf0e10cSrcweir     else
463cdf0e10cSrcweir         UpdatePreview();
464cdf0e10cSrcweir     m_aPrevSetIB.Enable(bEnable);
465cdf0e10cSrcweir     m_aNextSetIB.Enable(bEnable);
466cdf0e10cSrcweir     m_aDocumentIndexFI.Enable(bEnable);
467cdf0e10cSrcweir     String sTemp(m_sDocument);
468cdf0e10cSrcweir     sTemp.SearchAndReplaceAscii("%1", String::CreateFromInt32(nPos));
469cdf0e10cSrcweir     m_aDocumentIndexFI.SetText(sTemp);
470cdf0e10cSrcweir     return 0;
471cdf0e10cSrcweir }
472cdf0e10cSrcweir /*-- 17.05.2004 15:11:19---------------------------------------------------
473cdf0e10cSrcweir 
474cdf0e10cSrcweir   -----------------------------------------------------------------------*/
SwMailBodyDialog(Window * pParent,SwMailMergeWizard * _pWizard)475cdf0e10cSrcweir SwMailBodyDialog::SwMailBodyDialog(Window* pParent, SwMailMergeWizard* _pWizard) :
476cdf0e10cSrcweir     SfxModalDialog(pParent, SW_RES(DLG_MM_MAILBODY)),
477cdf0e10cSrcweir #ifdef MSC
478cdf0e10cSrcweir #pragma warning (disable : 4355)
479cdf0e10cSrcweir #endif
480cdf0e10cSrcweir     m_aGreetingLineCB(this, SW_RES(    CB_GREETINGLINE ) ),
481cdf0e10cSrcweir     m_aPersonalizedCB(this, SW_RES(      CB_PERSONALIZED ) ),
482cdf0e10cSrcweir     m_aFemaleFT(this, SW_RES(            FT_FEMALE   ) ),
483cdf0e10cSrcweir     m_aFemaleLB(this, SW_RES(            LB_FEMALE   ) ),
484cdf0e10cSrcweir     m_aFemalePB(this, SW_RES(            PB_FEMALE   ) ),
485cdf0e10cSrcweir     m_aMaleFT(this, SW_RES(              FT_MALE     ) ),
486cdf0e10cSrcweir     m_aMaleLB(this, SW_RES(              LB_MALE     ) ),
487cdf0e10cSrcweir     m_aMalePB(this, SW_RES(              PB_MALE     ) ),
488cdf0e10cSrcweir     m_aFemaleFI(this, SW_RES(            FI_FEMALE      ) ),
489cdf0e10cSrcweir     m_aFemaleColumnFT(this, SW_RES(      FT_FEMALECOLUMN ) ),
490cdf0e10cSrcweir     m_aFemaleColumnLB(this, SW_RES(      LB_FEMALECOLUMN ) ),
491cdf0e10cSrcweir     m_aFemaleFieldFT(this, SW_RES(       FT_FEMALEFIELD  ) ),
492cdf0e10cSrcweir     m_aFemaleFieldCB(this, SW_RES(       CB_FEMALEFIELD  ) ),
493cdf0e10cSrcweir     m_aNeutralFT(this, SW_RES(           FT_NEUTRAL      ) ),
494cdf0e10cSrcweir     m_aNeutralCB(this, SW_RES(         CB_NEUTRAL      ) ),
495cdf0e10cSrcweir     m_aBodyFT(   this, SW_RES(         FT_BODY         ) ),
496cdf0e10cSrcweir     m_aBodyMLE(   this, SW_RES(        MLE_BODY        ) ),
497cdf0e10cSrcweir     m_aSeparatorFL(   this, SW_RES(    FL_SEPARATOR    ) ),
498cdf0e10cSrcweir     m_aOK(   this, SW_RES(             PB_OK           ) ),
499cdf0e10cSrcweir     m_aCancel(   this, SW_RES(         PB_CANCEL       ) ),
500cdf0e10cSrcweir     m_aHelp(   this, SW_RES(           PB_HELP         ) )
501cdf0e10cSrcweir #ifdef MSC
502cdf0e10cSrcweir #pragma warning (default : 4355)
503cdf0e10cSrcweir #endif
504cdf0e10cSrcweir {
505cdf0e10cSrcweir     m_pWizard = _pWizard;
506cdf0e10cSrcweir     m_pGreetingLineCB = &m_aGreetingLineCB;
507cdf0e10cSrcweir     m_pPersonalizedCB = &m_aPersonalizedCB;
508cdf0e10cSrcweir     m_pFemaleFT = &      m_aFemaleFT;
509cdf0e10cSrcweir     m_pFemaleLB = &      m_aFemaleLB;
510cdf0e10cSrcweir     m_pFemalePB = &      m_aFemalePB;
511cdf0e10cSrcweir     m_pMaleFT = &        m_aMaleFT;
512cdf0e10cSrcweir     m_pMaleLB = &        m_aMaleLB;
513cdf0e10cSrcweir     m_pMalePB = &        m_aMalePB;
514cdf0e10cSrcweir     m_pFemaleFI = &      m_aFemaleFI;
515cdf0e10cSrcweir     m_pFemaleColumnFT = &m_aFemaleColumnFT;
516cdf0e10cSrcweir     m_pFemaleColumnLB = &m_aFemaleColumnLB;
517cdf0e10cSrcweir     m_pFemaleFieldFT = & m_aFemaleFieldFT;
518cdf0e10cSrcweir     m_pFemaleFieldCB = & m_aFemaleFieldCB;
519cdf0e10cSrcweir     m_pNeutralFT = &     m_aNeutralFT;
520cdf0e10cSrcweir     m_pNeutralCB    = &m_aNeutralCB;
521cdf0e10cSrcweir     m_bIsTabPage = false;
522cdf0e10cSrcweir 
523cdf0e10cSrcweir     m_pPersonalizedCB->SetHelpId(   HID_MM_BODY_CB_PERSONALIZED     );
524cdf0e10cSrcweir     m_pFemaleLB->SetHelpId(         HID_MM_BODY_LB_FEMALE           );
525cdf0e10cSrcweir     m_pFemalePB->SetHelpId(         HID_MM_BODY_PB_FEMALE           );
526cdf0e10cSrcweir     m_pMaleLB->SetHelpId(           HID_MM_BODY_LB_MALE             );
527cdf0e10cSrcweir     m_pMalePB->SetHelpId(           HID_MM_BODY_PB_MALE             );
528cdf0e10cSrcweir     m_pFemaleColumnLB->SetHelpId(   HID_MM_BODY_LB_FEMALECOLUMN     );
529cdf0e10cSrcweir     m_pFemaleFieldCB->SetHelpId(    HID_MM_BODY_CB_FEMALEFIELD      );
530cdf0e10cSrcweir     m_pNeutralCB->SetHelpId(        HID_MM_BODY_CB_NEUTRAL          );
531cdf0e10cSrcweir 
532cdf0e10cSrcweir     FreeResource();
533cdf0e10cSrcweir     m_aGreetingLineCB.SetClickHdl(LINK(this, SwMailBodyDialog, ContainsHdl_Impl));
534cdf0e10cSrcweir     Link aIndividualLink = LINK(this, SwGreetingsHandler, IndividualHdl_Impl);
535cdf0e10cSrcweir     m_aPersonalizedCB.SetClickHdl(aIndividualLink);
536cdf0e10cSrcweir     Link aGreetingLink = LINK(this, SwGreetingsHandler, GreetingHdl_Impl);
537cdf0e10cSrcweir     m_aFemalePB.SetClickHdl(aGreetingLink);
538cdf0e10cSrcweir     m_aMalePB.SetClickHdl(aGreetingLink);
539cdf0e10cSrcweir     m_aOK.SetClickHdl(LINK(this, SwMailBodyDialog, OKHdl));
540cdf0e10cSrcweir 
541cdf0e10cSrcweir     SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
542cdf0e10cSrcweir     m_aGreetingLineCB.Check(rConfig.IsGreetingLine(sal_True));
543cdf0e10cSrcweir     m_aPersonalizedCB.Check(rConfig.IsIndividualGreeting(sal_True));
544cdf0e10cSrcweir     ContainsHdl_Impl(&m_aGreetingLineCB);
545cdf0e10cSrcweir     aIndividualLink.Call(0);
546cdf0e10cSrcweir 
547cdf0e10cSrcweir     lcl_FillGreetingsBox(m_aFemaleLB, rConfig, SwMailMergeConfigItem::FEMALE);
548cdf0e10cSrcweir     lcl_FillGreetingsBox(m_aMaleLB, rConfig, SwMailMergeConfigItem::MALE);
549cdf0e10cSrcweir     lcl_FillGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
550cdf0e10cSrcweir 
551cdf0e10cSrcweir     //try to find the gender setting
552cdf0e10cSrcweir     m_aFemaleColumnLB.Clear();
553cdf0e10cSrcweir     Reference< sdbcx::XColumnsSupplier > xColsSupp = rConfig.GetColumnsSupplier();
554cdf0e10cSrcweir     if(xColsSupp.is())
555cdf0e10cSrcweir     {
556cdf0e10cSrcweir         Reference < container::XNameAccess> xColAccess = xColsSupp->getColumns();
557cdf0e10cSrcweir         Sequence< ::rtl::OUString > aColumns = xColAccess->getElementNames();
558cdf0e10cSrcweir         for(sal_Int32 nName = 0; nName < aColumns.getLength(); ++nName)
559cdf0e10cSrcweir             m_aFemaleColumnLB.InsertEntry(aColumns[nName]);
560cdf0e10cSrcweir     }
561cdf0e10cSrcweir 
562cdf0e10cSrcweir     ::rtl::OUString sGenderColumn = rConfig.GetAssignedColumn(MM_PART_GENDER);
563cdf0e10cSrcweir     m_aFemaleColumnLB.SelectEntry(sGenderColumn);
564cdf0e10cSrcweir     m_aFemaleColumnLB.SaveValue();
565cdf0e10cSrcweir 
566cdf0e10cSrcweir     m_aFemaleFieldCB.SetText(rConfig.GetFemaleGenderValue());
567cdf0e10cSrcweir     m_aFemaleFieldCB.SaveValue();
568cdf0e10cSrcweir }
569cdf0e10cSrcweir /*-- 17.05.2004 15:13:07---------------------------------------------------
570cdf0e10cSrcweir 
571cdf0e10cSrcweir   -----------------------------------------------------------------------*/
~SwMailBodyDialog()572cdf0e10cSrcweir SwMailBodyDialog::~SwMailBodyDialog()
573cdf0e10cSrcweir {
574cdf0e10cSrcweir }
575cdf0e10cSrcweir 
576cdf0e10cSrcweir /*-- 30.04.2004 10:42:57---------------------------------------------------
577cdf0e10cSrcweir 
578cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwMailBodyDialog,ContainsHdl_Impl,CheckBox *,pBox)579cdf0e10cSrcweir IMPL_LINK(SwMailBodyDialog, ContainsHdl_Impl, CheckBox*, pBox)
580cdf0e10cSrcweir {
581cdf0e10cSrcweir     SwGreetingsHandler::Contains(pBox->IsChecked());
582cdf0e10cSrcweir     m_pWizard->GetConfigItem().SetGreetingLine(pBox->IsChecked(), sal_True);
583cdf0e10cSrcweir     return 0;
584cdf0e10cSrcweir }
585cdf0e10cSrcweir /*-- 28.06.2004 11:22:42---------------------------------------------------
586cdf0e10cSrcweir 
587cdf0e10cSrcweir   -----------------------------------------------------------------------*/
IMPL_LINK(SwMailBodyDialog,OKHdl,PushButton *,EMPTYARG)588cdf0e10cSrcweir IMPL_LINK(SwMailBodyDialog, OKHdl, PushButton*, EMPTYARG)
589cdf0e10cSrcweir {
590cdf0e10cSrcweir     SwMailMergeConfigItem& rConfigItem = m_pWizard->GetConfigItem();
591cdf0e10cSrcweir     rConfigItem.SetGreetingLine(
592cdf0e10cSrcweir                 m_aGreetingLineCB.IsChecked(), sal_False);
593cdf0e10cSrcweir     rConfigItem.SetIndividualGreeting(
594cdf0e10cSrcweir                 m_aPersonalizedCB.IsChecked(), sal_False);
595cdf0e10cSrcweir 
596cdf0e10cSrcweir     if(m_aFemaleColumnLB.GetSelectEntryPos() != m_aFemaleColumnLB.GetSavedValue())
597cdf0e10cSrcweir     {
598cdf0e10cSrcweir         const SwDBData& rDBData = rConfigItem.GetCurrentDBData();
599cdf0e10cSrcweir         Sequence< ::rtl::OUString> aAssignment = rConfigItem.GetColumnAssignment( rDBData );
600cdf0e10cSrcweir         sal_Int32 nPos = m_aFemaleColumnLB.GetSelectEntryPos();
601cdf0e10cSrcweir         if(aAssignment.getLength() < MM_PART_GENDER)
602cdf0e10cSrcweir             aAssignment.realloc(MM_PART_GENDER);
603cdf0e10cSrcweir         if( nPos > 0 )
604cdf0e10cSrcweir             aAssignment[MM_PART_GENDER] = m_aFemaleColumnLB.GetSelectEntry();
605cdf0e10cSrcweir         else
606cdf0e10cSrcweir             aAssignment[MM_PART_GENDER] = ::rtl::OUString();
607cdf0e10cSrcweir         rConfigItem.SetColumnAssignment( rDBData, aAssignment );
608cdf0e10cSrcweir     }
609cdf0e10cSrcweir     if(m_aFemaleFieldCB.GetText() != m_aFemaleFieldCB.GetSavedValue())
610cdf0e10cSrcweir         rConfigItem.SetFemaleGenderValue(m_aFemaleFieldCB.GetText());
611cdf0e10cSrcweir 
612cdf0e10cSrcweir     EndDialog(RET_OK);
613cdf0e10cSrcweir     return 0;
614cdf0e10cSrcweir }
615cdf0e10cSrcweir 
616