1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_extensions.hxx" 30 #include "tableselectionpage.hxx" 31 #include "abptypes.hxx" 32 #include "addresssettings.hxx" 33 #include "abspilot.hxx" 34 #include <tools/debug.hxx> 35 36 //......................................................................... 37 namespace abp 38 { 39 //......................................................................... 40 41 //===================================================================== 42 //= TableSelectionPage 43 //===================================================================== 44 //--------------------------------------------------------------------- 45 TableSelectionPage::TableSelectionPage( OAddessBookSourcePilot* _pParent ) 46 :AddressBookSourcePage(_pParent, ModuleRes(RID_PAGE_TABLESELECTION_AB)) 47 ,m_aLabel ( this, ModuleRes( FL_TOOMUCHTABLES ) ) 48 ,m_aTableList ( this, ModuleRes( LB_TABLELIST ) ) 49 { 50 FreeResource(); 51 52 m_aTableList.SetSelectHdl( LINK( this, TableSelectionPage, OnTableSelected ) ); 53 m_aTableList.SetDoubleClickHdl( LINK( this, TableSelectionPage, OnTableDoubleClicked ) ); 54 } 55 56 //--------------------------------------------------------------------- 57 void TableSelectionPage::ActivatePage() 58 { 59 AddressBookSourcePage::ActivatePage(); 60 61 m_aTableList.GrabFocus(); 62 } 63 64 //--------------------------------------------------------------------- 65 void TableSelectionPage::DeactivatePage() 66 { 67 AddressBookSourcePage::DeactivatePage(); 68 } 69 70 //--------------------------------------------------------------------- 71 void TableSelectionPage::initializePage() 72 { 73 AddressBookSourcePage::initializePage(); 74 75 const AddressSettings& rSettings = getSettings(); 76 77 m_aTableList.Clear(); 78 79 // get the table names 80 const StringBag& aTableNames = getDialog()->getDataSource().getTableNames(); 81 DBG_ASSERT( aTableNames.size() > 1, "TableSelectionPage::initializePage: to be called for more than one table only!"); 82 // this page should never bother the user if there is 1 or less tables. 83 84 // fill the list 85 for ( ConstStringBagIterator aTables = aTableNames.begin(); 86 aTables != aTableNames.end(); 87 ++aTables 88 ) 89 m_aTableList.InsertEntry( *aTables ); 90 91 // initially select the proper table 92 m_aTableList.SelectEntry( rSettings.sSelectedTable ); 93 } 94 95 //--------------------------------------------------------------------- 96 IMPL_LINK( TableSelectionPage, OnTableDoubleClicked, void*, /*NOTINTERESTEDIN*/ ) 97 { 98 if ( 1 == m_aTableList.GetSelectEntryCount() ) 99 getDialog()->travelNext(); 100 101 return 0L; 102 } 103 104 //--------------------------------------------------------------------- 105 IMPL_LINK( TableSelectionPage, OnTableSelected, void*, /*NOTINTERESTEDIN*/ ) 106 { 107 updateDialogTravelUI(); 108 return 0L; 109 } 110 111 //--------------------------------------------------------------------- 112 sal_Bool TableSelectionPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason ) 113 { 114 if (!AddressBookSourcePage::commitPage(_eReason)) 115 return sal_False; 116 117 AddressSettings& rSettings = getSettings(); 118 rSettings.sSelectedTable = m_aTableList.GetSelectEntry(); 119 120 return sal_True; 121 } 122 123 //--------------------------------------------------------------------- 124 bool TableSelectionPage::canAdvance() const 125 { 126 return AddressBookSourcePage::canAdvance() 127 && ( 0 < m_aTableList.GetSelectEntryCount() ); 128 } 129 130 //......................................................................... 131 } // namespace abp 132 //......................................................................... 133 134