xref: /AOO41X/main/dbaccess/source/ui/dlg/tablespage.hxx (revision 2e2212a7c22e96cf6f6fab0dd042c34a45a64bd6)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _DBAUI_TABLESPAGE_HXX_
25 #define _DBAUI_TABLESPAGE_HXX_
26 
27 #ifndef _DBAUI_ADMINPAGES_HXX_
28 #include "adminpages.hxx"
29 #endif
30 #ifndef _COM_SUN_STAR_I18N_XCOLLATOR_HPP_
31 #include <com/sun/star/i18n/XCollator.hpp>
32 #endif
33 #ifndef _OSL_MUTEX_HXX_
34 #include <osl/mutex.hxx>
35 #endif
36 #ifndef _COMPHELPER_STLTYPES_HXX_
37 #include <comphelper/stl_types.hxx>
38 #endif
39 #ifndef _SV_FIXED_HXX
40 #include <vcl/fixed.hxx>
41 #endif
42 #ifndef _DBAUI_TABLETREE_HXX_
43 #include "tabletree.hxx"
44 #endif
45 #ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
46 #include <com/sun/star/sdbc/XConnection.hpp>
47 #endif
48 
49 
50 //.........................................................................
51 namespace dbaui
52 {
53 //.........................................................................
54 
55     //========================================================================
56     //= OTableSubscriptionPage
57     //========================================================================
58     class OTableSubscriptionDialog;
59     class OTableSubscriptionPage
60             :public OGenericAdministrationPage
61     {
62     private:
63         FixedLine               m_aTables;
64         OTableTreeListBox       m_aTablesList;
65         FixedText               m_aExplanation;
66 
67         ::rtl::OUString         m_sCatalogSeparator;
68         sal_Bool                m_bCheckedAll : 1;
69         sal_Bool                m_bCatalogAtStart : 1;
70 
71         ::osl::Mutex            m_aNotifierMutex;
72 
73         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >
74                                 m_xCurrentConnection;   /// valid as long as the page is active
75         ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCollator >
76                                 m_xCollator;
77         OTableSubscriptionDialog* m_pTablesDlg;
78 
79     public:
80         virtual sal_Bool            FillItemSet(SfxItemSet& _rCoreAttrs);
81         virtual int             DeactivatePage(SfxItemSet* _pSet);
82         using OGenericAdministrationPage::DeactivatePage;
83 
84         virtual void            StateChanged( StateChangedType nStateChange );
85         virtual void            DataChanged( const DataChangedEvent& rDCEvt );
86 
87 
88         /** will be called when the controls need to be resized.
89         */
90         virtual void            resizeControls(const Size& _rDiff);
91 
92         OTableSubscriptionPage( Window* pParent, const SfxItemSet& _rCoreAttrs ,OTableSubscriptionDialog* _pTablesDlg);
93         virtual ~OTableSubscriptionPage();
94 
95     protected:
96         virtual void fillControls(::std::vector< ISaveValueWrapper* >& _rControlList);
97         virtual void fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList);
98 
99         DECL_LINK( OnTreeEntryCompare, const SvSortData* );
100         DECL_LINK( OnTreeEntryChecked, Control* );
101 
102     private:
103 
104 
105         /** check the tables in <member>m_aTablesList</member> according to <arg>_rTables</arg>
106         */
107         void implCheckTables(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTables);
108 
109         /// returns the next sibling, if not available, the next sibling of the parent, a.s.o.
110         SvLBoxEntry* implNextSibling(SvLBoxEntry* _pEntry) const;
111 
112         /** return the current selection in <member>m_aTablesList</member>
113         */
114         ::com::sun::star::uno::Sequence< ::rtl::OUString > collectDetailedSelection() const;
115 
116         /// (un)check all entries
117         void CheckAll( sal_Bool bCheck = sal_True );
118 
119         virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
120 
121         // checks the tables according to the filter given
122         // in oppsofite to implCheckTables, this method handles the case of an empty sequence, too ...
123         void implCompleteTablesCheck( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rTableFilter );
124     };
125 
126 //.........................................................................
127 }   // namespace dbaui
128 //.........................................................................
129 
130 #endif // _DBAUI_TABLESPAGE_HXX_
131 
132