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 #ifndef _DBAUI_TABLESPAGE_HXX_ 29 #define _DBAUI_TABLESPAGE_HXX_ 30 31 #ifndef _DBAUI_ADMINPAGES_HXX_ 32 #include "adminpages.hxx" 33 #endif 34 #ifndef _COM_SUN_STAR_I18N_XCOLLATOR_HPP_ 35 #include <com/sun/star/i18n/XCollator.hpp> 36 #endif 37 #ifndef _OSL_MUTEX_HXX_ 38 #include <osl/mutex.hxx> 39 #endif 40 #ifndef _COMPHELPER_STLTYPES_HXX_ 41 #include <comphelper/stl_types.hxx> 42 #endif 43 #ifndef _SV_FIXED_HXX 44 #include <vcl/fixed.hxx> 45 #endif 46 #ifndef _DBAUI_TABLETREE_HXX_ 47 #include "tabletree.hxx" 48 #endif 49 #ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_ 50 #include <com/sun/star/sdbc/XConnection.hpp> 51 #endif 52 53 54 //......................................................................... 55 namespace dbaui 56 { 57 //......................................................................... 58 59 //======================================================================== 60 //= OTableSubscriptionPage 61 //======================================================================== 62 class OTableSubscriptionDialog; 63 class OTableSubscriptionPage 64 :public OGenericAdministrationPage 65 { 66 private: 67 FixedLine m_aTables; 68 OTableTreeListBox m_aTablesList; 69 FixedText m_aExplanation; 70 71 ::rtl::OUString m_sCatalogSeparator; 72 sal_Bool m_bCheckedAll : 1; 73 sal_Bool m_bCatalogAtStart : 1; 74 75 ::osl::Mutex m_aNotifierMutex; 76 77 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > 78 m_xCurrentConnection; /// valid as long as the page is active 79 ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCollator > 80 m_xCollator; 81 OTableSubscriptionDialog* m_pTablesDlg; 82 83 public: 84 virtual sal_Bool FillItemSet(SfxItemSet& _rCoreAttrs); 85 virtual int DeactivatePage(SfxItemSet* _pSet); 86 using OGenericAdministrationPage::DeactivatePage; 87 88 virtual void StateChanged( StateChangedType nStateChange ); 89 virtual void DataChanged( const DataChangedEvent& rDCEvt ); 90 91 92 /** will be called when the controls need to be resized. 93 */ 94 virtual void resizeControls(const Size& _rDiff); 95 96 OTableSubscriptionPage( Window* pParent, const SfxItemSet& _rCoreAttrs ,OTableSubscriptionDialog* _pTablesDlg); 97 virtual ~OTableSubscriptionPage(); 98 99 protected: 100 virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList); 101 virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList); 102 103 DECL_LINK( OnTreeEntryCompare, const SvSortData* ); 104 DECL_LINK( OnTreeEntryChecked, Control* ); 105 106 private: 107 108 109 /** check the tables in <member>m_aTablesList</member> according to <arg>_rTables</arg> 110 */ 111 void implCheckTables(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTables); 112 113 /// returns the next sibling, if not available, the next sibling of the parent, a.s.o. 114 SvLBoxEntry* implNextSibling(SvLBoxEntry* _pEntry) const; 115 116 /** return the current selection in <member>m_aTablesList</member> 117 */ 118 ::com::sun::star::uno::Sequence< ::rtl::OUString > collectDetailedSelection() const; 119 120 /// (un)check all entries 121 void CheckAll( sal_Bool bCheck = sal_True ); 122 123 virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue); 124 125 // checks the tables according to the filter given 126 // in oppsofite to implCheckTables, this method handles the case of an empty sequence, too ... 127 void implCompleteTablesCheck( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTableFilter ); 128 }; 129 130 //......................................................................... 131 } // namespace dbaui 132 //......................................................................... 133 134 #endif // _DBAUI_TABLESPAGE_HXX_ 135 136