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 _SVT_ADDRESSTEMPLATE_HXX_ 25 #define _SVT_ADDRESSTEMPLATE_HXX_ 26 27 #include "svtools/svtdllapi.h" 28 #include <vcl/dialog.hxx> 29 #include <vcl/group.hxx> 30 #include <vcl/fixed.hxx> 31 #include <vcl/combobox.hxx> 32 #include <vcl/button.hxx> 33 #include <vcl/lstbox.hxx> 34 #include <vcl/scrbar.hxx> 35 #include <com/sun/star/container/XNameAccess.hpp> 36 #ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_ 37 #include <com/sun/star/lang/XMultiServiceFactory.hpp> 38 #endif 39 #include <com/sun/star/util/AliasProgrammaticPair.hpp> 40 #include <com/sun/star/sdbc/XDataSource.hpp> 41 #include <unotools/configitem.hxx> 42 43 // ....................................................................... 44 namespace svt 45 { 46 // ....................................................................... 47 48 // =================================================================== 49 // = AddressBookSourceDialog 50 // =================================================================== 51 struct AddressBookSourceDialogData; 52 class SVT_DLLPUBLIC AddressBookSourceDialog : public ModalDialog 53 { 54 protected: 55 // Controls 56 FixedLine m_aDatasourceFrame; 57 FixedText m_aDatasourceLabel; 58 ComboBox m_aDatasource; 59 PushButton m_aAdministrateDatasources; 60 FixedText m_aTableLabel; 61 ComboBox m_aTable; 62 63 FixedText m_aFieldsTitle; 64 Window m_aFieldsFrame; 65 66 ScrollBar m_aFieldScroller; 67 OKButton m_aOK; 68 CancelButton m_aCancel; 69 HelpButton m_aHelp; 70 71 // string to display for "no selection" 72 const String m_sNoFieldSelection; 73 74 /// the DatabaseContext for selecting data sources 75 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > 76 m_xDatabaseContext; 77 // the ORB for creating objects 78 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > 79 m_xORB; 80 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > 81 m_xCurrentDatasourceTables; 82 83 AddressBookSourceDialogData* 84 m_pImpl; 85 86 public: 87 AddressBookSourceDialog( Window* _pParent, 88 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB ); 89 90 /** if you use this ctor, the dialog 91 <ul><li>will not store it's data in the configuration (nor initially retrieve it from there)</li> 92 <li>will not allow to change the data source name</li> 93 <li>will not allow to change the table name</li> 94 <li>will not allow to call the data source administration dialog</li> 95 </ul> 96 97 @param _rxORB 98 a service factory to use for various UNO related needs 99 @param _rxTransientDS 100 the data source to obtain connections from 101 @param _rDataSourceName 102 the to-be name of _rxTransientDS. This is only for displaying this 103 name to the user, since the dialog completely works on _rxTransientDS, 104 and doesn't allow to change this. 105 @param _rTable 106 the table name to display. It must refer to a valid table, relative to a connection 107 obtained from <arg>_rxTransientDS</arg> 108 */ 109 AddressBookSourceDialog( Window* _pParent, 110 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB, 111 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource >& _rxTransientDS, 112 const ::rtl::OUString& _rDataSourceName, 113 const ::rtl::OUString& _rTable, 114 const ::com::sun::star::uno::Sequence< ::com::sun::star::util::AliasProgrammaticPair >& _rMapping 115 ); 116 117 ~AddressBookSourceDialog(); 118 119 // to be used if the object was constructed for editing a field mapping only 120 void getFieldMapping( 121 ::com::sun::star::uno::Sequence< ::com::sun::star::util::AliasProgrammaticPair >& _rMapping) const; 122 123 protected: 124 void implConstruct(); 125 126 // Window overridables 127 virtual long PreNotify( NotifyEvent& _rNEvt ); 128 129 // implementations 130 void implScrollFields(sal_Int32 _nPos, sal_Bool _bAdjustFocus, sal_Bool _bAdjustScrollbar); 131 void implSelectField(ListBox* _pBox, const String& _rText); 132 133 void initalizeListBox(ListBox* _pList); 134 void resetTables(); 135 void resetFields(); 136 137 // fill in the data sources listbox 138 void initializeDatasources(); 139 140 // initialize the dialog from the configuration data 141 void loadConfiguration(); 142 143 DECL_LINK(OnFieldScroll, ScrollBar*); 144 DECL_LINK(OnFieldSelect, ListBox*); 145 DECL_LINK(OnAdministrateDatasources, void*); 146 DECL_LINK(OnComboGetFocus, ComboBox*); 147 DECL_LINK(OnComboLoseFocus, ComboBox*); 148 DECL_LINK(OnComboSelect, ComboBox*); 149 DECL_LINK(OnOkClicked, Button*); 150 DECL_LINK(OnDelayedInitialize, void*); 151 }; 152 153 154 // ....................................................................... 155 } // namespace svt 156 // ....................................................................... 157 158 #endif // _SVT_ADDRESSTEMPLATE_HXX_ 159 160