1*2a97ec55SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2a97ec55SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2a97ec55SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2a97ec55SAndrew Rist * distributed with this work for additional information 6*2a97ec55SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2a97ec55SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2a97ec55SAndrew Rist * "License"); you may not use this file except in compliance 9*2a97ec55SAndrew Rist * with the License. You may obtain a copy of the License at 10*2a97ec55SAndrew Rist * 11*2a97ec55SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2a97ec55SAndrew Rist * 13*2a97ec55SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2a97ec55SAndrew Rist * software distributed under the License is distributed on an 15*2a97ec55SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2a97ec55SAndrew Rist * KIND, either express or implied. See the License for the 17*2a97ec55SAndrew Rist * specific language governing permissions and limitations 18*2a97ec55SAndrew Rist * under the License. 19*2a97ec55SAndrew Rist * 20*2a97ec55SAndrew Rist *************************************************************/ 21*2a97ec55SAndrew Rist 22*2a97ec55SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_extensions.hxx" 26cdf0e10cSrcweir #include "tableselectionpage.hxx" 27cdf0e10cSrcweir #include "abptypes.hxx" 28cdf0e10cSrcweir #include "addresssettings.hxx" 29cdf0e10cSrcweir #include "abspilot.hxx" 30cdf0e10cSrcweir #include <tools/debug.hxx> 31cdf0e10cSrcweir 32cdf0e10cSrcweir //......................................................................... 33cdf0e10cSrcweir namespace abp 34cdf0e10cSrcweir { 35cdf0e10cSrcweir //......................................................................... 36cdf0e10cSrcweir 37cdf0e10cSrcweir //===================================================================== 38cdf0e10cSrcweir //= TableSelectionPage 39cdf0e10cSrcweir //===================================================================== 40cdf0e10cSrcweir //--------------------------------------------------------------------- TableSelectionPage(OAddessBookSourcePilot * _pParent)41cdf0e10cSrcweir TableSelectionPage::TableSelectionPage( OAddessBookSourcePilot* _pParent ) 42cdf0e10cSrcweir :AddressBookSourcePage(_pParent, ModuleRes(RID_PAGE_TABLESELECTION_AB)) 43cdf0e10cSrcweir ,m_aLabel ( this, ModuleRes( FL_TOOMUCHTABLES ) ) 44cdf0e10cSrcweir ,m_aTableList ( this, ModuleRes( LB_TABLELIST ) ) 45cdf0e10cSrcweir { 46cdf0e10cSrcweir FreeResource(); 47cdf0e10cSrcweir 48cdf0e10cSrcweir m_aTableList.SetSelectHdl( LINK( this, TableSelectionPage, OnTableSelected ) ); 49cdf0e10cSrcweir m_aTableList.SetDoubleClickHdl( LINK( this, TableSelectionPage, OnTableDoubleClicked ) ); 50cdf0e10cSrcweir } 51cdf0e10cSrcweir 52cdf0e10cSrcweir //--------------------------------------------------------------------- ActivatePage()53cdf0e10cSrcweir void TableSelectionPage::ActivatePage() 54cdf0e10cSrcweir { 55cdf0e10cSrcweir AddressBookSourcePage::ActivatePage(); 56cdf0e10cSrcweir 57cdf0e10cSrcweir m_aTableList.GrabFocus(); 58cdf0e10cSrcweir } 59cdf0e10cSrcweir 60cdf0e10cSrcweir //--------------------------------------------------------------------- DeactivatePage()61cdf0e10cSrcweir void TableSelectionPage::DeactivatePage() 62cdf0e10cSrcweir { 63cdf0e10cSrcweir AddressBookSourcePage::DeactivatePage(); 64cdf0e10cSrcweir } 65cdf0e10cSrcweir 66cdf0e10cSrcweir //--------------------------------------------------------------------- initializePage()67cdf0e10cSrcweir void TableSelectionPage::initializePage() 68cdf0e10cSrcweir { 69cdf0e10cSrcweir AddressBookSourcePage::initializePage(); 70cdf0e10cSrcweir 71cdf0e10cSrcweir const AddressSettings& rSettings = getSettings(); 72cdf0e10cSrcweir 73cdf0e10cSrcweir m_aTableList.Clear(); 74cdf0e10cSrcweir 75cdf0e10cSrcweir // get the table names 76cdf0e10cSrcweir const StringBag& aTableNames = getDialog()->getDataSource().getTableNames(); 77cdf0e10cSrcweir DBG_ASSERT( aTableNames.size() > 1, "TableSelectionPage::initializePage: to be called for more than one table only!"); 78cdf0e10cSrcweir // this page should never bother the user if there is 1 or less tables. 79cdf0e10cSrcweir 80cdf0e10cSrcweir // fill the list 81cdf0e10cSrcweir for ( ConstStringBagIterator aTables = aTableNames.begin(); 82cdf0e10cSrcweir aTables != aTableNames.end(); 83cdf0e10cSrcweir ++aTables 84cdf0e10cSrcweir ) 85cdf0e10cSrcweir m_aTableList.InsertEntry( *aTables ); 86cdf0e10cSrcweir 87cdf0e10cSrcweir // initially select the proper table 88cdf0e10cSrcweir m_aTableList.SelectEntry( rSettings.sSelectedTable ); 89cdf0e10cSrcweir } 90cdf0e10cSrcweir 91cdf0e10cSrcweir //--------------------------------------------------------------------- 92cdf0e10cSrcweir IMPL_LINK( TableSelectionPage, OnTableDoubleClicked, void*, /*NOTINTERESTEDIN*/ ) 93cdf0e10cSrcweir { 94cdf0e10cSrcweir if ( 1 == m_aTableList.GetSelectEntryCount() ) 95cdf0e10cSrcweir getDialog()->travelNext(); 96cdf0e10cSrcweir 97cdf0e10cSrcweir return 0L; 98cdf0e10cSrcweir } 99cdf0e10cSrcweir 100cdf0e10cSrcweir //--------------------------------------------------------------------- 101cdf0e10cSrcweir IMPL_LINK( TableSelectionPage, OnTableSelected, void*, /*NOTINTERESTEDIN*/ ) 102cdf0e10cSrcweir { 103cdf0e10cSrcweir updateDialogTravelUI(); 104cdf0e10cSrcweir return 0L; 105cdf0e10cSrcweir } 106cdf0e10cSrcweir 107cdf0e10cSrcweir //--------------------------------------------------------------------- commitPage(::svt::WizardTypes::CommitPageReason _eReason)108cdf0e10cSrcweir sal_Bool TableSelectionPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason ) 109cdf0e10cSrcweir { 110cdf0e10cSrcweir if (!AddressBookSourcePage::commitPage(_eReason)) 111cdf0e10cSrcweir return sal_False; 112cdf0e10cSrcweir 113cdf0e10cSrcweir AddressSettings& rSettings = getSettings(); 114cdf0e10cSrcweir rSettings.sSelectedTable = m_aTableList.GetSelectEntry(); 115cdf0e10cSrcweir 116cdf0e10cSrcweir return sal_True; 117cdf0e10cSrcweir } 118cdf0e10cSrcweir 119cdf0e10cSrcweir //--------------------------------------------------------------------- canAdvance() const120cdf0e10cSrcweir bool TableSelectionPage::canAdvance() const 121cdf0e10cSrcweir { 122cdf0e10cSrcweir return AddressBookSourcePage::canAdvance() 123cdf0e10cSrcweir && ( 0 < m_aTableList.GetSelectEntryCount() ); 124cdf0e10cSrcweir } 125cdf0e10cSrcweir 126cdf0e10cSrcweir //......................................................................... 127cdf0e10cSrcweir } // namespace abp 128cdf0e10cSrcweir //......................................................................... 129cdf0e10cSrcweir 130