summaryrefslogtreecommitdiff
path: root/extensions/source/abpilot/abspilot.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/source/abpilot/abspilot.cxx')
-rw-r--r--extensions/source/abpilot/abspilot.cxx501
1 files changed, 0 insertions, 501 deletions
diff --git a/extensions/source/abpilot/abspilot.cxx b/extensions/source/abpilot/abspilot.cxx
deleted file mode 100644
index f9124a10d..000000000
--- a/extensions/source/abpilot/abspilot.cxx
+++ /dev/null
@@ -1,501 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * 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.
- *
- * 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).
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_extensions.hxx"
-#include "abspilot.hxx"
-#include "abpilot.hrc"
-#include "abpresid.hrc"
-#include "componentmodule.hxx"
-#include <tools/debug.hxx>
-#include <svtools/localresaccess.hxx>
-#include "typeselectionpage.hxx"
-#include "admininvokationpage.hxx"
-#include "tableselectionpage.hxx"
-#include <vcl/waitobj.hxx>
-#include <vcl/msgbox.hxx>
-#include "abpfinalpage.hxx"
-#include "fieldmappingpage.hxx"
-#include "fieldmappingimpl.hxx"
-
-//.........................................................................
-namespace abp
-{
-//.........................................................................
-
-#define STATE_SELECT_ABTYPE 0
-#define STATE_INVOKE_ADMIN_DIALOG 1
-#define STATE_TABLE_SELECTION 2
-#define STATE_MANUAL_FIELD_MAPPING 3
-#define STATE_FINAL_CONFIRM 4
-
-#define PATH_COMPLETE 1
-#define PATH_NO_SETTINGS 2
-#define PATH_NO_FIELDS 3
-#define PATH_NO_SETTINGS_NO_FIELDS 4
-
- using namespace ::svt;
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
-
- //=====================================================================
- //= OAddessBookSourcePilot
- //=====================================================================
- //---------------------------------------------------------------------
- OAddessBookSourcePilot::OAddessBookSourcePilot(Window* _pParent, const Reference< XMultiServiceFactory >& _rxORB)
- :OAddessBookSourcePilot_Base( _pParent, ModuleRes( RID_DLG_ADDRESSBOOKSOURCEPILOT ),
- WZB_HELP | WZB_FINISH | WZB_CANCEL | WZB_NEXT | WZB_PREVIOUS )
- ,m_xORB(_rxORB)
- ,m_aNewDataSource(_rxORB)
- ,m_eNewDataSourceType( AST_INVALID )
- {
- SetPageSizePixel(LogicToPixel(Size(WINDOW_SIZE_X, WINDOW_SIZE_Y), MAP_APPFONT));
-
- ShowButtonFixedLine(sal_True);
-
- declarePath( PATH_COMPLETE,
- STATE_SELECT_ABTYPE,
- STATE_INVOKE_ADMIN_DIALOG,
- STATE_TABLE_SELECTION,
- STATE_MANUAL_FIELD_MAPPING,
- STATE_FINAL_CONFIRM,
- WZS_INVALID_STATE
- );
- declarePath( PATH_NO_SETTINGS,
- STATE_SELECT_ABTYPE,
- STATE_TABLE_SELECTION,
- STATE_MANUAL_FIELD_MAPPING,
- STATE_FINAL_CONFIRM,
- WZS_INVALID_STATE
- );
- declarePath( PATH_NO_FIELDS,
- STATE_SELECT_ABTYPE,
- STATE_INVOKE_ADMIN_DIALOG,
- STATE_TABLE_SELECTION,
- STATE_FINAL_CONFIRM,
- WZS_INVALID_STATE
- );
- declarePath( PATH_NO_SETTINGS_NO_FIELDS,
- STATE_SELECT_ABTYPE,
- STATE_TABLE_SELECTION,
- STATE_FINAL_CONFIRM,
- WZS_INVALID_STATE
- );
-
- m_pPrevPage->SetHelpId(HID_ABSPILOT_PREVIOUS);
- m_pNextPage->SetHelpId(HID_ABSPILOT_NEXT);
- m_pCancel->SetHelpId(HID_ABSPILOT_CANCEL);
- m_pFinish->SetHelpId(HID_ABSPILOT_FINISH);
- m_pHelp->SetUniqueId(UID_ABSPILOT_HELP);
-
- m_pCancel->SetClickHdl( LINK( this, OAddessBookSourcePilot, OnCancelClicked) );
-
- // some initial settings
-#ifdef UNX
-#ifdef MACOSX
- m_aSettings.eType = AST_MACAB;
-#else
-// FIXME: if KDE use KAB instead
- m_aSettings.eType = AST_EVOLUTION;
-#endif
-#else
- m_aSettings.eType = AST_OTHER;
-#endif
- m_aSettings.sDataSourceName = String(ModuleRes(RID_STR_DEFAULT_NAME));
- m_aSettings.bRegisterDataSource = false;
- m_aSettings.bIgnoreNoTable = false;
-
- defaultButton(WZB_NEXT);
- enableButtons(WZB_FINISH, sal_False);
- ActivatePage();
-
- typeSelectionChanged( m_aSettings.eType );
- }
-
- //---------------------------------------------------------------------
- String OAddessBookSourcePilot::getStateDisplayName( WizardState _nState ) const
- {
- sal_uInt16 nResId = 0;
- switch ( _nState )
- {
- case STATE_SELECT_ABTYPE: nResId = STR_SELECT_ABTYPE; break;
- case STATE_INVOKE_ADMIN_DIALOG: nResId = STR_INVOKE_ADMIN_DIALOG; break;
- case STATE_TABLE_SELECTION: nResId = STR_TABLE_SELECTION; break;
- case STATE_MANUAL_FIELD_MAPPING: nResId = STR_MANUAL_FIELD_MAPPING; break;
- case STATE_FINAL_CONFIRM: nResId = STR_FINAL_CONFIRM; break;
- }
- DBG_ASSERT( nResId, "OAddessBookSourcePilot::getStateDisplayName: don't know this state!" );
-
- String sDisplayName;
- if ( nResId )
- {
- svt::OLocalResourceAccess aAccess( ModuleRes( RID_DLG_ADDRESSBOOKSOURCEPILOT ), RSC_MODALDIALOG );
- sDisplayName = String( ModuleRes( nResId ) );
- }
-
- return sDisplayName;
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::implCommitAll()
- {
- // in real, the data source already exists in the data source context
- // Thus, if the user changed the name, we have to rename the data source
- if ( m_aSettings.sDataSourceName != m_aNewDataSource.getName() )
- m_aNewDataSource.rename( m_aSettings.sDataSourceName );
-
- // 1. the data source
- m_aNewDataSource.store();
-
- // 2. check if we need to register the data source
- if ( m_aSettings.bRegisterDataSource )
- m_aNewDataSource.registerDataSource(m_aSettings.sRegisteredDataSourceName);
-
- // 3. write the data source / table names into the configuration
- addressconfig::writeTemplateAddressSource( getORB(), m_aSettings.bRegisterDataSource ? m_aSettings.sRegisteredDataSourceName : m_aSettings.sDataSourceName, m_aSettings.sSelectedTable );
-
- // 4. write the field mapping
- fieldmapping::writeTemplateAddressFieldMapping( getORB(), m_aSettings.aFieldMapping );
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::implCleanup()
- {
- if ( m_aNewDataSource.isValid() )
- m_aNewDataSource.remove();
- }
-
- //---------------------------------------------------------------------
- IMPL_LINK( OAddessBookSourcePilot, OnCancelClicked, void*, /*NOTINTERESTEDIN*/ )
- {
- // do cleanups
- implCleanup();
-
- // reset the click hdl
- m_pCancel->SetClickHdl( Link() );
- // simulate the click again - this time, the default handling of the button will strike ....
- m_pCancel->Click();
-
- return 0L;
- }
-
- //---------------------------------------------------------------------
- sal_Bool OAddessBookSourcePilot::Close()
- {
- implCleanup();
-
- return OAddessBookSourcePilot_Base::Close();
- }
-
- //---------------------------------------------------------------------
- sal_Bool OAddessBookSourcePilot::onFinish()
- {
- if ( !OAddessBookSourcePilot_Base::onFinish() )
- return sal_False;
-
- implCommitAll();
-
- addressconfig::markPilotSuccess( getORB() );
-
- return sal_True;
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::enterState( WizardState _nState )
- {
- switch ( _nState )
- {
- case STATE_SELECT_ABTYPE:
- impl_updateRoadmap( static_cast< TypeSelectionPage* >( GetPage( STATE_SELECT_ABTYPE ) )->getSelectedType() );
- break;
-
- case STATE_FINAL_CONFIRM:
- if ( !needManualFieldMapping( ) )
- implDoAutoFieldMapping();
- break;
-
- case STATE_TABLE_SELECTION:
- implDefaultTableName();
- break;
- }
-
- OAddessBookSourcePilot_Base::enterState(_nState);
- }
-
- //---------------------------------------------------------------------
- sal_Bool OAddessBookSourcePilot::prepareLeaveCurrentState( CommitPageReason _eReason )
- {
- if ( !OAddessBookSourcePilot_Base::prepareLeaveCurrentState( _eReason ) )
- return sal_False;
-
- if ( _eReason == eTravelBackward )
- return sal_True;
-
- sal_Bool bAllow = sal_True;
-
- switch ( getCurrentState() )
- {
- case STATE_SELECT_ABTYPE:
- implCreateDataSource();
- if ( needAdminInvokationPage() )
- break;
- // no break here
-
- case STATE_INVOKE_ADMIN_DIALOG:
- if ( !connectToDataSource( sal_False ) )
- {
- // connecting did not succeed -> do not allow proceeding
- bAllow = sal_False;
- break;
- }
-
- // ........................................................
- // now that we connected to the data source, check whether we need the "table selection" page
- const StringBag& aTables = m_aNewDataSource.getTableNames();
-
- if ( aTables.empty() )
- {
- if ( RET_YES != QueryBox( this, ModuleRes( ( getSettings().eType == AST_EVOLUTION_GROUPWISE ? RID_QRY_NO_EVO_GW : RID_QRY_NOTABLES ) ) ).Execute() )
- {
- // cannot ask the user, or the user chose to use this data source, though there are no tables
- bAllow = sal_False;
- break;
- }
-
- m_aSettings.bIgnoreNoTable = true;
- }
-
- if ( aTables.size() == 1 )
- // remember the one and only table we have
- m_aSettings.sSelectedTable = *aTables.begin();
-
- break;
- }
-
- impl_updateRoadmap( m_aSettings.eType );
- return bAllow;
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::implDefaultTableName()
- {
- const StringBag& rTableNames = getDataSource().getTableNames();
- if ( rTableNames.end() != rTableNames.find( getSettings().sSelectedTable ) )
- // already a valid table selected
- return;
-
- const sal_Char* pGuess = NULL;
- switch ( getSettings().eType )
- {
- case AST_MORK :
- case AST_THUNDERBIRD : pGuess = "Personal Address book"; break;
- case AST_LDAP : pGuess = "LDAP Directory"; break;
- case AST_EVOLUTION :
- case AST_EVOLUTION_GROUPWISE:
- case AST_EVOLUTION_LDAP : pGuess = "Personal"; break;
- default:
- OSL_FAIL( "OAddessBookSourcePilot::implDefaultTableName: unhandled case!" );
- return;
- }
- const ::rtl::OUString sGuess = ::rtl::OUString::createFromAscii( pGuess );
- if ( rTableNames.end() != rTableNames.find( sGuess ) )
- getSettings().sSelectedTable = sGuess;
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::implDoAutoFieldMapping()
- {
- DBG_ASSERT( !needManualFieldMapping( ), "OAddessBookSourcePilot::implDoAutoFieldMapping: invalid call!" );
-
- fieldmapping::defaultMapping( getORB(), m_aSettings.aFieldMapping );
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::implCreateDataSource()
- {
- if (m_aNewDataSource.isValid())
- { // we already have a data source object
- if ( m_aSettings.eType == m_eNewDataSourceType )
- // and it already has the correct type
- return;
-
- // it has a wrong type -> remove it
- m_aNewDataSource.remove();
- }
-
- ODataSourceContext aContext( getORB() );
- aContext.disambiguate( m_aSettings.sDataSourceName );
-
- switch (m_aSettings.eType)
- {
- case AST_MORK:
- m_aNewDataSource = aContext.createNewMORK( m_aSettings.sDataSourceName );
- break;
-
- case AST_THUNDERBIRD:
- m_aNewDataSource = aContext.createNewThunderbird( m_aSettings.sDataSourceName );
- break;
-
- case AST_EVOLUTION:
- m_aNewDataSource = aContext.createNewEvolution( m_aSettings.sDataSourceName );
- break;
-
- case AST_EVOLUTION_GROUPWISE:
- m_aNewDataSource = aContext.createNewEvolutionGroupwise( m_aSettings.sDataSourceName );
- break;
-
- case AST_EVOLUTION_LDAP:
- m_aNewDataSource = aContext.createNewEvolutionLdap( m_aSettings.sDataSourceName );
- break;
-
- case AST_KAB:
- m_aNewDataSource = aContext.createNewKab( m_aSettings.sDataSourceName );
- break;
-
- case AST_MACAB:
- m_aNewDataSource = aContext.createNewMacab( m_aSettings.sDataSourceName );
- break;
-
- case AST_LDAP:
- m_aNewDataSource = aContext.createNewLDAP( m_aSettings.sDataSourceName );
- break;
-
- case AST_OUTLOOK:
- m_aNewDataSource = aContext.createNewOutlook( m_aSettings.sDataSourceName );
- break;
-
- case AST_OE:
- m_aNewDataSource = aContext.createNewOE( m_aSettings.sDataSourceName );
- break;
-
- case AST_OTHER:
- m_aNewDataSource = aContext.createNewDBase( m_aSettings.sDataSourceName );
- break;
-
- case AST_INVALID:
- OSL_FAIL( "OAddessBookSourcePilot::implCreateDataSource: illegal data source type!" );
- break;
- }
- m_eNewDataSourceType = m_aSettings.eType;
- }
-
- //---------------------------------------------------------------------
- sal_Bool OAddessBookSourcePilot::connectToDataSource( sal_Bool _bForceReConnect )
- {
- DBG_ASSERT( m_aNewDataSource.isValid(), "OAddessBookSourcePilot::implConnect: invalid current data source!" );
-
- WaitObject aWaitCursor( this );
- if ( _bForceReConnect && m_aNewDataSource.isConnected( ) )
- m_aNewDataSource.disconnect( );
-
- return m_aNewDataSource.connect( this );
- }
-
- //---------------------------------------------------------------------
- OWizardPage* OAddessBookSourcePilot::createPage(WizardState _nState)
- {
- switch (_nState)
- {
- case STATE_SELECT_ABTYPE:
- return new TypeSelectionPage( this );
-
- case STATE_INVOKE_ADMIN_DIALOG:
- return new AdminDialogInvokationPage( this );
-
- case STATE_TABLE_SELECTION:
- return new TableSelectionPage( this );
-
- case STATE_MANUAL_FIELD_MAPPING:
- return new FieldMappingPage( this );
-
- case STATE_FINAL_CONFIRM:
- return new FinalPage( this );
-
- default:
- OSL_FAIL("OAddessBookSourcePilot::createPage: invalid state!");
- return NULL;
- }
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::impl_updateRoadmap( AddressSourceType _eType )
- {
- bool bSettingsPage = needAdminInvokationPage( _eType );
- bool bTablesPage = needTableSelection( _eType );
- bool bFieldsPage = needManualFieldMapping( _eType );
-
- bool bConnected = m_aNewDataSource.isConnected();
- bool bCanSkipTables =
- ( m_aNewDataSource.hasTable( m_aSettings.sSelectedTable )
- || m_aSettings.bIgnoreNoTable
- );
-
- enableState( STATE_INVOKE_ADMIN_DIALOG, bSettingsPage );
-
- enableState( STATE_TABLE_SELECTION,
- bTablesPage && ( bConnected ? !bCanSkipTables : !bSettingsPage )
- // if we do not need a settings page, we connect upon "Next" on the first page
- );
-
- enableState( STATE_MANUAL_FIELD_MAPPING,
- bFieldsPage && bConnected && m_aNewDataSource.hasTable( m_aSettings.sSelectedTable )
- );
-
- enableState( STATE_FINAL_CONFIRM,
- bConnected && bCanSkipTables
- );
- }
-
- //---------------------------------------------------------------------
- void OAddessBookSourcePilot::typeSelectionChanged( AddressSourceType _eType )
- {
- PathId nCurrentPathID( PATH_COMPLETE );
- bool bSettingsPage = needAdminInvokationPage( _eType );
- bool bFieldsPage = needManualFieldMapping( _eType );
- if ( !bSettingsPage )
- if ( !bFieldsPage )
- nCurrentPathID = PATH_NO_SETTINGS_NO_FIELDS;
- else
- nCurrentPathID = PATH_NO_SETTINGS;
- else
- if ( !bFieldsPage )
- nCurrentPathID = PATH_NO_FIELDS;
- else
- nCurrentPathID = PATH_COMPLETE;
- activatePath( nCurrentPathID, true );
-
- m_aNewDataSource.disconnect();
- m_aSettings.bIgnoreNoTable = false;
- impl_updateRoadmap( _eType );
- }
-
-//.........................................................................
-} // namespace abp
-//.........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */