2004-09-20 12:15:57 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 17:36:23 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
2008-04-10 17:36:23 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
2008-04-10 17:36:23 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
2008-04-10 17:36:23 +00:00
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
2008-04-10 17:36:23 +00:00
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
2008-04-10 17:36:23 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
2004-09-20 12:15:57 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
2004-09-29 08:33:13 +00:00
|
|
|
|
2006-09-16 21:46:12 +00:00
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
|
|
#include "precompiled_sw.hxx"
|
|
|
|
|
2004-09-29 08:33:13 +00:00
|
|
|
#ifdef SW_DLLIMPLEMENTATION
|
|
|
|
#undef SW_DLLIMPLEMENTATION
|
|
|
|
#endif
|
2004-09-20 12:15:57 +00:00
|
|
|
#include <mmgreetingspage.hxx>
|
|
|
|
#include <mailmergewizard.hxx>
|
|
|
|
#include <mmconfigitem.hxx>
|
|
|
|
#include <mmaddressblockpage.hxx>
|
|
|
|
#include <swtypes.hxx>
|
|
|
|
#include <vcl/msgbox.hxx>
|
|
|
|
#include <mmgreetingspage.hrc>
|
|
|
|
#include <dbui.hrc>
|
2009-08-26 11:47:12 +00:00
|
|
|
#include <com/sun/star/sdb/XColumn.hpp>
|
2004-09-20 12:15:57 +00:00
|
|
|
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
|
|
|
|
#include <com/sun/star/container/XNameAccess.hpp>
|
2005-05-18 10:32:21 +00:00
|
|
|
#include <helpid.h>
|
2004-09-20 12:15:57 +00:00
|
|
|
|
|
|
|
using namespace svt;
|
|
|
|
using namespace ::com::sun::star;
|
2007-09-27 10:33:48 +00:00
|
|
|
using namespace ::com::sun::star::uno;
|
2004-09-20 12:15:57 +00:00
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
void lcl_FillGreetingsBox(ListBox& rBox,
|
|
|
|
SwMailMergeConfigItem& rConfig,
|
|
|
|
SwMailMergeConfigItem::Gender eType)
|
|
|
|
{
|
|
|
|
const Sequence< ::rtl::OUString> rEntries = rConfig.GetGreetings(eType);
|
|
|
|
for(sal_Int32 nEntry = 0; nEntry < rEntries.getLength(); ++nEntry)
|
|
|
|
rBox.InsertEntry(rEntries[nEntry]);
|
|
|
|
rBox.SelectEntryPos((USHORT)rConfig.GetCurrentGreeting(eType));
|
|
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
void lcl_FillGreetingsBox(ComboBox& rBox,
|
|
|
|
SwMailMergeConfigItem& rConfig,
|
|
|
|
SwMailMergeConfigItem::Gender eType)
|
|
|
|
{
|
|
|
|
const Sequence< ::rtl::OUString> rEntries = rConfig.GetGreetings(eType);
|
|
|
|
for(sal_Int32 nEntry = 0; nEntry < rEntries.getLength(); ++nEntry)
|
|
|
|
rBox.InsertEntry(rEntries[nEntry]);
|
|
|
|
rBox.SelectEntryPos((USHORT)rConfig.GetCurrentGreeting(eType));
|
|
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
void lcl_StoreGreetingsBox(ListBox& rBox,
|
|
|
|
SwMailMergeConfigItem& rConfig,
|
|
|
|
SwMailMergeConfigItem::Gender eType)
|
|
|
|
{
|
|
|
|
Sequence< ::rtl::OUString> aEntries(rBox.GetEntryCount());
|
|
|
|
::rtl::OUString* pEntries = aEntries.getArray();
|
|
|
|
for(USHORT nEntry = 0; nEntry < rBox.GetEntryCount(); ++nEntry)
|
|
|
|
pEntries[nEntry] = rBox.GetEntry(nEntry);
|
|
|
|
rConfig.SetGreetings(eType, aEntries);
|
|
|
|
rConfig.SetCurrentGreeting(eType, rBox.GetSelectEntryPos());
|
|
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
void lcl_StoreGreetingsBox(ComboBox& rBox,
|
|
|
|
SwMailMergeConfigItem& rConfig,
|
|
|
|
SwMailMergeConfigItem::Gender eType)
|
|
|
|
{
|
|
|
|
Sequence< ::rtl::OUString> aEntries(rBox.GetEntryCount());
|
|
|
|
::rtl::OUString* pEntries = aEntries.getArray();
|
|
|
|
for(USHORT nEntry = 0; nEntry < rBox.GetEntryCount(); ++nEntry)
|
|
|
|
pEntries[nEntry] = rBox.GetEntry(nEntry);
|
|
|
|
rConfig.SetGreetings(eType, aEntries);
|
|
|
|
rConfig.SetCurrentGreeting(eType, rBox.GetSelectEntryPos());
|
|
|
|
}
|
|
|
|
/*-- 30.04.2004 10:42:57---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwGreetingsHandler, IndividualHdl_Impl, CheckBox*, EMPTYARG)
|
|
|
|
{
|
|
|
|
BOOL bIndividual = m_pPersonalizedCB->IsEnabled() && m_pPersonalizedCB->IsChecked();
|
|
|
|
m_pFemaleFT->Enable(bIndividual);
|
|
|
|
m_pFemaleLB->Enable(bIndividual);
|
|
|
|
m_pFemalePB->Enable(bIndividual);
|
|
|
|
m_pMaleFT->Enable(bIndividual);
|
|
|
|
m_pMaleLB->Enable(bIndividual);
|
|
|
|
m_pMalePB->Enable(bIndividual);
|
|
|
|
m_pFemaleFI->Enable(bIndividual);
|
|
|
|
m_pFemaleColumnFT->Enable(bIndividual);
|
|
|
|
m_pFemaleColumnLB->Enable(bIndividual);
|
|
|
|
m_pFemaleFieldFT->Enable(bIndividual);
|
|
|
|
m_pFemaleFieldCB->Enable(bIndividual);
|
2006-03-29 07:07:50 +00:00
|
|
|
|
|
|
|
if( m_bIsTabPage )
|
|
|
|
{
|
|
|
|
m_pWizard->GetConfigItem().SetIndividualGreeting(bIndividual, sal_False);
|
|
|
|
m_pWizard->UpdateRoadmap();
|
|
|
|
m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
|
|
|
|
}
|
2009-08-26 11:47:12 +00:00
|
|
|
UpdatePreview();
|
2004-09-20 12:15:57 +00:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 30.04.2004 10:42:57---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwGreetingsHandler, GreetingHdl_Impl, PushButton*, pButton)
|
|
|
|
{
|
|
|
|
SwCustomizeAddressBlockDialog* pDlg =
|
|
|
|
new SwCustomizeAddressBlockDialog(pButton, m_pWizard->GetConfigItem(),
|
|
|
|
pButton == m_pMalePB ?
|
|
|
|
SwCustomizeAddressBlockDialog::GREETING_MALE :
|
|
|
|
SwCustomizeAddressBlockDialog::GREETING_FEMALE );
|
|
|
|
if(RET_OK == pDlg->Execute())
|
|
|
|
{
|
|
|
|
ListBox* pToInsert = pButton == m_pMalePB ? m_pMaleLB : m_pFemaleLB;
|
|
|
|
pToInsert->SelectEntryPos(pToInsert->InsertEntry(pDlg->GetAddress()));
|
2006-01-06 12:02:38 +00:00
|
|
|
if(m_bIsTabPage)
|
2006-03-29 07:07:50 +00:00
|
|
|
{
|
|
|
|
m_pWizard->UpdateRoadmap();
|
2006-01-06 12:02:38 +00:00
|
|
|
m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
|
2006-03-29 07:07:50 +00:00
|
|
|
}
|
2009-08-26 11:47:12 +00:00
|
|
|
UpdatePreview();
|
2004-09-20 12:15:57 +00:00
|
|
|
}
|
|
|
|
delete pDlg;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 16.06.2004 10:56:21---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
void SwGreetingsHandler::UpdatePreview()
|
|
|
|
{
|
|
|
|
//the base class does nothing
|
|
|
|
}
|
|
|
|
/*-- 30.04.2004 10:42:59---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwMailMergeGreetingsPage, AssignHdl_Impl, PushButton*, pButton)
|
|
|
|
{
|
|
|
|
String sPreview = m_aFemaleLB.GetSelectEntry();
|
|
|
|
sPreview += '\n';
|
|
|
|
sPreview += m_aMaleLB.GetSelectEntry();
|
|
|
|
SwAssignFieldsDialog* pDlg =
|
|
|
|
new SwAssignFieldsDialog(pButton, m_pWizard->GetConfigItem(), sPreview, false);
|
|
|
|
if(RET_OK == pDlg->Execute())
|
|
|
|
{
|
|
|
|
UpdatePreview();
|
2006-01-06 12:02:38 +00:00
|
|
|
m_pWizard->UpdateRoadmap();
|
|
|
|
m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
|
2004-09-20 12:15:57 +00:00
|
|
|
}
|
|
|
|
delete pDlg;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 05.05.2004 15:25:56---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwMailMergeGreetingsPage, GreetingSelectHdl_Impl, ListBox*, EMPTYARG)
|
|
|
|
{
|
|
|
|
UpdatePreview();
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 05.05.2004 15:23:43---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
void SwMailMergeGreetingsPage::UpdatePreview()
|
|
|
|
{
|
2009-08-26 11:47:12 +00:00
|
|
|
//find out which type of greeting should be selected:
|
|
|
|
bool bFemale = false;
|
|
|
|
bool bNoValue = !m_pFemaleColumnLB->IsEnabled();
|
|
|
|
if( !bNoValue )
|
|
|
|
{
|
|
|
|
::rtl::OUString sFemaleValue = m_aFemaleFieldCB.GetText();
|
|
|
|
::rtl::OUString sFemaleColumn = m_aFemaleColumnLB.GetSelectEntry();
|
|
|
|
Reference< sdbcx::XColumnsSupplier > xColsSupp( m_pWizard->GetConfigItem().GetResultSet(), UNO_QUERY);
|
|
|
|
Reference < container::XNameAccess> xColAccess = xColsSupp.is() ? xColsSupp->getColumns() : 0;
|
|
|
|
if(sFemaleValue.getLength() && sFemaleColumn.getLength() &&
|
|
|
|
xColAccess.is() &&
|
|
|
|
xColAccess->hasByName(sFemaleColumn))
|
|
|
|
{
|
|
|
|
//get the content and exchange it in the address string
|
|
|
|
Any aCol = xColAccess->getByName(sFemaleColumn);
|
|
|
|
Reference< sdb::XColumn > xColumn;
|
|
|
|
aCol >>= xColumn;
|
|
|
|
if(xColumn.is())
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
::rtl::OUString sFemaleColumnValue = xColumn->getString();
|
|
|
|
bFemale = sFemaleColumnValue == sFemaleValue;
|
|
|
|
//bNoValue = !sFemaleColumnValue.getLength();
|
|
|
|
if( !bNoValue )
|
|
|
|
{
|
|
|
|
//no last name value marks the greeting also als neutral
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
::rtl::OUString sLastNameColumn = rConfig.GetAssignedColumn(MM_PART_LASTNAME);
|
|
|
|
if ( xColAccess->hasByName(sLastNameColumn) )
|
|
|
|
{
|
|
|
|
aCol = xColAccess->getByName(sLastNameColumn);
|
|
|
|
aCol >>= xColumn;
|
|
|
|
::rtl::OUString sLastNameColumnValue = xColumn->getString();
|
|
|
|
bNoValue = !sLastNameColumnValue.getLength();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch( sdbc::SQLException& )
|
|
|
|
{
|
|
|
|
DBG_ERROR("SQLException caught");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
String sPreview = bFemale ? m_aFemaleLB.GetSelectEntry() :
|
|
|
|
bNoValue ? m_aNeutralCB.GetText() : m_aMaleLB.GetSelectEntry();
|
2004-09-20 12:15:57 +00:00
|
|
|
|
2006-01-06 12:02:38 +00:00
|
|
|
sPreview = SwAddressPreview::FillData(sPreview, m_pWizard->GetConfigItem());
|
|
|
|
m_aPreviewWIN.SetAddress(sPreview);
|
2004-09-20 12:15:57 +00:00
|
|
|
}
|
|
|
|
/*-- 17.05.2004 15:44:53---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
void SwGreetingsHandler::Contains(sal_Bool bContainsGreeting)
|
|
|
|
{
|
|
|
|
m_pPersonalizedCB->Enable(bContainsGreeting);
|
|
|
|
sal_Bool bEnablePersonal = bContainsGreeting && m_pPersonalizedCB->IsChecked();
|
|
|
|
m_pFemaleFT->Enable(bEnablePersonal);
|
|
|
|
m_pFemaleLB->Enable(bEnablePersonal);
|
|
|
|
m_pFemalePB->Enable(bEnablePersonal);
|
|
|
|
m_pMaleFT->Enable(bEnablePersonal);
|
|
|
|
m_pMaleLB->Enable(bEnablePersonal);
|
|
|
|
m_pMalePB->Enable(bEnablePersonal);
|
|
|
|
m_pFemaleFI->Enable(bEnablePersonal);
|
|
|
|
m_pFemaleColumnFT->Enable(bEnablePersonal);
|
|
|
|
m_pFemaleColumnLB->Enable(bEnablePersonal);
|
|
|
|
m_pFemaleFieldFT->Enable(bEnablePersonal);
|
|
|
|
m_pFemaleFieldCB->Enable(bEnablePersonal);
|
|
|
|
|
|
|
|
m_pNeutralFT->Enable(bContainsGreeting);
|
|
|
|
m_pNeutralCB->Enable(bContainsGreeting);
|
|
|
|
}
|
|
|
|
/*-- 02.04.2004 14:17:52---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
SwMailMergeGreetingsPage::SwMailMergeGreetingsPage( SwMailMergeWizard* _pParent) :
|
|
|
|
svt::OWizardPage(_pParent, SW_RES(DLG_MM_GREETINGS_PAGE)),
|
2007-09-27 10:33:48 +00:00
|
|
|
#ifdef MSC
|
2004-09-20 12:15:57 +00:00
|
|
|
#pragma warning (disable : 4355)
|
2007-09-06 13:05:50 +00:00
|
|
|
#endif
|
2007-04-26 08:03:30 +00:00
|
|
|
m_aHeaderFI(this, SW_RES( FI_HEADER ) ),
|
|
|
|
m_aGreetingLineCB(this, SW_RES( CB_GREETINGLINE ) ),
|
|
|
|
m_aPersonalizedCB(this, SW_RES( CB_PERSONALIZED ) ),
|
|
|
|
m_aFemaleFT(this, SW_RES( FT_FEMALE ) ),
|
|
|
|
m_aFemaleLB(this, SW_RES( LB_FEMALE ) ),
|
|
|
|
m_aFemalePB(this, SW_RES( PB_FEMALE ) ),
|
|
|
|
m_aMaleFT(this, SW_RES( FT_MALE ) ),
|
|
|
|
m_aMaleLB(this, SW_RES( LB_MALE ) ),
|
|
|
|
m_aMalePB(this, SW_RES( PB_MALE ) ),
|
|
|
|
m_aFemaleFI(this, SW_RES( FI_FEMALE ) ),
|
|
|
|
m_aFemaleColumnFT(this, SW_RES( FT_FEMALECOLUMN ) ),
|
|
|
|
m_aFemaleColumnLB(this, SW_RES( LB_FEMALECOLUMN ) ),
|
|
|
|
m_aFemaleFieldFT(this, SW_RES( FT_FEMALEFIELD ) ),
|
|
|
|
m_aFemaleFieldCB(this, SW_RES( CB_FEMALEFIELD ) ),
|
|
|
|
m_aNeutralFT(this, SW_RES( FT_NEUTRAL ) ),
|
|
|
|
m_aNeutralCB(this, SW_RES( CB_NEUTRAL ) ),
|
|
|
|
m_aPreviewFI( this, SW_RES( FI_PREVIEW ) ),
|
|
|
|
m_aPreviewWIN( this, SW_RES( WIN_PREVIEW ) ),
|
|
|
|
m_aAssignPB( this, SW_RES( PB_ASSIGN ) ),
|
|
|
|
m_aDocumentIndexFI( this, SW_RES( FI_DOCINDEX ) ),
|
|
|
|
m_aPrevSetIB( this, SW_RES( IB_PREVSET ) ),
|
|
|
|
m_aNextSetIB( this, SW_RES( IB_NEXTSET ) ),
|
|
|
|
m_sDocument( SW_RES( STR_DOCUMENT ) )
|
2007-09-27 10:33:48 +00:00
|
|
|
#ifdef MSC
|
2004-09-20 12:15:57 +00:00
|
|
|
#pragma warning (default : 4355)
|
2007-09-06 13:05:50 +00:00
|
|
|
#endif
|
2004-09-20 12:15:57 +00:00
|
|
|
{
|
|
|
|
m_pWizard = _pParent;
|
|
|
|
m_pGreetingLineCB = &m_aGreetingLineCB;
|
|
|
|
m_pPersonalizedCB = &m_aPersonalizedCB;
|
|
|
|
m_pFemaleFT = & m_aFemaleFT;
|
|
|
|
m_pFemaleLB = & m_aFemaleLB;
|
|
|
|
m_pFemalePB = & m_aFemalePB;
|
|
|
|
m_pMaleFT = & m_aMaleFT;
|
|
|
|
m_pMaleLB = & m_aMaleLB;
|
|
|
|
m_pMalePB = & m_aMalePB;
|
|
|
|
m_pFemaleFI = & m_aFemaleFI;
|
|
|
|
m_pFemaleColumnFT = &m_aFemaleColumnFT;
|
|
|
|
m_pFemaleColumnLB = &m_aFemaleColumnLB;
|
|
|
|
m_pFemaleFieldFT = & m_aFemaleFieldFT;
|
|
|
|
m_pFemaleFieldCB = & m_aFemaleFieldCB;
|
|
|
|
m_pNeutralFT = & m_aNeutralFT;
|
|
|
|
m_pNeutralCB = &m_aNeutralCB;
|
2006-01-06 12:02:38 +00:00
|
|
|
m_bIsTabPage = true;
|
2004-09-20 12:15:57 +00:00
|
|
|
|
2005-05-18 10:32:21 +00:00
|
|
|
m_pPersonalizedCB->SetHelpId( HID_MM_GREETINGS_CB_PERSONALIZED);
|
|
|
|
m_pFemaleLB->SetHelpId( HID_MM_GREETINGS_LB_FEMALE );
|
|
|
|
m_pFemalePB->SetHelpId( HID_MM_GREETINGS_PB_FEMALE );
|
|
|
|
m_pMaleLB->SetHelpId( HID_MM_GREETINGS_LB_MALE );
|
|
|
|
m_pMalePB->SetHelpId( HID_MM_GREETINGS_PB_MALE );
|
|
|
|
m_pFemaleColumnLB->SetHelpId( HID_MM_GREETINGS_LB_FEMALECOLUMN);
|
|
|
|
m_pFemaleFieldCB->SetHelpId( HID_MM_GREETINGS_CB_FEMALEFIELD );
|
|
|
|
m_pNeutralCB->SetHelpId( HID_MM_GREETINGS_CB_NEUTRAL );
|
|
|
|
|
2004-09-20 12:15:57 +00:00
|
|
|
FreeResource();
|
|
|
|
m_aGreetingLineCB.SetClickHdl(LINK(this, SwMailMergeGreetingsPage, ContainsHdl_Impl));
|
|
|
|
Link aIndividualLink = LINK(this, SwGreetingsHandler, IndividualHdl_Impl);
|
|
|
|
m_aPersonalizedCB.SetClickHdl(aIndividualLink);
|
|
|
|
Link aGreetingLink = LINK(this, SwGreetingsHandler, GreetingHdl_Impl);
|
|
|
|
m_aFemalePB.SetClickHdl(aGreetingLink);
|
|
|
|
m_aMalePB.SetClickHdl(aGreetingLink);
|
|
|
|
m_aAssignPB.SetClickHdl(LINK(this, SwMailMergeGreetingsPage, AssignHdl_Impl));
|
|
|
|
Link aLBoxLink = LINK(this, SwMailMergeGreetingsPage, GreetingSelectHdl_Impl);
|
|
|
|
m_aFemaleLB.SetSelectHdl(aLBoxLink);
|
|
|
|
m_aMaleLB.SetSelectHdl(aLBoxLink);
|
2009-08-26 11:47:12 +00:00
|
|
|
m_aFemaleColumnLB.SetSelectHdl(aLBoxLink);
|
|
|
|
m_aFemaleFieldCB.SetSelectHdl(aLBoxLink);
|
|
|
|
m_aFemaleFieldCB.SetModifyHdl(aLBoxLink);
|
|
|
|
m_aNeutralCB.SetSelectHdl(aLBoxLink);
|
|
|
|
m_aNeutralCB.SetModifyHdl(aLBoxLink);
|
|
|
|
|
2004-09-20 12:15:57 +00:00
|
|
|
Link aDataLink = LINK(this, SwMailMergeGreetingsPage, InsertDataHdl_Impl);
|
|
|
|
m_aPrevSetIB.SetClickHdl(aDataLink);
|
|
|
|
m_aNextSetIB.SetClickHdl(aDataLink);
|
|
|
|
|
|
|
|
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
m_aGreetingLineCB.Check(rConfig.IsGreetingLine(sal_False));
|
|
|
|
m_aPersonalizedCB.Check(rConfig.IsIndividualGreeting(sal_False));
|
|
|
|
ContainsHdl_Impl(&m_aGreetingLineCB);
|
|
|
|
aIndividualLink.Call(0);
|
|
|
|
|
|
|
|
lcl_FillGreetingsBox(m_aFemaleLB, rConfig, SwMailMergeConfigItem::FEMALE);
|
|
|
|
lcl_FillGreetingsBox(m_aMaleLB, rConfig, SwMailMergeConfigItem::MALE);
|
|
|
|
lcl_FillGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
|
|
|
|
|
|
|
|
String sTemp(m_sDocument);
|
|
|
|
sTemp.SearchAndReplaceAscii("%1", String::CreateFromInt32(1));
|
|
|
|
m_aDocumentIndexFI.SetText(sTemp);
|
|
|
|
}
|
|
|
|
/*-- 02.04.2004 14:17:52---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
SwMailMergeGreetingsPage::~SwMailMergeGreetingsPage()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
/*-- 18.06.2004 12:13:53---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
void SwMailMergeGreetingsPage::ActivatePage()
|
|
|
|
{
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
|
|
|
|
//try to find the gender setting
|
|
|
|
m_aFemaleColumnLB.Clear();
|
|
|
|
Reference< sdbcx::XColumnsSupplier > xColsSupp = rConfig.GetColumnsSupplier();
|
|
|
|
if(xColsSupp.is())
|
|
|
|
{
|
|
|
|
Reference < container::XNameAccess> xColAccess = xColsSupp->getColumns();
|
|
|
|
Sequence< ::rtl::OUString > aColumns = xColAccess->getElementNames();
|
|
|
|
for(sal_Int32 nName = 0; nName < aColumns.getLength(); ++nName)
|
|
|
|
m_aFemaleColumnLB.InsertEntry(aColumns[nName]);
|
|
|
|
}
|
|
|
|
|
|
|
|
::rtl::OUString sGenderColumn = rConfig.GetAssignedColumn(MM_PART_GENDER);
|
|
|
|
m_aFemaleColumnLB.SelectEntry(sGenderColumn);
|
|
|
|
m_aFemaleColumnLB.SaveValue();
|
|
|
|
|
|
|
|
m_aFemaleFieldCB.SetText(rConfig.GetFemaleGenderValue());
|
|
|
|
m_aFemaleFieldCB.SaveValue();
|
|
|
|
|
|
|
|
UpdatePreview();
|
2006-01-06 12:02:38 +00:00
|
|
|
m_pWizard->enableButtons(WZB_NEXT, m_pWizard->isStateEnabled(MM_PREPAREMERGEPAGE));
|
2004-09-20 12:15:57 +00:00
|
|
|
}
|
|
|
|
/*-- 11.05.2004 14:47:10---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
2010-05-25 10:17:24 +02:00
|
|
|
sal_Bool SwMailMergeGreetingsPage::commitPage( ::svt::WizardTypes::CommitPageReason )
|
2004-09-20 12:15:57 +00:00
|
|
|
{
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
|
|
|
|
if(m_aFemaleColumnLB.GetSelectEntryPos() != m_aFemaleColumnLB.GetSavedValue())
|
|
|
|
{
|
|
|
|
const SwDBData& rDBData = rConfig.GetCurrentDBData();
|
|
|
|
Sequence< ::rtl::OUString> aAssignment = rConfig.GetColumnAssignment( rDBData );
|
2005-01-28 14:29:18 +00:00
|
|
|
if(aAssignment.getLength() <= MM_PART_GENDER)
|
|
|
|
aAssignment.realloc(MM_PART_GENDER + 1);
|
2009-08-26 11:47:12 +00:00
|
|
|
aAssignment[MM_PART_GENDER] = m_aFemaleColumnLB.GetSelectEntry();
|
2004-09-20 12:15:57 +00:00
|
|
|
rConfig.SetColumnAssignment( rDBData, aAssignment );
|
|
|
|
}
|
|
|
|
if(m_aFemaleFieldCB.GetText() != m_aFemaleFieldCB.GetSavedValue())
|
|
|
|
rConfig.SetFemaleGenderValue(m_aFemaleFieldCB.GetText());
|
|
|
|
|
|
|
|
lcl_StoreGreetingsBox(m_aFemaleLB, rConfig, SwMailMergeConfigItem::FEMALE);
|
|
|
|
lcl_StoreGreetingsBox(m_aMaleLB, rConfig, SwMailMergeConfigItem::MALE);
|
2006-04-27 08:46:52 +00:00
|
|
|
|
|
|
|
USHORT nCurrentTextPos = m_aNeutralCB.GetEntryPos( m_aNeutralCB.GetText() );
|
|
|
|
if(LISTBOX_ENTRY_NOTFOUND == nCurrentTextPos)
|
|
|
|
{
|
|
|
|
USHORT nCount = m_aNeutralCB.GetEntryCount();
|
|
|
|
m_aNeutralCB.InsertEntry( m_aNeutralCB.GetText(), nCount );
|
|
|
|
m_aNeutralCB.SelectEntryPos(nCount);
|
|
|
|
}
|
2004-09-20 12:15:57 +00:00
|
|
|
lcl_StoreGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
|
|
|
|
rConfig.SetGreetingLine(m_aGreetingLineCB.IsChecked(), sal_False);
|
|
|
|
rConfig.SetIndividualGreeting(m_aPersonalizedCB.IsChecked(), sal_False);
|
|
|
|
return sal_True;
|
|
|
|
}
|
|
|
|
/*-- 30.04.2004 10:42:57---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwMailMergeGreetingsPage, ContainsHdl_Impl, CheckBox*, pBox)
|
|
|
|
{
|
|
|
|
sal_Bool bContainsGreeting = pBox->IsChecked();
|
|
|
|
SwGreetingsHandler::Contains(bContainsGreeting);
|
|
|
|
m_aPreviewFI. Enable(bContainsGreeting);
|
|
|
|
m_aPreviewWIN.Enable(bContainsGreeting);
|
|
|
|
m_aAssignPB. Enable(bContainsGreeting);
|
|
|
|
m_aDocumentIndexFI. Enable(bContainsGreeting);
|
|
|
|
m_aPrevSetIB.Enable(bContainsGreeting);
|
|
|
|
m_aNextSetIB.Enable(bContainsGreeting);
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
rConfig.SetGreetingLine(m_aGreetingLineCB.IsChecked(), sal_False);
|
|
|
|
m_pWizard->UpdateRoadmap();
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 07.05.2004 12:56:42---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwMailMergeGreetingsPage, InsertDataHdl_Impl, ImageButton*, pButton)
|
|
|
|
{
|
|
|
|
//if no pButton is given, the first set has to be pre-set
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
if(!pButton)
|
|
|
|
{
|
|
|
|
rConfig.GetResultSet();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
BOOL bNext = pButton == &m_aNextSetIB;
|
|
|
|
sal_Int32 nPos = rConfig.GetResultSetPosition();
|
|
|
|
rConfig.MoveResultSet( bNext ? ++nPos : --nPos);
|
|
|
|
}
|
|
|
|
sal_Int32 nPos = rConfig.GetResultSetPosition();
|
|
|
|
BOOL bEnable = TRUE;
|
|
|
|
if(nPos < 1)
|
|
|
|
{
|
|
|
|
bEnable = FALSE;
|
|
|
|
nPos = 1;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
UpdatePreview();
|
|
|
|
m_aPrevSetIB.Enable(bEnable);
|
|
|
|
m_aNextSetIB.Enable(bEnable);
|
|
|
|
m_aDocumentIndexFI.Enable(bEnable);
|
|
|
|
String sTemp(m_sDocument);
|
|
|
|
sTemp.SearchAndReplaceAscii("%1", String::CreateFromInt32(nPos));
|
|
|
|
m_aDocumentIndexFI.SetText(sTemp);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 17.05.2004 15:11:19---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
SwMailBodyDialog::SwMailBodyDialog(Window* pParent, SwMailMergeWizard* _pWizard) :
|
|
|
|
SfxModalDialog(pParent, SW_RES(DLG_MM_MAILBODY)),
|
2007-09-27 10:33:48 +00:00
|
|
|
#ifdef MSC
|
2004-09-20 12:15:57 +00:00
|
|
|
#pragma warning (disable : 4355)
|
2007-09-06 13:05:50 +00:00
|
|
|
#endif
|
2007-04-26 08:03:30 +00:00
|
|
|
m_aGreetingLineCB(this, SW_RES( CB_GREETINGLINE ) ),
|
|
|
|
m_aPersonalizedCB(this, SW_RES( CB_PERSONALIZED ) ),
|
|
|
|
m_aFemaleFT(this, SW_RES( FT_FEMALE ) ),
|
|
|
|
m_aFemaleLB(this, SW_RES( LB_FEMALE ) ),
|
|
|
|
m_aFemalePB(this, SW_RES( PB_FEMALE ) ),
|
|
|
|
m_aMaleFT(this, SW_RES( FT_MALE ) ),
|
|
|
|
m_aMaleLB(this, SW_RES( LB_MALE ) ),
|
|
|
|
m_aMalePB(this, SW_RES( PB_MALE ) ),
|
|
|
|
m_aFemaleFI(this, SW_RES( FI_FEMALE ) ),
|
|
|
|
m_aFemaleColumnFT(this, SW_RES( FT_FEMALECOLUMN ) ),
|
|
|
|
m_aFemaleColumnLB(this, SW_RES( LB_FEMALECOLUMN ) ),
|
|
|
|
m_aFemaleFieldFT(this, SW_RES( FT_FEMALEFIELD ) ),
|
|
|
|
m_aFemaleFieldCB(this, SW_RES( CB_FEMALEFIELD ) ),
|
|
|
|
m_aNeutralFT(this, SW_RES( FT_NEUTRAL ) ),
|
|
|
|
m_aNeutralCB(this, SW_RES( CB_NEUTRAL ) ),
|
|
|
|
m_aBodyFT( this, SW_RES( FT_BODY ) ),
|
|
|
|
m_aBodyMLE( this, SW_RES( MLE_BODY ) ),
|
|
|
|
m_aSeparatorFL( this, SW_RES( FL_SEPARATOR ) ),
|
|
|
|
m_aOK( this, SW_RES( PB_OK ) ),
|
|
|
|
m_aCancel( this, SW_RES( PB_CANCEL ) ),
|
|
|
|
m_aHelp( this, SW_RES( PB_HELP ) )
|
2007-09-27 10:33:48 +00:00
|
|
|
#ifdef MSC
|
2004-09-20 12:15:57 +00:00
|
|
|
#pragma warning (default : 4355)
|
2007-09-06 13:05:50 +00:00
|
|
|
#endif
|
2004-09-20 12:15:57 +00:00
|
|
|
{
|
|
|
|
m_pWizard = _pWizard;
|
|
|
|
m_pGreetingLineCB = &m_aGreetingLineCB;
|
|
|
|
m_pPersonalizedCB = &m_aPersonalizedCB;
|
|
|
|
m_pFemaleFT = & m_aFemaleFT;
|
|
|
|
m_pFemaleLB = & m_aFemaleLB;
|
|
|
|
m_pFemalePB = & m_aFemalePB;
|
|
|
|
m_pMaleFT = & m_aMaleFT;
|
|
|
|
m_pMaleLB = & m_aMaleLB;
|
|
|
|
m_pMalePB = & m_aMalePB;
|
|
|
|
m_pFemaleFI = & m_aFemaleFI;
|
|
|
|
m_pFemaleColumnFT = &m_aFemaleColumnFT;
|
|
|
|
m_pFemaleColumnLB = &m_aFemaleColumnLB;
|
|
|
|
m_pFemaleFieldFT = & m_aFemaleFieldFT;
|
|
|
|
m_pFemaleFieldCB = & m_aFemaleFieldCB;
|
|
|
|
m_pNeutralFT = & m_aNeutralFT;
|
|
|
|
m_pNeutralCB = &m_aNeutralCB;
|
2006-01-06 12:02:38 +00:00
|
|
|
m_bIsTabPage = false;
|
2004-09-20 12:15:57 +00:00
|
|
|
|
2005-05-18 10:32:21 +00:00
|
|
|
m_pPersonalizedCB->SetHelpId( HID_MM_BODY_CB_PERSONALIZED );
|
|
|
|
m_pFemaleLB->SetHelpId( HID_MM_BODY_LB_FEMALE );
|
|
|
|
m_pFemalePB->SetHelpId( HID_MM_BODY_PB_FEMALE );
|
|
|
|
m_pMaleLB->SetHelpId( HID_MM_BODY_LB_MALE );
|
|
|
|
m_pMalePB->SetHelpId( HID_MM_BODY_PB_MALE );
|
|
|
|
m_pFemaleColumnLB->SetHelpId( HID_MM_BODY_LB_FEMALECOLUMN );
|
|
|
|
m_pFemaleFieldCB->SetHelpId( HID_MM_BODY_CB_FEMALEFIELD );
|
|
|
|
m_pNeutralCB->SetHelpId( HID_MM_BODY_CB_NEUTRAL );
|
|
|
|
|
2004-09-20 12:15:57 +00:00
|
|
|
FreeResource();
|
|
|
|
m_aGreetingLineCB.SetClickHdl(LINK(this, SwMailBodyDialog, ContainsHdl_Impl));
|
|
|
|
Link aIndividualLink = LINK(this, SwGreetingsHandler, IndividualHdl_Impl);
|
|
|
|
m_aPersonalizedCB.SetClickHdl(aIndividualLink);
|
|
|
|
Link aGreetingLink = LINK(this, SwGreetingsHandler, GreetingHdl_Impl);
|
|
|
|
m_aFemalePB.SetClickHdl(aGreetingLink);
|
|
|
|
m_aMalePB.SetClickHdl(aGreetingLink);
|
|
|
|
m_aOK.SetClickHdl(LINK(this, SwMailBodyDialog, OKHdl));
|
|
|
|
|
|
|
|
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
|
|
|
m_aGreetingLineCB.Check(rConfig.IsGreetingLine(sal_True));
|
|
|
|
m_aPersonalizedCB.Check(rConfig.IsIndividualGreeting(sal_True));
|
|
|
|
ContainsHdl_Impl(&m_aGreetingLineCB);
|
|
|
|
aIndividualLink.Call(0);
|
|
|
|
|
|
|
|
lcl_FillGreetingsBox(m_aFemaleLB, rConfig, SwMailMergeConfigItem::FEMALE);
|
|
|
|
lcl_FillGreetingsBox(m_aMaleLB, rConfig, SwMailMergeConfigItem::MALE);
|
|
|
|
lcl_FillGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
|
|
|
|
|
|
|
|
//try to find the gender setting
|
|
|
|
m_aFemaleColumnLB.Clear();
|
|
|
|
Reference< sdbcx::XColumnsSupplier > xColsSupp = rConfig.GetColumnsSupplier();
|
|
|
|
if(xColsSupp.is())
|
|
|
|
{
|
|
|
|
Reference < container::XNameAccess> xColAccess = xColsSupp->getColumns();
|
|
|
|
Sequence< ::rtl::OUString > aColumns = xColAccess->getElementNames();
|
|
|
|
for(sal_Int32 nName = 0; nName < aColumns.getLength(); ++nName)
|
|
|
|
m_aFemaleColumnLB.InsertEntry(aColumns[nName]);
|
|
|
|
}
|
|
|
|
|
|
|
|
::rtl::OUString sGenderColumn = rConfig.GetAssignedColumn(MM_PART_GENDER);
|
|
|
|
m_aFemaleColumnLB.SelectEntry(sGenderColumn);
|
|
|
|
m_aFemaleColumnLB.SaveValue();
|
|
|
|
|
|
|
|
m_aFemaleFieldCB.SetText(rConfig.GetFemaleGenderValue());
|
|
|
|
m_aFemaleFieldCB.SaveValue();
|
|
|
|
}
|
|
|
|
/*-- 17.05.2004 15:13:07---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
SwMailBodyDialog::~SwMailBodyDialog()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/*-- 30.04.2004 10:42:57---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwMailBodyDialog, ContainsHdl_Impl, CheckBox*, pBox)
|
|
|
|
{
|
|
|
|
SwGreetingsHandler::Contains(pBox->IsChecked());
|
|
|
|
m_pWizard->GetConfigItem().SetGreetingLine(pBox->IsChecked(), sal_True);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
/*-- 28.06.2004 11:22:42---------------------------------------------------
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------*/
|
|
|
|
IMPL_LINK(SwMailBodyDialog, OKHdl, PushButton*, EMPTYARG)
|
|
|
|
{
|
|
|
|
SwMailMergeConfigItem& rConfigItem = m_pWizard->GetConfigItem();
|
|
|
|
rConfigItem.SetGreetingLine(
|
|
|
|
m_aGreetingLineCB.IsChecked(), sal_False);
|
|
|
|
rConfigItem.SetIndividualGreeting(
|
|
|
|
m_aPersonalizedCB.IsChecked(), sal_False);
|
|
|
|
|
|
|
|
if(m_aFemaleColumnLB.GetSelectEntryPos() != m_aFemaleColumnLB.GetSavedValue())
|
|
|
|
{
|
|
|
|
const SwDBData& rDBData = rConfigItem.GetCurrentDBData();
|
|
|
|
Sequence< ::rtl::OUString> aAssignment = rConfigItem.GetColumnAssignment( rDBData );
|
|
|
|
sal_Int32 nPos = m_aFemaleColumnLB.GetSelectEntryPos();
|
|
|
|
if(aAssignment.getLength() < MM_PART_GENDER)
|
|
|
|
aAssignment.realloc(MM_PART_GENDER);
|
|
|
|
if( nPos > 0 )
|
|
|
|
aAssignment[MM_PART_GENDER] = m_aFemaleColumnLB.GetSelectEntry();
|
|
|
|
else
|
|
|
|
aAssignment[MM_PART_GENDER] = ::rtl::OUString();
|
|
|
|
rConfigItem.SetColumnAssignment( rDBData, aAssignment );
|
|
|
|
}
|
|
|
|
if(m_aFemaleFieldCB.GetText() != m_aFemaleFieldCB.GetSavedValue())
|
|
|
|
rConfigItem.SetFemaleGenderValue(m_aFemaleFieldCB.GetText());
|
|
|
|
|
|
|
|
EndDialog(RET_OK);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|